import * as pulumi from "@pulumi/pulumi"; /** * Manages a Kusto / Cosmos Database Data Connection. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const current = azure.core.getClientConfig({}); * const exampleResourceGroup = new azure.core.ResourceGroup("example", { * name: "exampleRG", * location: "West Europe", * }); * const builtin = azure.authorization.getRoleDefinition({ * roleDefinitionId: "fbdf93bf-df7d-467e-a4d2-9458aa1360c8", * }); * const exampleCluster = new azure.kusto.Cluster("example", { * name: "examplekc", * location: exampleResourceGroup.location, * resourceGroupName: exampleResourceGroup.name, * sku: { * name: "Dev(No SLA)_Standard_D11_v2", * capacity: 1, * }, * identity: { * type: "SystemAssigned", * }, * }); * const exampleAssignment = new azure.authorization.Assignment("example", { * scope: exampleResourceGroup.id, * roleDefinitionName: builtin.then(builtin => builtin.name), * principalId: exampleCluster.identity.apply(identity => identity?.principalId), * }); * const exampleAccount = new azure.cosmosdb.Account("example", { * name: "example-ca", * location: exampleResourceGroup.location, * resourceGroupName: exampleResourceGroup.name, * offerType: "Standard", * kind: "GlobalDocumentDB", * consistencyPolicy: { * consistencyLevel: "Session", * maxIntervalInSeconds: 5, * maxStalenessPrefix: 100, * }, * geoLocations: [{ * location: exampleResourceGroup.location, * failoverPriority: 0, * }], * }); * const exampleSqlDatabase = new azure.cosmosdb.SqlDatabase("example", { * name: "examplecosmosdbsqldb", * resourceGroupName: exampleAccount.resourceGroupName, * accountName: exampleAccount.name, * }); * const exampleSqlContainer = new azure.cosmosdb.SqlContainer("example", { * name: "examplecosmosdbsqlcon", * resourceGroupName: exampleAccount.resourceGroupName, * accountName: exampleAccount.name, * databaseName: exampleSqlDatabase.name, * partitionKeyPath: "/part", * throughput: 400, * }); * const example = azure.cosmosdb.getSqlRoleDefinitionOutput({ * roleDefinitionId: "00000000-0000-0000-0000-000000000001", * resourceGroupName: exampleResourceGroup.name, * accountName: exampleAccount.name, * }); * const exampleSqlRoleAssignment = new azure.cosmosdb.SqlRoleAssignment("example", { * resourceGroupName: exampleResourceGroup.name, * accountName: exampleAccount.name, * roleDefinitionId: example.apply(example => example.id), * principalId: exampleCluster.identity.apply(identity => identity?.principalId), * scope: exampleAccount.id, * }); * const exampleDatabase = new azure.kusto.Database("example", { * name: "examplekd", * resourceGroupName: exampleResourceGroup.name, * location: exampleResourceGroup.location, * clusterName: exampleCluster.name, * }); * const exampleScript = new azure.kusto.Script("example", { * name: "create-table-script", * databaseId: exampleDatabase.id, * scriptContent: `.create table TestTable(Id:string, Name:string, _ts:long, _timestamp:datetime) * .create table TestTable ingestion json mapping \\"TestMapping\\" * '[' * ' {\\"column\\":\\"Id\\",\\"path\\":\\".id\\"},' * ' {\\"column\\":\\"Name\\",\\"path\\":\\".name\\"},' * ' {\\"column\\":\\"_ts\\",\\"path\\":\\"._ts\\"},' * ' {\\"column\\":\\"_timestamp\\",\\"path\\":\\"._ts\\", \\"transform\\":\\"DateTimeFromUnixSeconds\\"}' * ']' * .alter table TestTable policy ingestionbatching \\"{'MaximumBatchingTimeSpan': '0:0:10', 'MaximumNumberOfItems': 10000}\\" * `, * }); * const exampleCosmosdbDataConnection = new azure.kusto.CosmosdbDataConnection("example", { * name: "examplekcdcd", * location: exampleResourceGroup.location, * cosmosdbContainerId: exampleSqlContainer.id, * kustoDatabaseId: exampleDatabase.id, * managedIdentityId: exampleCluster.id, * tableName: "TestTable", * mappingRuleName: "TestMapping", * retrievalStartDate: "2023-06-26T12:00:00.6554616Z", * }); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.Kusto` - 2024-04-13 * * ## Import * * Kusto / Cosmos Database Data Connection can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:kusto/cosmosdbDataConnection:CosmosdbDataConnection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/clusters/cluster1/databases/database1/dataConnections/dataConnection1 * ``` */ export declare class CosmosdbDataConnection extends pulumi.CustomResource { /** * Get an existing CosmosdbDataConnection 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?: CosmosdbDataConnectionState, opts?: pulumi.CustomResourceOptions): CosmosdbDataConnection; /** * Returns true if the given object is an instance of CosmosdbDataConnection. 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 CosmosdbDataConnection; /** * The name of an existing container in the Cosmos DB database. Changing this forces a new Kusto Cosmos DB Connection to be created. */ readonly cosmosdbContainerId: pulumi.Output; /** * The name of the database in the Kusto cluster. Changing this forces a new Kusto Cosmos DB Connection to be created. */ readonly kustoDatabaseId: pulumi.Output; /** * The Azure Region where the Data Explorer should exist. Changing this forces a new Kusto Cosmos DB Connection to be created. */ readonly location: pulumi.Output; /** * The resource ID of a managed system or user-assigned identity. The identity is used to authenticate with Cosmos DB. Changing this forces a new Kusto Cosmos DB Connection to be created. */ readonly managedIdentityId: pulumi.Output; /** * The name of an existing mapping rule to use when ingesting the retrieved data. Changing this forces a new Kusto Cosmos DB Connection to be created. */ readonly mappingRuleName: pulumi.Output; /** * The name of the data connection. Changing this forces a new Kusto Cosmos DB Connection to be created. */ readonly name: pulumi.Output; /** * If defined, the data connection retrieves Cosmos DB documents created or updated after the specified retrieval start date. Changing this forces a new Kusto Cosmos DB Connection to be created. */ readonly retrievalStartDate: pulumi.Output; /** * The case-sensitive name of the existing target table in your cluster. Retrieved data is ingested into this table. Changing this forces a new Kusto Cosmos DB Connection to be created. */ readonly tableName: pulumi.Output; /** * Create a CosmosdbDataConnection 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: CosmosdbDataConnectionArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering CosmosdbDataConnection resources. */ export interface CosmosdbDataConnectionState { /** * The name of an existing container in the Cosmos DB database. Changing this forces a new Kusto Cosmos DB Connection to be created. */ cosmosdbContainerId?: pulumi.Input; /** * The name of the database in the Kusto cluster. Changing this forces a new Kusto Cosmos DB Connection to be created. */ kustoDatabaseId?: pulumi.Input; /** * The Azure Region where the Data Explorer should exist. Changing this forces a new Kusto Cosmos DB Connection to be created. */ location?: pulumi.Input; /** * The resource ID of a managed system or user-assigned identity. The identity is used to authenticate with Cosmos DB. Changing this forces a new Kusto Cosmos DB Connection to be created. */ managedIdentityId?: pulumi.Input; /** * The name of an existing mapping rule to use when ingesting the retrieved data. Changing this forces a new Kusto Cosmos DB Connection to be created. */ mappingRuleName?: pulumi.Input; /** * The name of the data connection. Changing this forces a new Kusto Cosmos DB Connection to be created. */ name?: pulumi.Input; /** * If defined, the data connection retrieves Cosmos DB documents created or updated after the specified retrieval start date. Changing this forces a new Kusto Cosmos DB Connection to be created. */ retrievalStartDate?: pulumi.Input; /** * The case-sensitive name of the existing target table in your cluster. Retrieved data is ingested into this table. Changing this forces a new Kusto Cosmos DB Connection to be created. */ tableName?: pulumi.Input; } /** * The set of arguments for constructing a CosmosdbDataConnection resource. */ export interface CosmosdbDataConnectionArgs { /** * The name of an existing container in the Cosmos DB database. Changing this forces a new Kusto Cosmos DB Connection to be created. */ cosmosdbContainerId: pulumi.Input; /** * The name of the database in the Kusto cluster. Changing this forces a new Kusto Cosmos DB Connection to be created. */ kustoDatabaseId: pulumi.Input; /** * The Azure Region where the Data Explorer should exist. Changing this forces a new Kusto Cosmos DB Connection to be created. */ location?: pulumi.Input; /** * The resource ID of a managed system or user-assigned identity. The identity is used to authenticate with Cosmos DB. Changing this forces a new Kusto Cosmos DB Connection to be created. */ managedIdentityId: pulumi.Input; /** * The name of an existing mapping rule to use when ingesting the retrieved data. Changing this forces a new Kusto Cosmos DB Connection to be created. */ mappingRuleName?: pulumi.Input; /** * The name of the data connection. Changing this forces a new Kusto Cosmos DB Connection to be created. */ name?: pulumi.Input; /** * If defined, the data connection retrieves Cosmos DB documents created or updated after the specified retrieval start date. Changing this forces a new Kusto Cosmos DB Connection to be created. */ retrievalStartDate?: pulumi.Input; /** * The case-sensitive name of the existing target table in your cluster. Retrieved data is ingested into this table. Changing this forces a new Kusto Cosmos DB Connection to be created. */ tableName: pulumi.Input; }