All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azurenative.deviceregistry.kotlin.AssetArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.deviceregistry.kotlin

import com.pulumi.azurenative.deviceregistry.AssetArgs.builder
import com.pulumi.azurenative.deviceregistry.kotlin.inputs.DataPointArgs
import com.pulumi.azurenative.deviceregistry.kotlin.inputs.DataPointArgsBuilder
import com.pulumi.azurenative.deviceregistry.kotlin.inputs.EventArgs
import com.pulumi.azurenative.deviceregistry.kotlin.inputs.EventArgsBuilder
import com.pulumi.azurenative.deviceregistry.kotlin.inputs.ExtendedLocationArgs
import com.pulumi.azurenative.deviceregistry.kotlin.inputs.ExtendedLocationArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Any
import kotlin.Boolean
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Asset definition.
 * Azure REST API version: 2023-11-01-preview.
 * ## Example Usage
 * ### Create_Asset_With_ExternalAssetId
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var asset = new AzureNative.DeviceRegistry.Asset("asset", new()
 *     {
 *         AssetEndpointProfileUri = "https://www.example.com/myAssetEndpointProfile",
 *         AssetName = "my-asset",
 *         AssetType = "MyAssetType",
 *         DataPoints = new[]
 *         {
 *             new AzureNative.DeviceRegistry.Inputs.DataPointArgs
 *             {
 *                 CapabilityId = "dtmi:com:example:Thermostat:__temperature;1",
 *                 DataPointConfiguration = "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}",
 *                 DataSource = "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1",
 *                 ObservabilityMode = AzureNative.DeviceRegistry.DataPointsObservabilityMode.Counter,
 *             },
 *             new AzureNative.DeviceRegistry.Inputs.DataPointArgs
 *             {
 *                 CapabilityId = "dtmi:com:example:Thermostat:__pressure;1",
 *                 DataPointConfiguration = "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}",
 *                 DataSource = "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2",
 *                 ObservabilityMode = AzureNative.DeviceRegistry.DataPointsObservabilityMode.None,
 *             },
 *         },
 *         DefaultDataPointsConfiguration = "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}",
 *         DefaultEventsConfiguration = "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}",
 *         Description = "This is a sample Asset",
 *         DisplayName = "AssetDisplayName",
 *         DocumentationUri = "https://www.example.com/manual",
 *         Enabled = true,
 *         Events = new[]
 *         {
 *             new AzureNative.DeviceRegistry.Inputs.EventArgs
 *             {
 *                 CapabilityId = "dtmi:com:example:Thermostat:__temperature;1",
 *                 EventConfiguration = "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}",
 *                 EventNotifier = "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3",
 *                 ObservabilityMode = AzureNative.DeviceRegistry.EventsObservabilityMode.None,
 *             },
 *             new AzureNative.DeviceRegistry.Inputs.EventArgs
 *             {
 *                 CapabilityId = "dtmi:com:example:Thermostat:__pressure;1",
 *                 EventConfiguration = "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}",
 *                 EventNotifier = "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4",
 *                 ObservabilityMode = AzureNative.DeviceRegistry.EventsObservabilityMode.Log,
 *             },
 *         },
 *         ExtendedLocation = new AzureNative.DeviceRegistry.Inputs.ExtendedLocationArgs
 *         {
 *             Name = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1",
 *             Type = "CustomLocation",
 *         },
 *         ExternalAssetId = "8ZBA6LRHU0A458969",
 *         HardwareRevision = "1.0",
 *         Location = "West Europe",
 *         Manufacturer = "Contoso",
 *         ManufacturerUri = "https://www.contoso.com/manufacturerUri",
 *         Model = "ContosoModel",
 *         ProductCode = "SA34VDG",
 *         ResourceGroupName = "myResourceGroup",
 *         SerialNumber = "64-103816-519918-8",
 *         SoftwareRevision = "2.0",
 *         Tags =
 *         {
 *             { "site", "building-1" },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	deviceregistry "github.com/pulumi/pulumi-azure-native-sdk/deviceregistry/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := deviceregistry.NewAsset(ctx, "asset", &deviceregistry.AssetArgs{
 * 			AssetEndpointProfileUri: pulumi.String("https://www.example.com/myAssetEndpointProfile"),
 * 			AssetName:               pulumi.String("my-asset"),
 * 			AssetType:               pulumi.String("MyAssetType"),
 * 			DataPoints: deviceregistry.DataPointArray{
 * 				&deviceregistry.DataPointArgs{
 * 					CapabilityId:           pulumi.String("dtmi:com:example:Thermostat:__temperature;1"),
 * 					DataPointConfiguration: pulumi.String("{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}"),
 * 					DataSource:             pulumi.String("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1"),
 * 					ObservabilityMode:      pulumi.String(deviceregistry.DataPointsObservabilityModeCounter),
 * 				},
 * 				&deviceregistry.DataPointArgs{
 * 					CapabilityId:           pulumi.String("dtmi:com:example:Thermostat:__pressure;1"),
 * 					DataPointConfiguration: pulumi.String("{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}"),
 * 					DataSource:             pulumi.String("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2"),
 * 					ObservabilityMode:      pulumi.String(deviceregistry.DataPointsObservabilityModeNone),
 * 				},
 * 			},
 * 			DefaultDataPointsConfiguration: pulumi.String("{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}"),
 * 			DefaultEventsConfiguration:     pulumi.String("{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}"),
 * 			Description:                    pulumi.String("This is a sample Asset"),
 * 			DisplayName:                    pulumi.String("AssetDisplayName"),
 * 			DocumentationUri:               pulumi.String("https://www.example.com/manual"),
 * 			Enabled:                        pulumi.Bool(true),
 * 			Events: deviceregistry.EventArray{
 * 				&deviceregistry.EventArgs{
 * 					CapabilityId:       pulumi.String("dtmi:com:example:Thermostat:__temperature;1"),
 * 					EventConfiguration: pulumi.String("{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}"),
 * 					EventNotifier:      pulumi.String("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3"),
 * 					ObservabilityMode:  pulumi.String(deviceregistry.EventsObservabilityModeNone),
 * 				},
 * 				&deviceregistry.EventArgs{
 * 					CapabilityId:       pulumi.String("dtmi:com:example:Thermostat:__pressure;1"),
 * 					EventConfiguration: pulumi.String("{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}"),
 * 					EventNotifier:      pulumi.String("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4"),
 * 					ObservabilityMode:  pulumi.String(deviceregistry.EventsObservabilityModeLog),
 * 				},
 * 			},
 * 			ExtendedLocation: &deviceregistry.ExtendedLocationArgs{
 * 				Name: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1"),
 * 				Type: pulumi.String("CustomLocation"),
 * 			},
 * 			ExternalAssetId:   pulumi.String("8ZBA6LRHU0A458969"),
 * 			HardwareRevision:  pulumi.String("1.0"),
 * 			Location:          pulumi.String("West Europe"),
 * 			Manufacturer:      pulumi.String("Contoso"),
 * 			ManufacturerUri:   pulumi.String("https://www.contoso.com/manufacturerUri"),
 * 			Model:             pulumi.String("ContosoModel"),
 * 			ProductCode:       pulumi.String("SA34VDG"),
 * 			ResourceGroupName: pulumi.String("myResourceGroup"),
 * 			SerialNumber:      pulumi.String("64-103816-519918-8"),
 * 			SoftwareRevision:  pulumi.String("2.0"),
 * 			Tags: pulumi.StringMap{
 * 				"site": pulumi.String("building-1"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.deviceregistry.Asset;
 * import com.pulumi.azurenative.deviceregistry.AssetArgs;
 * import com.pulumi.azurenative.deviceregistry.inputs.DataPointArgs;
 * import com.pulumi.azurenative.deviceregistry.inputs.EventArgs;
 * import com.pulumi.azurenative.deviceregistry.inputs.ExtendedLocationArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var asset = new Asset("asset", AssetArgs.builder()
 *             .assetEndpointProfileUri("https://www.example.com/myAssetEndpointProfile")
 *             .assetName("my-asset")
 *             .assetType("MyAssetType")
 *             .dataPoints(
 *                 DataPointArgs.builder()
 *                     .capabilityId("dtmi:com:example:Thermostat:__temperature;1")
 *                     .dataPointConfiguration("{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}")
 *                     .dataSource("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1")
 *                     .observabilityMode("counter")
 *                     .build(),
 *                 DataPointArgs.builder()
 *                     .capabilityId("dtmi:com:example:Thermostat:__pressure;1")
 *                     .dataPointConfiguration("{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}")
 *                     .dataSource("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2")
 *                     .observabilityMode("none")
 *                     .build())
 *             .defaultDataPointsConfiguration("{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}")
 *             .defaultEventsConfiguration("{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}")
 *             .description("This is a sample Asset")
 *             .displayName("AssetDisplayName")
 *             .documentationUri("https://www.example.com/manual")
 *             .enabled(true)
 *             .events(
 *                 EventArgs.builder()
 *                     .capabilityId("dtmi:com:example:Thermostat:__temperature;1")
 *                     .eventConfiguration("{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}")
 *                     .eventNotifier("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3")
 *                     .observabilityMode("none")
 *                     .build(),
 *                 EventArgs.builder()
 *                     .capabilityId("dtmi:com:example:Thermostat:__pressure;1")
 *                     .eventConfiguration("{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}")
 *                     .eventNotifier("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4")
 *                     .observabilityMode("log")
 *                     .build())
 *             .extendedLocation(ExtendedLocationArgs.builder()
 *                 .name("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1")
 *                 .type("CustomLocation")
 *                 .build())
 *             .externalAssetId("8ZBA6LRHU0A458969")
 *             .hardwareRevision("1.0")
 *             .location("West Europe")
 *             .manufacturer("Contoso")
 *             .manufacturerUri("https://www.contoso.com/manufacturerUri")
 *             .model("ContosoModel")
 *             .productCode("SA34VDG")
 *             .resourceGroupName("myResourceGroup")
 *             .serialNumber("64-103816-519918-8")
 *             .softwareRevision("2.0")
 *             .tags(Map.of("site", "building-1"))
 *             .build());
 *     }
 * }
 * ```
 * ### Create_Asset_Without_DisplayName
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var asset = new AzureNative.DeviceRegistry.Asset("asset", new()
 *     {
 *         AssetEndpointProfileUri = "https://www.example.com/myAssetEndpointProfile",
 *         AssetName = "my-asset",
 *         AssetType = "MyAssetType",
 *         DataPoints = new[]
 *         {
 *             new AzureNative.DeviceRegistry.Inputs.DataPointArgs
 *             {
 *                 CapabilityId = "dtmi:com:example:Thermostat:__temperature;1",
 *                 DataPointConfiguration = "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}",
 *                 DataSource = "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1",
 *                 ObservabilityMode = AzureNative.DeviceRegistry.DataPointsObservabilityMode.Counter,
 *             },
 *             new AzureNative.DeviceRegistry.Inputs.DataPointArgs
 *             {
 *                 CapabilityId = "dtmi:com:example:Thermostat:__pressure;1",
 *                 DataPointConfiguration = "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}",
 *                 DataSource = "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2",
 *                 ObservabilityMode = AzureNative.DeviceRegistry.DataPointsObservabilityMode.None,
 *             },
 *         },
 *         DefaultDataPointsConfiguration = "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}",
 *         DefaultEventsConfiguration = "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}",
 *         Description = "This is a sample Asset",
 *         DocumentationUri = "https://www.example.com/manual",
 *         Enabled = true,
 *         Events = new[]
 *         {
 *             new AzureNative.DeviceRegistry.Inputs.EventArgs
 *             {
 *                 CapabilityId = "dtmi:com:example:Thermostat:__temperature;1",
 *                 EventConfiguration = "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}",
 *                 EventNotifier = "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3",
 *                 ObservabilityMode = AzureNative.DeviceRegistry.EventsObservabilityMode.None,
 *             },
 *             new AzureNative.DeviceRegistry.Inputs.EventArgs
 *             {
 *                 CapabilityId = "dtmi:com:example:Thermostat:__pressure;1",
 *                 EventConfiguration = "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}",
 *                 EventNotifier = "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4",
 *                 ObservabilityMode = AzureNative.DeviceRegistry.EventsObservabilityMode.Log,
 *             },
 *         },
 *         ExtendedLocation = new AzureNative.DeviceRegistry.Inputs.ExtendedLocationArgs
 *         {
 *             Name = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1",
 *             Type = "CustomLocation",
 *         },
 *         ExternalAssetId = "8ZBA6LRHU0A458969",
 *         HardwareRevision = "1.0",
 *         Location = "West Europe",
 *         Manufacturer = "Contoso",
 *         ManufacturerUri = "https://www.contoso.com/manufacturerUri",
 *         Model = "ContosoModel",
 *         ProductCode = "SA34VDG",
 *         ResourceGroupName = "myResourceGroup",
 *         SerialNumber = "64-103816-519918-8",
 *         SoftwareRevision = "2.0",
 *         Tags =
 *         {
 *             { "site", "building-1" },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	deviceregistry "github.com/pulumi/pulumi-azure-native-sdk/deviceregistry/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := deviceregistry.NewAsset(ctx, "asset", &deviceregistry.AssetArgs{
 * 			AssetEndpointProfileUri: pulumi.String("https://www.example.com/myAssetEndpointProfile"),
 * 			AssetName:               pulumi.String("my-asset"),
 * 			AssetType:               pulumi.String("MyAssetType"),
 * 			DataPoints: deviceregistry.DataPointArray{
 * 				&deviceregistry.DataPointArgs{
 * 					CapabilityId:           pulumi.String("dtmi:com:example:Thermostat:__temperature;1"),
 * 					DataPointConfiguration: pulumi.String("{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}"),
 * 					DataSource:             pulumi.String("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1"),
 * 					ObservabilityMode:      pulumi.String(deviceregistry.DataPointsObservabilityModeCounter),
 * 				},
 * 				&deviceregistry.DataPointArgs{
 * 					CapabilityId:           pulumi.String("dtmi:com:example:Thermostat:__pressure;1"),
 * 					DataPointConfiguration: pulumi.String("{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}"),
 * 					DataSource:             pulumi.String("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2"),
 * 					ObservabilityMode:      pulumi.String(deviceregistry.DataPointsObservabilityModeNone),
 * 				},
 * 			},
 * 			DefaultDataPointsConfiguration: pulumi.String("{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}"),
 * 			DefaultEventsConfiguration:     pulumi.String("{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}"),
 * 			Description:                    pulumi.String("This is a sample Asset"),
 * 			DocumentationUri:               pulumi.String("https://www.example.com/manual"),
 * 			Enabled:                        pulumi.Bool(true),
 * 			Events: deviceregistry.EventArray{
 * 				&deviceregistry.EventArgs{
 * 					CapabilityId:       pulumi.String("dtmi:com:example:Thermostat:__temperature;1"),
 * 					EventConfiguration: pulumi.String("{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}"),
 * 					EventNotifier:      pulumi.String("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3"),
 * 					ObservabilityMode:  pulumi.String(deviceregistry.EventsObservabilityModeNone),
 * 				},
 * 				&deviceregistry.EventArgs{
 * 					CapabilityId:       pulumi.String("dtmi:com:example:Thermostat:__pressure;1"),
 * 					EventConfiguration: pulumi.String("{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}"),
 * 					EventNotifier:      pulumi.String("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4"),
 * 					ObservabilityMode:  pulumi.String(deviceregistry.EventsObservabilityModeLog),
 * 				},
 * 			},
 * 			ExtendedLocation: &deviceregistry.ExtendedLocationArgs{
 * 				Name: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1"),
 * 				Type: pulumi.String("CustomLocation"),
 * 			},
 * 			ExternalAssetId:   pulumi.String("8ZBA6LRHU0A458969"),
 * 			HardwareRevision:  pulumi.String("1.0"),
 * 			Location:          pulumi.String("West Europe"),
 * 			Manufacturer:      pulumi.String("Contoso"),
 * 			ManufacturerUri:   pulumi.String("https://www.contoso.com/manufacturerUri"),
 * 			Model:             pulumi.String("ContosoModel"),
 * 			ProductCode:       pulumi.String("SA34VDG"),
 * 			ResourceGroupName: pulumi.String("myResourceGroup"),
 * 			SerialNumber:      pulumi.String("64-103816-519918-8"),
 * 			SoftwareRevision:  pulumi.String("2.0"),
 * 			Tags: pulumi.StringMap{
 * 				"site": pulumi.String("building-1"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.deviceregistry.Asset;
 * import com.pulumi.azurenative.deviceregistry.AssetArgs;
 * import com.pulumi.azurenative.deviceregistry.inputs.DataPointArgs;
 * import com.pulumi.azurenative.deviceregistry.inputs.EventArgs;
 * import com.pulumi.azurenative.deviceregistry.inputs.ExtendedLocationArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var asset = new Asset("asset", AssetArgs.builder()
 *             .assetEndpointProfileUri("https://www.example.com/myAssetEndpointProfile")
 *             .assetName("my-asset")
 *             .assetType("MyAssetType")
 *             .dataPoints(
 *                 DataPointArgs.builder()
 *                     .capabilityId("dtmi:com:example:Thermostat:__temperature;1")
 *                     .dataPointConfiguration("{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}")
 *                     .dataSource("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1")
 *                     .observabilityMode("counter")
 *                     .build(),
 *                 DataPointArgs.builder()
 *                     .capabilityId("dtmi:com:example:Thermostat:__pressure;1")
 *                     .dataPointConfiguration("{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}")
 *                     .dataSource("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2")
 *                     .observabilityMode("none")
 *                     .build())
 *             .defaultDataPointsConfiguration("{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}")
 *             .defaultEventsConfiguration("{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}")
 *             .description("This is a sample Asset")
 *             .documentationUri("https://www.example.com/manual")
 *             .enabled(true)
 *             .events(
 *                 EventArgs.builder()
 *                     .capabilityId("dtmi:com:example:Thermostat:__temperature;1")
 *                     .eventConfiguration("{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}")
 *                     .eventNotifier("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3")
 *                     .observabilityMode("none")
 *                     .build(),
 *                 EventArgs.builder()
 *                     .capabilityId("dtmi:com:example:Thermostat:__pressure;1")
 *                     .eventConfiguration("{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}")
 *                     .eventNotifier("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4")
 *                     .observabilityMode("log")
 *                     .build())
 *             .extendedLocation(ExtendedLocationArgs.builder()
 *                 .name("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1")
 *                 .type("CustomLocation")
 *                 .build())
 *             .externalAssetId("8ZBA6LRHU0A458969")
 *             .hardwareRevision("1.0")
 *             .location("West Europe")
 *             .manufacturer("Contoso")
 *             .manufacturerUri("https://www.contoso.com/manufacturerUri")
 *             .model("ContosoModel")
 *             .productCode("SA34VDG")
 *             .resourceGroupName("myResourceGroup")
 *             .serialNumber("64-103816-519918-8")
 *             .softwareRevision("2.0")
 *             .tags(Map.of("site", "building-1"))
 *             .build());
 *     }
 * }
 * ```
 * ### Create_Asset_Without_ExternalAssetId
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var asset = new AzureNative.DeviceRegistry.Asset("asset", new()
 *     {
 *         AssetEndpointProfileUri = "https://www.example.com/myAssetEndpointProfile",
 *         AssetName = "my-asset",
 *         AssetType = "MyAssetType",
 *         DataPoints = new[]
 *         {
 *             new AzureNative.DeviceRegistry.Inputs.DataPointArgs
 *             {
 *                 CapabilityId = "dtmi:com:example:Thermostat:__temperature;1",
 *                 DataPointConfiguration = "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}",
 *                 DataSource = "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1",
 *                 ObservabilityMode = AzureNative.DeviceRegistry.DataPointsObservabilityMode.Counter,
 *             },
 *             new AzureNative.DeviceRegistry.Inputs.DataPointArgs
 *             {
 *                 CapabilityId = "dtmi:com:example:Thermostat:__pressure;1",
 *                 DataPointConfiguration = "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}",
 *                 DataSource = "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2",
 *                 ObservabilityMode = AzureNative.DeviceRegistry.DataPointsObservabilityMode.None,
 *             },
 *         },
 *         DefaultDataPointsConfiguration = "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}",
 *         DefaultEventsConfiguration = "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}",
 *         Description = "This is a sample Asset",
 *         DisplayName = "AssetDisplayName",
 *         DocumentationUri = "https://www.example.com/manual",
 *         Enabled = true,
 *         Events = new[]
 *         {
 *             new AzureNative.DeviceRegistry.Inputs.EventArgs
 *             {
 *                 CapabilityId = "dtmi:com:example:Thermostat:__temperature;1",
 *                 EventConfiguration = "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}",
 *                 EventNotifier = "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3",
 *                 ObservabilityMode = AzureNative.DeviceRegistry.EventsObservabilityMode.None,
 *             },
 *             new AzureNative.DeviceRegistry.Inputs.EventArgs
 *             {
 *                 CapabilityId = "dtmi:com:example:Thermostat:__pressure;1",
 *                 EventConfiguration = "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}",
 *                 EventNotifier = "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4",
 *                 ObservabilityMode = AzureNative.DeviceRegistry.EventsObservabilityMode.Log,
 *             },
 *         },
 *         ExtendedLocation = new AzureNative.DeviceRegistry.Inputs.ExtendedLocationArgs
 *         {
 *             Name = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1",
 *             Type = "CustomLocation",
 *         },
 *         HardwareRevision = "1.0",
 *         Location = "West Europe",
 *         Manufacturer = "Contoso",
 *         ManufacturerUri = "https://www.contoso.com/manufacturerUri",
 *         Model = "ContosoModel",
 *         ProductCode = "SA34VDG",
 *         ResourceGroupName = "myResourceGroup",
 *         SerialNumber = "64-103816-519918-8",
 *         SoftwareRevision = "2.0",
 *         Tags =
 *         {
 *             { "site", "building-1" },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	deviceregistry "github.com/pulumi/pulumi-azure-native-sdk/deviceregistry/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := deviceregistry.NewAsset(ctx, "asset", &deviceregistry.AssetArgs{
 * 			AssetEndpointProfileUri: pulumi.String("https://www.example.com/myAssetEndpointProfile"),
 * 			AssetName:               pulumi.String("my-asset"),
 * 			AssetType:               pulumi.String("MyAssetType"),
 * 			DataPoints: deviceregistry.DataPointArray{
 * 				&deviceregistry.DataPointArgs{
 * 					CapabilityId:           pulumi.String("dtmi:com:example:Thermostat:__temperature;1"),
 * 					DataPointConfiguration: pulumi.String("{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}"),
 * 					DataSource:             pulumi.String("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1"),
 * 					ObservabilityMode:      pulumi.String(deviceregistry.DataPointsObservabilityModeCounter),
 * 				},
 * 				&deviceregistry.DataPointArgs{
 * 					CapabilityId:           pulumi.String("dtmi:com:example:Thermostat:__pressure;1"),
 * 					DataPointConfiguration: pulumi.String("{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}"),
 * 					DataSource:             pulumi.String("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2"),
 * 					ObservabilityMode:      pulumi.String(deviceregistry.DataPointsObservabilityModeNone),
 * 				},
 * 			},
 * 			DefaultDataPointsConfiguration: pulumi.String("{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}"),
 * 			DefaultEventsConfiguration:     pulumi.String("{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}"),
 * 			Description:                    pulumi.String("This is a sample Asset"),
 * 			DisplayName:                    pulumi.String("AssetDisplayName"),
 * 			DocumentationUri:               pulumi.String("https://www.example.com/manual"),
 * 			Enabled:                        pulumi.Bool(true),
 * 			Events: deviceregistry.EventArray{
 * 				&deviceregistry.EventArgs{
 * 					CapabilityId:       pulumi.String("dtmi:com:example:Thermostat:__temperature;1"),
 * 					EventConfiguration: pulumi.String("{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}"),
 * 					EventNotifier:      pulumi.String("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3"),
 * 					ObservabilityMode:  pulumi.String(deviceregistry.EventsObservabilityModeNone),
 * 				},
 * 				&deviceregistry.EventArgs{
 * 					CapabilityId:       pulumi.String("dtmi:com:example:Thermostat:__pressure;1"),
 * 					EventConfiguration: pulumi.String("{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}"),
 * 					EventNotifier:      pulumi.String("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4"),
 * 					ObservabilityMode:  pulumi.String(deviceregistry.EventsObservabilityModeLog),
 * 				},
 * 			},
 * 			ExtendedLocation: &deviceregistry.ExtendedLocationArgs{
 * 				Name: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1"),
 * 				Type: pulumi.String("CustomLocation"),
 * 			},
 * 			HardwareRevision:  pulumi.String("1.0"),
 * 			Location:          pulumi.String("West Europe"),
 * 			Manufacturer:      pulumi.String("Contoso"),
 * 			ManufacturerUri:   pulumi.String("https://www.contoso.com/manufacturerUri"),
 * 			Model:             pulumi.String("ContosoModel"),
 * 			ProductCode:       pulumi.String("SA34VDG"),
 * 			ResourceGroupName: pulumi.String("myResourceGroup"),
 * 			SerialNumber:      pulumi.String("64-103816-519918-8"),
 * 			SoftwareRevision:  pulumi.String("2.0"),
 * 			Tags: pulumi.StringMap{
 * 				"site": pulumi.String("building-1"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.deviceregistry.Asset;
 * import com.pulumi.azurenative.deviceregistry.AssetArgs;
 * import com.pulumi.azurenative.deviceregistry.inputs.DataPointArgs;
 * import com.pulumi.azurenative.deviceregistry.inputs.EventArgs;
 * import com.pulumi.azurenative.deviceregistry.inputs.ExtendedLocationArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var asset = new Asset("asset", AssetArgs.builder()
 *             .assetEndpointProfileUri("https://www.example.com/myAssetEndpointProfile")
 *             .assetName("my-asset")
 *             .assetType("MyAssetType")
 *             .dataPoints(
 *                 DataPointArgs.builder()
 *                     .capabilityId("dtmi:com:example:Thermostat:__temperature;1")
 *                     .dataPointConfiguration("{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}")
 *                     .dataSource("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1")
 *                     .observabilityMode("counter")
 *                     .build(),
 *                 DataPointArgs.builder()
 *                     .capabilityId("dtmi:com:example:Thermostat:__pressure;1")
 *                     .dataPointConfiguration("{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}")
 *                     .dataSource("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2")
 *                     .observabilityMode("none")
 *                     .build())
 *             .defaultDataPointsConfiguration("{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}")
 *             .defaultEventsConfiguration("{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}")
 *             .description("This is a sample Asset")
 *             .displayName("AssetDisplayName")
 *             .documentationUri("https://www.example.com/manual")
 *             .enabled(true)
 *             .events(
 *                 EventArgs.builder()
 *                     .capabilityId("dtmi:com:example:Thermostat:__temperature;1")
 *                     .eventConfiguration("{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}")
 *                     .eventNotifier("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3")
 *                     .observabilityMode("none")
 *                     .build(),
 *                 EventArgs.builder()
 *                     .capabilityId("dtmi:com:example:Thermostat:__pressure;1")
 *                     .eventConfiguration("{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}")
 *                     .eventNotifier("nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4")
 *                     .observabilityMode("log")
 *                     .build())
 *             .extendedLocation(ExtendedLocationArgs.builder()
 *                 .name("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1")
 *                 .type("CustomLocation")
 *                 .build())
 *             .hardwareRevision("1.0")
 *             .location("West Europe")
 *             .manufacturer("Contoso")
 *             .manufacturerUri("https://www.contoso.com/manufacturerUri")
 *             .model("ContosoModel")
 *             .productCode("SA34VDG")
 *             .resourceGroupName("myResourceGroup")
 *             .serialNumber("64-103816-519918-8")
 *             .softwareRevision("2.0")
 *             .tags(Map.of("site", "building-1"))
 *             .build());
 *     }
 * }
 * ```
 * ## Import
 * An existing resource can be imported using its type token, name, and identifier, e.g.
 * ```sh
 * $ pulumi import azure-native:deviceregistry:Asset my-asset /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceRegistry/assets/{assetName}
 * ```
 * @property assetEndpointProfileUri A reference to the asset endpoint profile (connection information) used by brokers to connect to an endpoint that provides data points for this asset. Must have the format /.
 * @property assetName Asset name parameter.
 * @property assetType Resource path to asset type (model) definition.
 * @property attributes A set of key-value pairs that contain custom attributes set by the customer.
 * @property dataPoints Array of data points that are part of the asset. Each data point can reference an asset type capability and have per-data point configuration. See below for more details for the definition of the dataPoints element.
 * @property defaultDataPointsConfiguration Protocol-specific default configuration for all data points. Each data point can have its own configuration that overrides the default settings here. This assumes that each asset instance has one protocol.
 * @property defaultEventsConfiguration Protocol-specific default configuration for all events. Each event can have its own configuration that overrides the default settings here. This assumes that each asset instance has one protocol.
 * @property description Human-readable description of the asset.
 * @property displayName Human-readable display name.
 * @property documentationUri Reference to the documentation.
 * @property enabled Enabled/Disabled status of the asset.
 * @property events Array of events that are part of the asset. Each event can reference an asset type capability and have per-event configuration. See below for more details about the definition of the events element.
 * @property extendedLocation The extended location.
 * @property externalAssetId Asset id provided by the customer.
 * @property hardwareRevision Revision number of the hardware.
 * @property location The geo-location where the resource lives
 * @property manufacturer Asset manufacturer name.
 * @property manufacturerUri Asset manufacturer URI.
 * @property model Asset model name.
 * @property productCode Asset product code.
 * @property resourceGroupName The name of the resource group. The name is case insensitive.
 * @property serialNumber Asset serial number.
 * @property softwareRevision Revision number of the software.
 * @property tags Resource tags.
 */
public data class AssetArgs(
    public val assetEndpointProfileUri: Output? = null,
    public val assetName: Output? = null,
    public val assetType: Output? = null,
    public val attributes: Output? = null,
    public val dataPoints: Output>? = null,
    public val defaultDataPointsConfiguration: Output? = null,
    public val defaultEventsConfiguration: Output? = null,
    public val description: Output? = null,
    public val displayName: Output? = null,
    public val documentationUri: Output? = null,
    public val enabled: Output? = null,
    public val events: Output>? = null,
    public val extendedLocation: Output? = null,
    public val externalAssetId: Output? = null,
    public val hardwareRevision: Output? = null,
    public val location: Output? = null,
    public val manufacturer: Output? = null,
    public val manufacturerUri: Output? = null,
    public val model: Output? = null,
    public val productCode: Output? = null,
    public val resourceGroupName: Output? = null,
    public val serialNumber: Output? = null,
    public val softwareRevision: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.deviceregistry.AssetArgs =
        com.pulumi.azurenative.deviceregistry.AssetArgs.builder()
            .assetEndpointProfileUri(assetEndpointProfileUri?.applyValue({ args0 -> args0 }))
            .assetName(assetName?.applyValue({ args0 -> args0 }))
            .assetType(assetType?.applyValue({ args0 -> args0 }))
            .attributes(attributes?.applyValue({ args0 -> args0 }))
            .dataPoints(
                dataPoints?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .defaultDataPointsConfiguration(defaultDataPointsConfiguration?.applyValue({ args0 -> args0 }))
            .defaultEventsConfiguration(defaultEventsConfiguration?.applyValue({ args0 -> args0 }))
            .description(description?.applyValue({ args0 -> args0 }))
            .displayName(displayName?.applyValue({ args0 -> args0 }))
            .documentationUri(documentationUri?.applyValue({ args0 -> args0 }))
            .enabled(enabled?.applyValue({ args0 -> args0 }))
            .events(events?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .extendedLocation(extendedLocation?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .externalAssetId(externalAssetId?.applyValue({ args0 -> args0 }))
            .hardwareRevision(hardwareRevision?.applyValue({ args0 -> args0 }))
            .location(location?.applyValue({ args0 -> args0 }))
            .manufacturer(manufacturer?.applyValue({ args0 -> args0 }))
            .manufacturerUri(manufacturerUri?.applyValue({ args0 -> args0 }))
            .model(model?.applyValue({ args0 -> args0 }))
            .productCode(productCode?.applyValue({ args0 -> args0 }))
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .serialNumber(serialNumber?.applyValue({ args0 -> args0 }))
            .softwareRevision(softwareRevision?.applyValue({ args0 -> args0 }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            ).build()
}

/**
 * Builder for [AssetArgs].
 */
@PulumiTagMarker
public class AssetArgsBuilder internal constructor() {
    private var assetEndpointProfileUri: Output? = null

    private var assetName: Output? = null

    private var assetType: Output? = null

    private var attributes: Output? = null

    private var dataPoints: Output>? = null

    private var defaultDataPointsConfiguration: Output? = null

    private var defaultEventsConfiguration: Output? = null

    private var description: Output? = null

    private var displayName: Output? = null

    private var documentationUri: Output? = null

    private var enabled: Output? = null

    private var events: Output>? = null

    private var extendedLocation: Output? = null

    private var externalAssetId: Output? = null

    private var hardwareRevision: Output? = null

    private var location: Output? = null

    private var manufacturer: Output? = null

    private var manufacturerUri: Output? = null

    private var model: Output? = null

    private var productCode: Output? = null

    private var resourceGroupName: Output? = null

    private var serialNumber: Output? = null

    private var softwareRevision: Output? = null

    private var tags: Output>? = null

    /**
     * @param value A reference to the asset endpoint profile (connection information) used by brokers to connect to an endpoint that provides data points for this asset. Must have the format /.
     */
    @JvmName("rllquqnjdwfixuag")
    public suspend fun assetEndpointProfileUri(`value`: Output) {
        this.assetEndpointProfileUri = value
    }

    /**
     * @param value Asset name parameter.
     */
    @JvmName("xefmycgvdmvllyoh")
    public suspend fun assetName(`value`: Output) {
        this.assetName = value
    }

    /**
     * @param value Resource path to asset type (model) definition.
     */
    @JvmName("wgsyhrgoufemjccm")
    public suspend fun assetType(`value`: Output) {
        this.assetType = value
    }

    /**
     * @param value A set of key-value pairs that contain custom attributes set by the customer.
     */
    @JvmName("gousnpkcfdbtnlul")
    public suspend fun attributes(`value`: Output) {
        this.attributes = value
    }

    /**
     * @param value Array of data points that are part of the asset. Each data point can reference an asset type capability and have per-data point configuration. See below for more details for the definition of the dataPoints element.
     */
    @JvmName("amxcbrshdbsvtsay")
    public suspend fun dataPoints(`value`: Output>) {
        this.dataPoints = value
    }

    @JvmName("ajyjxtprqaahwplo")
    public suspend fun dataPoints(vararg values: Output) {
        this.dataPoints = Output.all(values.asList())
    }

    /**
     * @param values Array of data points that are part of the asset. Each data point can reference an asset type capability and have per-data point configuration. See below for more details for the definition of the dataPoints element.
     */
    @JvmName("qrrbbasbrkqrjlmg")
    public suspend fun dataPoints(values: List>) {
        this.dataPoints = Output.all(values)
    }

    /**
     * @param value Protocol-specific default configuration for all data points. Each data point can have its own configuration that overrides the default settings here. This assumes that each asset instance has one protocol.
     */
    @JvmName("efdxjphavudesqyx")
    public suspend fun defaultDataPointsConfiguration(`value`: Output) {
        this.defaultDataPointsConfiguration = value
    }

    /**
     * @param value Protocol-specific default configuration for all events. Each event can have its own configuration that overrides the default settings here. This assumes that each asset instance has one protocol.
     */
    @JvmName("uxtvjthhfjmisnlw")
    public suspend fun defaultEventsConfiguration(`value`: Output) {
        this.defaultEventsConfiguration = value
    }

    /**
     * @param value Human-readable description of the asset.
     */
    @JvmName("rdganahbmhbpifly")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value Human-readable display name.
     */
    @JvmName("uxpdokuxnwuniaup")
    public suspend fun displayName(`value`: Output) {
        this.displayName = value
    }

    /**
     * @param value Reference to the documentation.
     */
    @JvmName("ebsrmtbbxttegclu")
    public suspend fun documentationUri(`value`: Output) {
        this.documentationUri = value
    }

    /**
     * @param value Enabled/Disabled status of the asset.
     */
    @JvmName("uyymvgkxuagnviab")
    public suspend fun enabled(`value`: Output) {
        this.enabled = value
    }

    /**
     * @param value Array of events that are part of the asset. Each event can reference an asset type capability and have per-event configuration. See below for more details about the definition of the events element.
     */
    @JvmName("oecudwwdxojpokco")
    public suspend fun events(`value`: Output>) {
        this.events = value
    }

    @JvmName("vtfkmniraxkkhfyo")
    public suspend fun events(vararg values: Output) {
        this.events = Output.all(values.asList())
    }

    /**
     * @param values Array of events that are part of the asset. Each event can reference an asset type capability and have per-event configuration. See below for more details about the definition of the events element.
     */
    @JvmName("lxjykevytkvcvtsp")
    public suspend fun events(values: List>) {
        this.events = Output.all(values)
    }

    /**
     * @param value The extended location.
     */
    @JvmName("tjcwhwlrsatcsfpa")
    public suspend fun extendedLocation(`value`: Output) {
        this.extendedLocation = value
    }

    /**
     * @param value Asset id provided by the customer.
     */
    @JvmName("tcqkmnubbliagptl")
    public suspend fun externalAssetId(`value`: Output) {
        this.externalAssetId = value
    }

    /**
     * @param value Revision number of the hardware.
     */
    @JvmName("eldlbcupthokkyim")
    public suspend fun hardwareRevision(`value`: Output) {
        this.hardwareRevision = value
    }

    /**
     * @param value The geo-location where the resource lives
     */
    @JvmName("fagaockvybowonsv")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value Asset manufacturer name.
     */
    @JvmName("dfctvulvcifjnmem")
    public suspend fun manufacturer(`value`: Output) {
        this.manufacturer = value
    }

    /**
     * @param value Asset manufacturer URI.
     */
    @JvmName("mlswhvplylrfwftn")
    public suspend fun manufacturerUri(`value`: Output) {
        this.manufacturerUri = value
    }

    /**
     * @param value Asset model name.
     */
    @JvmName("tkjjbicovitrtjee")
    public suspend fun model(`value`: Output) {
        this.model = value
    }

    /**
     * @param value Asset product code.
     */
    @JvmName("gmvrjcnyktpfxgup")
    public suspend fun productCode(`value`: Output) {
        this.productCode = value
    }

    /**
     * @param value The name of the resource group. The name is case insensitive.
     */
    @JvmName("hvbnuvkepcistxcn")
    public suspend fun resourceGroupName(`value`: Output) {
        this.resourceGroupName = value
    }

    /**
     * @param value Asset serial number.
     */
    @JvmName("aytslqsphsdevwfj")
    public suspend fun serialNumber(`value`: Output) {
        this.serialNumber = value
    }

    /**
     * @param value Revision number of the software.
     */
    @JvmName("eflqodpolyddofhj")
    public suspend fun softwareRevision(`value`: Output) {
        this.softwareRevision = value
    }

    /**
     * @param value Resource tags.
     */
    @JvmName("rtiwtqcfrnbywtht")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value A reference to the asset endpoint profile (connection information) used by brokers to connect to an endpoint that provides data points for this asset. Must have the format /.
     */
    @JvmName("ufgxybeyssjfxgau")
    public suspend fun assetEndpointProfileUri(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assetEndpointProfileUri = mapped
    }

    /**
     * @param value Asset name parameter.
     */
    @JvmName("ttvofcyjekpocdyx")
    public suspend fun assetName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assetName = mapped
    }

    /**
     * @param value Resource path to asset type (model) definition.
     */
    @JvmName("crhdpsksatyfqymc")
    public suspend fun assetType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assetType = mapped
    }

    /**
     * @param value A set of key-value pairs that contain custom attributes set by the customer.
     */
    @JvmName("rvmpiqacnwiqtsnl")
    public suspend fun attributes(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.attributes = mapped
    }

    /**
     * @param value Array of data points that are part of the asset. Each data point can reference an asset type capability and have per-data point configuration. See below for more details for the definition of the dataPoints element.
     */
    @JvmName("phiuxirxsxykgcxf")
    public suspend fun dataPoints(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataPoints = mapped
    }

    /**
     * @param argument Array of data points that are part of the asset. Each data point can reference an asset type capability and have per-data point configuration. See below for more details for the definition of the dataPoints element.
     */
    @JvmName("hsouydbqofsjovqd")
    public suspend fun dataPoints(argument: List Unit>) {
        val toBeMapped = argument.toList().map { DataPointArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.dataPoints = mapped
    }

    /**
     * @param argument Array of data points that are part of the asset. Each data point can reference an asset type capability and have per-data point configuration. See below for more details for the definition of the dataPoints element.
     */
    @JvmName("oejosfsqtoqjeimp")
    public suspend fun dataPoints(vararg argument: suspend DataPointArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { DataPointArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.dataPoints = mapped
    }

    /**
     * @param argument Array of data points that are part of the asset. Each data point can reference an asset type capability and have per-data point configuration. See below for more details for the definition of the dataPoints element.
     */
    @JvmName("wiaporjqmkalbeor")
    public suspend fun dataPoints(argument: suspend DataPointArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(DataPointArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.dataPoints = mapped
    }

    /**
     * @param values Array of data points that are part of the asset. Each data point can reference an asset type capability and have per-data point configuration. See below for more details for the definition of the dataPoints element.
     */
    @JvmName("pskpnlguunlfkfdn")
    public suspend fun dataPoints(vararg values: DataPointArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dataPoints = mapped
    }

    /**
     * @param value Protocol-specific default configuration for all data points. Each data point can have its own configuration that overrides the default settings here. This assumes that each asset instance has one protocol.
     */
    @JvmName("vpydaitetdqqhjji")
    public suspend fun defaultDataPointsConfiguration(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultDataPointsConfiguration = mapped
    }

    /**
     * @param value Protocol-specific default configuration for all events. Each event can have its own configuration that overrides the default settings here. This assumes that each asset instance has one protocol.
     */
    @JvmName("abybmslcncrexyvn")
    public suspend fun defaultEventsConfiguration(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultEventsConfiguration = mapped
    }

    /**
     * @param value Human-readable description of the asset.
     */
    @JvmName("twhamcaudgoxtwvk")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value Human-readable display name.
     */
    @JvmName("gmfhskppncuxarka")
    public suspend fun displayName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.displayName = mapped
    }

    /**
     * @param value Reference to the documentation.
     */
    @JvmName("rmafqcqjpgycuhxj")
    public suspend fun documentationUri(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.documentationUri = mapped
    }

    /**
     * @param value Enabled/Disabled status of the asset.
     */
    @JvmName("fqctaexfxxltcdbj")
    public suspend fun enabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enabled = mapped
    }

    /**
     * @param value Array of events that are part of the asset. Each event can reference an asset type capability and have per-event configuration. See below for more details about the definition of the events element.
     */
    @JvmName("vujrpwuffjrqtsep")
    public suspend fun events(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.events = mapped
    }

    /**
     * @param argument Array of events that are part of the asset. Each event can reference an asset type capability and have per-event configuration. See below for more details about the definition of the events element.
     */
    @JvmName("egipryljhyoolske")
    public suspend fun events(argument: List Unit>) {
        val toBeMapped = argument.toList().map { EventArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.events = mapped
    }

    /**
     * @param argument Array of events that are part of the asset. Each event can reference an asset type capability and have per-event configuration. See below for more details about the definition of the events element.
     */
    @JvmName("fnqasuqejedamolo")
    public suspend fun events(vararg argument: suspend EventArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { EventArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.events = mapped
    }

    /**
     * @param argument Array of events that are part of the asset. Each event can reference an asset type capability and have per-event configuration. See below for more details about the definition of the events element.
     */
    @JvmName("dwteaiwhkqjxfjyb")
    public suspend fun events(argument: suspend EventArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(EventArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.events = mapped
    }

    /**
     * @param values Array of events that are part of the asset. Each event can reference an asset type capability and have per-event configuration. See below for more details about the definition of the events element.
     */
    @JvmName("twhllolwuhnueowc")
    public suspend fun events(vararg values: EventArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.events = mapped
    }

    /**
     * @param value The extended location.
     */
    @JvmName("qdmnkjdjljlrvtsh")
    public suspend fun extendedLocation(`value`: ExtendedLocationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.extendedLocation = mapped
    }

    /**
     * @param argument The extended location.
     */
    @JvmName("ifytwhhulvfjdxmp")
    public suspend fun extendedLocation(argument: suspend ExtendedLocationArgsBuilder.() -> Unit) {
        val toBeMapped = ExtendedLocationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.extendedLocation = mapped
    }

    /**
     * @param value Asset id provided by the customer.
     */
    @JvmName("alvpxndyelquugsk")
    public suspend fun externalAssetId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.externalAssetId = mapped
    }

    /**
     * @param value Revision number of the hardware.
     */
    @JvmName("kkinaqrhrqptwpeh")
    public suspend fun hardwareRevision(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hardwareRevision = mapped
    }

    /**
     * @param value The geo-location where the resource lives
     */
    @JvmName("dynrvrqqwibmqplm")
    public suspend fun location(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param value Asset manufacturer name.
     */
    @JvmName("rkxnxdsfcitdsarj")
    public suspend fun manufacturer(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.manufacturer = mapped
    }

    /**
     * @param value Asset manufacturer URI.
     */
    @JvmName("krsrptscfuxqmrjg")
    public suspend fun manufacturerUri(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.manufacturerUri = mapped
    }

    /**
     * @param value Asset model name.
     */
    @JvmName("cqdfvixjytdisgsx")
    public suspend fun model(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.model = mapped
    }

    /**
     * @param value Asset product code.
     */
    @JvmName("hdigrykgwxstncpk")
    public suspend fun productCode(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.productCode = mapped
    }

    /**
     * @param value The name of the resource group. The name is case insensitive.
     */
    @JvmName("wiwccchndcxpbhqc")
    public suspend fun resourceGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroupName = mapped
    }

    /**
     * @param value Asset serial number.
     */
    @JvmName("rwbuldxehmytfhxt")
    public suspend fun serialNumber(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serialNumber = mapped
    }

    /**
     * @param value Revision number of the software.
     */
    @JvmName("ebtaonaijwkvumou")
    public suspend fun softwareRevision(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.softwareRevision = mapped
    }

    /**
     * @param value Resource tags.
     */
    @JvmName("vghaskalbyaimthd")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values Resource tags.
     */
    @JvmName("ukrwkoxatoredqek")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): AssetArgs = AssetArgs(
        assetEndpointProfileUri = assetEndpointProfileUri,
        assetName = assetName,
        assetType = assetType,
        attributes = attributes,
        dataPoints = dataPoints,
        defaultDataPointsConfiguration = defaultDataPointsConfiguration,
        defaultEventsConfiguration = defaultEventsConfiguration,
        description = description,
        displayName = displayName,
        documentationUri = documentationUri,
        enabled = enabled,
        events = events,
        extendedLocation = extendedLocation,
        externalAssetId = externalAssetId,
        hardwareRevision = hardwareRevision,
        location = location,
        manufacturer = manufacturer,
        manufacturerUri = manufacturerUri,
        model = model,
        productCode = productCode,
        resourceGroupName = resourceGroupName,
        serialNumber = serialNumber,
        softwareRevision = softwareRevision,
        tags = tags,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy