import * as pulumi from "@pulumi/pulumi"; /** * Manages a Kusto (also known as Azure Data Explorer) Event Grid Data Connection * * ## 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 exampleCluster = new azure.kusto.Cluster("example", { * name: "examplekustocluster", * location: example.location, * resourceGroupName: example.name, * sku: { * name: "Standard_D13_v2", * capacity: 2, * }, * }); * const exampleDatabase = new azure.kusto.Database("example", { * name: "example-kusto-database", * resourceGroupName: example.name, * location: example.location, * clusterName: exampleCluster.name, * hotCachePeriod: "P7D", * softDeletePeriod: "P31D", * }); * const exampleAccount = new azure.storage.Account("example", { * name: "storageaccountname", * resourceGroupName: example.name, * location: example.location, * accountTier: "Standard", * accountReplicationType: "GRS", * }); * const exampleEventHubNamespace = new azure.eventhub.EventHubNamespace("example", { * name: "eventhubnamespace-example", * location: example.location, * resourceGroupName: example.name, * sku: "Standard", * }); * const exampleEventHub = new azure.eventhub.EventHub("example", { * name: "eventhub-example", * namespaceId: exampleEventHubNamespace.id, * partitionCount: 1, * messageRetention: 1, * }); * const exampleConsumerGroup = new azure.eventhub.ConsumerGroup("example", { * name: "consumergroup-example", * namespaceName: exampleEventHubNamespace.name, * eventhubName: exampleEventHub.name, * resourceGroupName: example.name, * }); * const exampleEventSubscription = new azure.eventgrid.EventSubscription("example", { * name: "eventgrid-example", * scope: exampleAccount.id, * eventhubEndpointId: exampleEventHub.id, * eventDeliverySchema: "EventGridSchema", * includedEventTypes: [ * "Microsoft.Storage.BlobCreated", * "Microsoft.Storage.BlobRenamed", * ], * retryPolicy: { * eventTimeToLive: 144, * maxDeliveryAttempts: 10, * }, * }); * const exampleEventGridDataConnection = new azure.kusto.EventGridDataConnection("example", { * name: "my-kusto-eventgrid-data-connection", * resourceGroupName: example.name, * location: example.location, * clusterName: exampleCluster.name, * databaseName: exampleDatabase.name, * storageAccountId: exampleAccount.id, * eventhubId: exampleEventHub.id, * eventhubConsumerGroupName: exampleConsumerGroup.name, * tableName: "my-table", * mappingRuleName: "my-table-mapping", * dataFormat: "JSON", * }, { * dependsOn: [exampleEventSubscription], * }); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.Kusto` - 2024-04-13 * * ## Import * * Kusto Event Grid Data Connections can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:kusto/eventGridDataConnection:EventGridDataConnection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/clusters/cluster1/databases/database1/dataConnections/dataConnection1 * ``` */ export declare class EventGridDataConnection extends pulumi.CustomResource { /** * Get an existing EventGridDataConnection 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?: EventGridDataConnectionState, opts?: pulumi.CustomResourceOptions): EventGridDataConnection; /** * Returns true if the given object is an instance of EventGridDataConnection. 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 EventGridDataConnection; /** * Specifies the blob storage event type that needs to be processed. Possible Values are `Microsoft.Storage.BlobCreated` and `Microsoft.Storage.BlobRenamed`. Defaults to `Microsoft.Storage.BlobCreated`. */ readonly blobStorageEventType: pulumi.Output; /** * Specifies the name of the Kusto Cluster this data connection will be added to. Changing this forces a new resource to be created. */ readonly clusterName: pulumi.Output; /** * Specifies the data format of the EventHub messages. Allowed values: `APACHEAVRO`, `AVRO`, `CSV`, `JSON`, `MULTIJSON`, `ORC`, `PARQUET`, `PSV`, `RAW`, `SCSV`, `SINGLEJSON`, `SOHSV`, `TSV`, `TSVE`, `TXT` and `W3CLOGFILE`. */ readonly dataFormat: pulumi.Output; /** * Specifies the name of the Kusto Database this data connection will be added to. Changing this forces a new resource to be created. */ readonly databaseName: pulumi.Output; /** * Indication for database routing information from the data connection, by default only database routing information is allowed. Allowed values: `Single`, `Multi`. Changing this forces a new resource to be created. Defaults to `Single`. */ readonly databaseRoutingType: pulumi.Output; /** * The resource ID of the event grid that is subscribed to the storage account events. */ readonly eventgridEventSubscriptionId: pulumi.Output; /** * @deprecated `eventgridResourceId` has been deprecated in favour of the `eventgridEventSubscriptionId` property and will be removed in v5.0 of the AzureRM Provider. */ readonly eventgridResourceId: pulumi.Output; /** * Specifies the Event Hub consumer group this data connection will use for ingestion. Changing this forces a new resource to be created. */ readonly eventhubConsumerGroupName: pulumi.Output; /** * Specifies the resource id of the Event Hub this data connection will use for ingestion. Changing this forces a new resource to be created. */ readonly eventhubId: pulumi.Output; /** * The location where the Kusto Database should be created. Changing this forces a new resource to be created. */ readonly location: pulumi.Output; /** * Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user assigned identity (UAI) provide the UAI resource Id. */ readonly managedIdentityId: pulumi.Output; /** * @deprecated `managedIdentityResourceId` has been deprecated in favour of the `managedIdentityId` property and will be removed in v5.0 of the AzureRM Provider. */ readonly managedIdentityResourceId: pulumi.Output; /** * Specifies the mapping rule used for the message ingestion. Mapping rule must exist before resource is created. */ readonly mappingRuleName: pulumi.Output; /** * The name of the Kusto Event Grid Data Connection to create. Changing this forces a new resource to be created. */ readonly name: pulumi.Output; /** * Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created. */ readonly resourceGroupName: pulumi.Output; /** * is the first record of every file ignored? Defaults to `false`. */ readonly skipFirstRecord: pulumi.Output; /** * Specifies the resource id of the Storage Account this data connection will use for ingestion. Changing this forces a new resource to be created. */ readonly storageAccountId: pulumi.Output; /** * Specifies the target table name used for the message ingestion. Table must exist before resource is created. */ readonly tableName: pulumi.Output; /** * Create a EventGridDataConnection 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: EventGridDataConnectionArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering EventGridDataConnection resources. */ export interface EventGridDataConnectionState { /** * Specifies the blob storage event type that needs to be processed. Possible Values are `Microsoft.Storage.BlobCreated` and `Microsoft.Storage.BlobRenamed`. Defaults to `Microsoft.Storage.BlobCreated`. */ blobStorageEventType?: pulumi.Input; /** * Specifies the name of the Kusto Cluster this data connection will be added to. Changing this forces a new resource to be created. */ clusterName?: pulumi.Input; /** * Specifies the data format of the EventHub messages. Allowed values: `APACHEAVRO`, `AVRO`, `CSV`, `JSON`, `MULTIJSON`, `ORC`, `PARQUET`, `PSV`, `RAW`, `SCSV`, `SINGLEJSON`, `SOHSV`, `TSV`, `TSVE`, `TXT` and `W3CLOGFILE`. */ dataFormat?: pulumi.Input; /** * Specifies the name of the Kusto Database this data connection will be added to. Changing this forces a new resource to be created. */ databaseName?: pulumi.Input; /** * Indication for database routing information from the data connection, by default only database routing information is allowed. Allowed values: `Single`, `Multi`. Changing this forces a new resource to be created. Defaults to `Single`. */ databaseRoutingType?: pulumi.Input; /** * The resource ID of the event grid that is subscribed to the storage account events. */ eventgridEventSubscriptionId?: pulumi.Input; /** * @deprecated `eventgridResourceId` has been deprecated in favour of the `eventgridEventSubscriptionId` property and will be removed in v5.0 of the AzureRM Provider. */ eventgridResourceId?: pulumi.Input; /** * Specifies the Event Hub consumer group this data connection will use for ingestion. Changing this forces a new resource to be created. */ eventhubConsumerGroupName?: pulumi.Input; /** * Specifies the resource id of the Event Hub this data connection will use for ingestion. Changing this forces a new resource to be created. */ eventhubId?: pulumi.Input; /** * The location where the Kusto Database should be created. Changing this forces a new resource to be created. */ location?: pulumi.Input; /** * Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user assigned identity (UAI) provide the UAI resource Id. */ managedIdentityId?: pulumi.Input; /** * @deprecated `managedIdentityResourceId` has been deprecated in favour of the `managedIdentityId` property and will be removed in v5.0 of the AzureRM Provider. */ managedIdentityResourceId?: pulumi.Input; /** * Specifies the mapping rule used for the message ingestion. Mapping rule must exist before resource is created. */ mappingRuleName?: pulumi.Input; /** * The name of the Kusto Event Grid Data Connection to create. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created. */ resourceGroupName?: pulumi.Input; /** * is the first record of every file ignored? Defaults to `false`. */ skipFirstRecord?: pulumi.Input; /** * Specifies the resource id of the Storage Account this data connection will use for ingestion. Changing this forces a new resource to be created. */ storageAccountId?: pulumi.Input; /** * Specifies the target table name used for the message ingestion. Table must exist before resource is created. */ tableName?: pulumi.Input; } /** * The set of arguments for constructing a EventGridDataConnection resource. */ export interface EventGridDataConnectionArgs { /** * Specifies the blob storage event type that needs to be processed. Possible Values are `Microsoft.Storage.BlobCreated` and `Microsoft.Storage.BlobRenamed`. Defaults to `Microsoft.Storage.BlobCreated`. */ blobStorageEventType?: pulumi.Input; /** * Specifies the name of the Kusto Cluster this data connection will be added to. Changing this forces a new resource to be created. */ clusterName: pulumi.Input; /** * Specifies the data format of the EventHub messages. Allowed values: `APACHEAVRO`, `AVRO`, `CSV`, `JSON`, `MULTIJSON`, `ORC`, `PARQUET`, `PSV`, `RAW`, `SCSV`, `SINGLEJSON`, `SOHSV`, `TSV`, `TSVE`, `TXT` and `W3CLOGFILE`. */ dataFormat?: pulumi.Input; /** * Specifies the name of the Kusto Database this data connection will be added to. Changing this forces a new resource to be created. */ databaseName: pulumi.Input; /** * Indication for database routing information from the data connection, by default only database routing information is allowed. Allowed values: `Single`, `Multi`. Changing this forces a new resource to be created. Defaults to `Single`. */ databaseRoutingType?: pulumi.Input; /** * The resource ID of the event grid that is subscribed to the storage account events. */ eventgridEventSubscriptionId?: pulumi.Input; /** * @deprecated `eventgridResourceId` has been deprecated in favour of the `eventgridEventSubscriptionId` property and will be removed in v5.0 of the AzureRM Provider. */ eventgridResourceId?: pulumi.Input; /** * Specifies the Event Hub consumer group this data connection will use for ingestion. Changing this forces a new resource to be created. */ eventhubConsumerGroupName: pulumi.Input; /** * Specifies the resource id of the Event Hub this data connection will use for ingestion. Changing this forces a new resource to be created. */ eventhubId: pulumi.Input; /** * The location where the Kusto Database should be created. Changing this forces a new resource to be created. */ location?: pulumi.Input; /** * Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user assigned identity (UAI) provide the UAI resource Id. */ managedIdentityId?: pulumi.Input; /** * @deprecated `managedIdentityResourceId` has been deprecated in favour of the `managedIdentityId` property and will be removed in v5.0 of the AzureRM Provider. */ managedIdentityResourceId?: pulumi.Input; /** * Specifies the mapping rule used for the message ingestion. Mapping rule must exist before resource is created. */ mappingRuleName?: pulumi.Input; /** * The name of the Kusto Event Grid Data Connection to create. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created. */ resourceGroupName: pulumi.Input; /** * is the first record of every file ignored? Defaults to `false`. */ skipFirstRecord?: pulumi.Input; /** * Specifies the resource id of the Storage Account this data connection will use for ingestion. Changing this forces a new resource to be created. */ storageAccountId: pulumi.Input; /** * Specifies the target table name used for the message ingestion. Table must exist before resource is created. */ tableName?: pulumi.Input; }