import * as pulumi from "@pulumi/pulumi"; /** * Manages an IotHub Enrichment * * > **Note:** Enrichment can be defined either directly on the `azure.iot.IoTHub` resource, or using the `azure.iot.Enrichment` resources - but the two cannot be used together. If both are used against the same IoTHub, spurious changes will occur. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = new azure.core.ResourceGroup("example", { * name: "example-resources", * location: "West Europe", * }); * const exampleAccount = new azure.storage.Account("example", { * name: "examplestorageaccount", * resourceGroupName: example.name, * location: example.location, * accountTier: "Standard", * accountReplicationType: "LRS", * }); * const exampleContainer = new azure.storage.Container("example", { * name: "example", * storageAccountName: exampleAccount.name, * containerAccessType: "private", * }); * const exampleIoTHub = new azure.iot.IoTHub("example", { * name: "exampleIothub", * resourceGroupName: example.name, * location: example.location, * sku: { * name: "S1", * capacity: 1, * }, * tags: { * purpose: "testing", * }, * }); * const exampleEndpointStorageContainer = new azure.iot.EndpointStorageContainer("example", { * resourceGroupName: example.name, * iothubId: exampleIoTHub.id, * name: "example", * connectionString: exampleAccount.primaryBlobConnectionString, * batchFrequencyInSeconds: 60, * maxChunkSizeInBytes: 10485760, * containerName: exampleContainer.name, * encoding: "Avro", * fileNameFormat: "{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}", * }); * const exampleRoute = new azure.iot.Route("example", { * resourceGroupName: example.name, * iothubName: exampleIoTHub.name, * name: "example", * source: "DeviceMessages", * condition: "true", * endpointNames: exampleEndpointStorageContainer.name, * enabled: true, * }); * const exampleEnrichment = new azure.iot.Enrichment("example", { * resourceGroupName: example.name, * iothubName: exampleIoTHub.name, * key: "example", * value: "my value", * endpointNames: [exampleEndpointStorageContainer.name], * }); * ``` * * ## Import * * IoTHub Enrichment can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:iot/enrichment:Enrichment enrichment1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/iotHubs/hub1/enrichments/enrichment1 * ``` */ export declare class Enrichment extends pulumi.CustomResource { /** * Get an existing Enrichment resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: EnrichmentState, opts?: pulumi.CustomResourceOptions): Enrichment; /** * Returns true if the given object is an instance of Enrichment. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Enrichment; /** * The list of endpoints which will be enriched. */ readonly endpointNames: pulumi.Output; /** * The IoTHub name of the enrichment. Changing this forces a new resource to be created. */ readonly iothubName: pulumi.Output; /** * The key of the enrichment. Changing this forces a new resource to be created. */ readonly key: pulumi.Output; /** * The name of the resource group under which the IoTHub resource is created. Changing this forces a new resource to be created. */ readonly resourceGroupName: pulumi.Output; /** * The value of the enrichment. Value can be any static string, the name of the IoT hub sending the message (use `$iothubname`) or information from the device twin (ex: `$twin.tags.latitude`) */ readonly value: pulumi.Output; /** * Create a Enrichment resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: EnrichmentArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Enrichment resources. */ export interface EnrichmentState { /** * The list of endpoints which will be enriched. */ endpointNames?: pulumi.Input[]>; /** * The IoTHub name of the enrichment. Changing this forces a new resource to be created. */ iothubName?: pulumi.Input; /** * The key of the enrichment. Changing this forces a new resource to be created. */ key?: pulumi.Input; /** * The name of the resource group under which the IoTHub resource is created. Changing this forces a new resource to be created. */ resourceGroupName?: pulumi.Input; /** * The value of the enrichment. Value can be any static string, the name of the IoT hub sending the message (use `$iothubname`) or information from the device twin (ex: `$twin.tags.latitude`) */ value?: pulumi.Input; } /** * The set of arguments for constructing a Enrichment resource. */ export interface EnrichmentArgs { /** * The list of endpoints which will be enriched. */ endpointNames: pulumi.Input[]>; /** * The IoTHub name of the enrichment. Changing this forces a new resource to be created. */ iothubName: pulumi.Input; /** * The key of the enrichment. Changing this forces a new resource to be created. */ key: pulumi.Input; /** * The name of the resource group under which the IoTHub resource is created. Changing this forces a new resource to be created. */ resourceGroupName: pulumi.Input; /** * The value of the enrichment. Value can be any static string, the name of the IoT hub sending the message (use `$iothubname`) or information from the device twin (ex: `$twin.tags.latitude`) */ value: pulumi.Input; }