import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages a Kusto (also known as Azure Data Explorer) Attached Database Configuration * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = new azure.core.ResourceGroup("example", { * name: "my-kusto-rg", * location: "West Europe", * }); * const followerCluster = new azure.kusto.Cluster("follower_cluster", { * name: "cluster1", * location: example.location, * resourceGroupName: example.name, * sku: { * name: "Dev(No SLA)_Standard_D11_v2", * capacity: 1, * }, * }); * const followedCluster = new azure.kusto.Cluster("followed_cluster", { * name: "cluster2", * location: example.location, * resourceGroupName: example.name, * sku: { * name: "Dev(No SLA)_Standard_D11_v2", * capacity: 1, * }, * }); * const followedDatabase = new azure.kusto.Database("followed_database", { * name: "my-followed-database", * resourceGroupName: example.name, * location: example.location, * clusterName: followerCluster.name, * }); * const exampleDatabase = new azure.kusto.Database("example", { * name: "example", * resourceGroupName: example.name, * location: example.location, * clusterName: followerCluster.name, * }); * const exampleAttachedDatabaseConfiguration = new azure.kusto.AttachedDatabaseConfiguration("example", { * name: "configuration1", * resourceGroupName: example.name, * location: example.location, * clusterName: followerCluster.name, * clusterId: followedCluster.id, * databaseName: exampleDatabase.name, * sharing: { * externalTablesToExcludes: ["ExternalTable2"], * externalTablesToIncludes: ["ExternalTable1"], * functionsToExcludes: ["Function2"], * functionsToIncludes: ["Function1"], * materializedViewsToExcludes: ["MaterializedViewTable2"], * materializedViewsToIncludes: ["MaterializedViewTable1"], * tablesToExcludes: ["Table2"], * tablesToIncludes: ["Table1"], * }, * }); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.Kusto` - 2024-04-13 * * ## Import * * Kusto Attached Database Configurations can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:kusto/attachedDatabaseConfiguration:AttachedDatabaseConfiguration example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/clusters/cluster1/attachedDatabaseConfigurations/configuration1 * ``` */ export declare class AttachedDatabaseConfiguration extends pulumi.CustomResource { /** * Get an existing AttachedDatabaseConfiguration 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?: AttachedDatabaseConfigurationState, opts?: pulumi.CustomResourceOptions): AttachedDatabaseConfiguration; /** * Returns true if the given object is an instance of AttachedDatabaseConfiguration. 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 AttachedDatabaseConfiguration; /** * The list of databases from the `clusterResourceId` which are currently attached to the cluster. */ readonly attachedDatabaseNames: pulumi.Output; /** * The resource id of the cluster where the databases you would like to attach reside. */ readonly clusterId: pulumi.Output; /** * Specifies the name of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created. */ readonly clusterName: pulumi.Output; /** * @deprecated `clusterResourceId` has been deprecated in favour of the `clusterId` property and will be removed in v5.0 of the AzureRM Provider. */ readonly clusterResourceId: pulumi.Output; /** * The name of the database which you would like to attach, use * if you want to follow all current and future databases. Changing this forces a new resource to be created. */ readonly databaseName: pulumi.Output; /** * The database name to use for the attached database instead of using the original database name. Relevant only when attaching to a specific database. */ readonly databaseNameOverride: pulumi.Output; /** * Adds a prefix to the attached databases name. When following an entire cluster, that prefix would be added to all of the databases original names from leader cluster. * * > **Note:** Exactly one of `databaseNameOverride` and `databaseNamePrefix` can be specified. */ readonly databaseNamePrefix: pulumi.Output; /** * The default principals modification kind. Valid values are: `None` (default), `Replace` and `Union`. Defaults to `None`. */ readonly defaultPrincipalModificationKind: pulumi.Output; /** * Specifies the location of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created. */ readonly location: pulumi.Output; /** * The name of the Kusto Attached Database Configuration to create. Changing this forces a new resource to be created. */ readonly name: pulumi.Output; /** * Specifies the resource group of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created. */ readonly resourceGroupName: pulumi.Output; /** * A `sharing` block as defined below. */ readonly sharing: pulumi.Output; /** * Create a AttachedDatabaseConfiguration 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: AttachedDatabaseConfigurationArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering AttachedDatabaseConfiguration resources. */ export interface AttachedDatabaseConfigurationState { /** * The list of databases from the `clusterResourceId` which are currently attached to the cluster. */ attachedDatabaseNames?: pulumi.Input[]>; /** * The resource id of the cluster where the databases you would like to attach reside. */ clusterId?: pulumi.Input; /** * Specifies the name of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created. */ clusterName?: pulumi.Input; /** * @deprecated `clusterResourceId` has been deprecated in favour of the `clusterId` property and will be removed in v5.0 of the AzureRM Provider. */ clusterResourceId?: pulumi.Input; /** * The name of the database which you would like to attach, use * if you want to follow all current and future databases. Changing this forces a new resource to be created. */ databaseName?: pulumi.Input; /** * The database name to use for the attached database instead of using the original database name. Relevant only when attaching to a specific database. */ databaseNameOverride?: pulumi.Input; /** * Adds a prefix to the attached databases name. When following an entire cluster, that prefix would be added to all of the databases original names from leader cluster. * * > **Note:** Exactly one of `databaseNameOverride` and `databaseNamePrefix` can be specified. */ databaseNamePrefix?: pulumi.Input; /** * The default principals modification kind. Valid values are: `None` (default), `Replace` and `Union`. Defaults to `None`. */ defaultPrincipalModificationKind?: pulumi.Input; /** * Specifies the location of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created. */ location?: pulumi.Input; /** * The name of the Kusto Attached Database Configuration to create. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * Specifies the resource group of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created. */ resourceGroupName?: pulumi.Input; /** * A `sharing` block as defined below. */ sharing?: pulumi.Input; } /** * The set of arguments for constructing a AttachedDatabaseConfiguration resource. */ export interface AttachedDatabaseConfigurationArgs { /** * The resource id of the cluster where the databases you would like to attach reside. */ clusterId?: pulumi.Input; /** * Specifies the name of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created. */ clusterName: pulumi.Input; /** * @deprecated `clusterResourceId` has been deprecated in favour of the `clusterId` property and will be removed in v5.0 of the AzureRM Provider. */ clusterResourceId?: pulumi.Input; /** * The name of the database which you would like to attach, use * if you want to follow all current and future databases. Changing this forces a new resource to be created. */ databaseName: pulumi.Input; /** * The database name to use for the attached database instead of using the original database name. Relevant only when attaching to a specific database. */ databaseNameOverride?: pulumi.Input; /** * Adds a prefix to the attached databases name. When following an entire cluster, that prefix would be added to all of the databases original names from leader cluster. * * > **Note:** Exactly one of `databaseNameOverride` and `databaseNamePrefix` can be specified. */ databaseNamePrefix?: pulumi.Input; /** * The default principals modification kind. Valid values are: `None` (default), `Replace` and `Union`. Defaults to `None`. */ defaultPrincipalModificationKind?: pulumi.Input; /** * Specifies the location of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created. */ location?: pulumi.Input; /** * The name of the Kusto Attached Database Configuration to create. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * Specifies the resource group of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created. */ resourceGroupName: pulumi.Input; /** * A `sharing` block as defined below. */ sharing?: pulumi.Input; }