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 section is generated, changes will be overwritten -->
 * 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<pulumi.ID>, 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<string>;
    /**
     * 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<string>;
    /**
     * 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<string>;
    /**
     * 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<string>;
    /**
     * 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<string | undefined>;
    /**
     * The name of the data connection. Changing this forces a new Kusto Cosmos DB Connection to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * 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<string | undefined>;
    /**
     * 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<string>;
    /**
     * 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<string | undefined>;
    /**
     * The name of the database in the Kusto cluster. Changing this forces a new Kusto Cosmos DB Connection to be created.
     */
    kustoDatabaseId?: pulumi.Input<string | undefined>;
    /**
     * The Azure Region where the Data Explorer should exist. Changing this forces a new Kusto Cosmos DB Connection to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * 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<string | undefined>;
    /**
     * 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<string | undefined>;
    /**
     * The name of the data connection. Changing this forces a new Kusto Cosmos DB Connection to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * 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<string | undefined>;
    /**
     * 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<string | undefined>;
}
/**
 * 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<string>;
    /**
     * The name of the database in the Kusto cluster. Changing this forces a new Kusto Cosmos DB Connection to be created.
     */
    kustoDatabaseId: pulumi.Input<string>;
    /**
     * The Azure Region where the Data Explorer should exist. Changing this forces a new Kusto Cosmos DB Connection to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * 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<string>;
    /**
     * 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<string | undefined>;
    /**
     * The name of the data connection. Changing this forces a new Kusto Cosmos DB Connection to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * 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<string | undefined>;
    /**
     * 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<string>;
}
//# sourceMappingURL=cosmosdbDataConnection.d.ts.map