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) Cluster * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = new azure.core.ResourceGroup("example", { * name: "example", * location: "West Europe", * }); * const exampleCluster = new azure.kusto.Cluster("example", { * name: "example", * location: example.location, * resourceGroupName: example.name, * sku: { * name: "Standard_D13_v2", * capacity: 2, * }, * tags: { * Environment: "Production", * }, * }); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.Kusto` - 2024-04-13 * * ## Import * * Kusto Clusters can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:kusto/cluster:Cluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/clusters/cluster1 * ``` */ export declare class Cluster extends pulumi.CustomResource { /** * Get an existing Cluster 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?: ClusterState, opts?: pulumi.CustomResourceOptions): Cluster; /** * Returns true if the given object is an instance of Cluster. 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 Cluster; /** * List of allowed FQDNs (Fully Qualified Domain Name) for egress from Cluster. */ readonly allowedFqdns: pulumi.Output; /** * The list of ips in the format of CIDR allowed to connect to the cluster. */ readonly allowedIpRanges: pulumi.Output; /** * Specifies if the cluster could be automatically stopped (due to lack of data or no activity for many days). Defaults to `true`. */ readonly autoStopEnabled: pulumi.Output; /** * The Kusto Cluster URI to be used for data ingestion. */ readonly dataIngestionUri: pulumi.Output; /** * Specifies if the cluster's disks are encrypted. Defaults to `false`. */ readonly diskEncryptionEnabled: pulumi.Output; /** * Is the cluster's double encryption enabled? Changing this forces a new resource to be created. */ readonly doubleEncryptionEnabled: pulumi.Output; /** * An `identity` block as defined below. */ readonly identity: pulumi.Output; /** * A `languageExtension` block as defined below. */ readonly languageExtension: pulumi.Output; /** * @deprecated `languageExtensions` has been deprecated in favour of `languageExtension` and will be removed in v5.0 of the AzureRM provider */ readonly languageExtensions: pulumi.Output; /** * The location where the Kusto Cluster should be created. Changing this forces a new resource to be created. */ readonly location: pulumi.Output; /** * The name of the Kusto Cluster to create. Only lowercase Alphanumeric characters allowed, starting with a letter. Changing this forces a new resource to be created. */ readonly name: pulumi.Output; /** * An `optimizedAutoScale` block as defined below. */ readonly optimizedAutoScale: pulumi.Output; /** * Whether to restrict outbound network access. Defaults to `false`. */ readonly outboundNetworkAccessRestricted: pulumi.Output; /** * Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6). Defaults to `IPv4`. */ readonly publicIpType: pulumi.Output; /** * Is the public network access enabled? Defaults to `true`. */ readonly publicNetworkAccessEnabled: pulumi.Output; /** * Specifies if the purge operations are enabled. Defaults to `false`. */ readonly purgeEnabled: pulumi.Output; /** * Specifies the Resource Group where the Kusto Cluster should exist. Changing this forces a new resource to be created. */ readonly resourceGroupName: pulumi.Output; /** * A `sku` block as defined below. */ readonly sku: pulumi.Output; /** * Specifies if the streaming ingest is enabled. Defaults to `false`. */ readonly streamingIngestionEnabled: pulumi.Output; /** * A mapping of tags to assign to the resource. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Specifies a list of tenant IDs that are trusted by the cluster. Default setting trusts all other tenants. Use `trustedExternalTenants = ["*"]` to explicitly allow all other tenants, `trustedExternalTenants = ["MyTenantOnly"]` for only your tenant or `trustedExternalTenants = ["", ""]` to allow specific other tenants. * * > **Note:** In v3.0 of `azurerm` a new or updated Kusto Cluster will only allow your own tenant by default. Explicit configuration of this setting will change from `trustedExternalTenants = ["MyTenantOnly"]` to `trustedExternalTenants = []`. */ readonly trustedExternalTenants: pulumi.Output; /** * The FQDN of the Azure Kusto Cluster. */ readonly uri: pulumi.Output; /** * @deprecated The `virtualNetworkConfiguration` block has been deprecated as it is no longer supported by Azure and will be removed in v5.0 of the AzureRM Provider - for more information see https://techcommunity.microsoft.com/blog/azuredataexplorer/deprecation-of-virtual-network-injection-for-azure-data-explorer/4198192 */ readonly virtualNetworkConfiguration: pulumi.Output; /** * Specifies a list of Availability Zones in which this Kusto Cluster should be located. Changing this forces a new Kusto Cluster to be created. */ readonly zones: pulumi.Output; /** * Create a Cluster 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: ClusterArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Cluster resources. */ export interface ClusterState { /** * List of allowed FQDNs (Fully Qualified Domain Name) for egress from Cluster. */ allowedFqdns?: pulumi.Input[]>; /** * The list of ips in the format of CIDR allowed to connect to the cluster. */ allowedIpRanges?: pulumi.Input[]>; /** * Specifies if the cluster could be automatically stopped (due to lack of data or no activity for many days). Defaults to `true`. */ autoStopEnabled?: pulumi.Input; /** * The Kusto Cluster URI to be used for data ingestion. */ dataIngestionUri?: pulumi.Input; /** * Specifies if the cluster's disks are encrypted. Defaults to `false`. */ diskEncryptionEnabled?: pulumi.Input; /** * Is the cluster's double encryption enabled? Changing this forces a new resource to be created. */ doubleEncryptionEnabled?: pulumi.Input; /** * An `identity` block as defined below. */ identity?: pulumi.Input; /** * A `languageExtension` block as defined below. */ languageExtension?: pulumi.Input[]>; /** * @deprecated `languageExtensions` has been deprecated in favour of `languageExtension` and will be removed in v5.0 of the AzureRM provider */ languageExtensions?: pulumi.Input[]>; /** * The location where the Kusto Cluster should be created. Changing this forces a new resource to be created. */ location?: pulumi.Input; /** * The name of the Kusto Cluster to create. Only lowercase Alphanumeric characters allowed, starting with a letter. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * An `optimizedAutoScale` block as defined below. */ optimizedAutoScale?: pulumi.Input; /** * Whether to restrict outbound network access. Defaults to `false`. */ outboundNetworkAccessRestricted?: pulumi.Input; /** * Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6). Defaults to `IPv4`. */ publicIpType?: pulumi.Input; /** * Is the public network access enabled? Defaults to `true`. */ publicNetworkAccessEnabled?: pulumi.Input; /** * Specifies if the purge operations are enabled. Defaults to `false`. */ purgeEnabled?: pulumi.Input; /** * Specifies the Resource Group where the Kusto Cluster should exist. Changing this forces a new resource to be created. */ resourceGroupName?: pulumi.Input; /** * A `sku` block as defined below. */ sku?: pulumi.Input; /** * Specifies if the streaming ingest is enabled. Defaults to `false`. */ streamingIngestionEnabled?: pulumi.Input; /** * A mapping of tags to assign to the resource. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Specifies a list of tenant IDs that are trusted by the cluster. Default setting trusts all other tenants. Use `trustedExternalTenants = ["*"]` to explicitly allow all other tenants, `trustedExternalTenants = ["MyTenantOnly"]` for only your tenant or `trustedExternalTenants = ["", ""]` to allow specific other tenants. * * > **Note:** In v3.0 of `azurerm` a new or updated Kusto Cluster will only allow your own tenant by default. Explicit configuration of this setting will change from `trustedExternalTenants = ["MyTenantOnly"]` to `trustedExternalTenants = []`. */ trustedExternalTenants?: pulumi.Input[]>; /** * The FQDN of the Azure Kusto Cluster. */ uri?: pulumi.Input; /** * @deprecated The `virtualNetworkConfiguration` block has been deprecated as it is no longer supported by Azure and will be removed in v5.0 of the AzureRM Provider - for more information see https://techcommunity.microsoft.com/blog/azuredataexplorer/deprecation-of-virtual-network-injection-for-azure-data-explorer/4198192 */ virtualNetworkConfiguration?: pulumi.Input; /** * Specifies a list of Availability Zones in which this Kusto Cluster should be located. Changing this forces a new Kusto Cluster to be created. */ zones?: pulumi.Input[]>; } /** * The set of arguments for constructing a Cluster resource. */ export interface ClusterArgs { /** * List of allowed FQDNs (Fully Qualified Domain Name) for egress from Cluster. */ allowedFqdns?: pulumi.Input[]>; /** * The list of ips in the format of CIDR allowed to connect to the cluster. */ allowedIpRanges?: pulumi.Input[]>; /** * Specifies if the cluster could be automatically stopped (due to lack of data or no activity for many days). Defaults to `true`. */ autoStopEnabled?: pulumi.Input; /** * Specifies if the cluster's disks are encrypted. Defaults to `false`. */ diskEncryptionEnabled?: pulumi.Input; /** * Is the cluster's double encryption enabled? Changing this forces a new resource to be created. */ doubleEncryptionEnabled?: pulumi.Input; /** * An `identity` block as defined below. */ identity?: pulumi.Input; /** * A `languageExtension` block as defined below. */ languageExtension?: pulumi.Input[]>; /** * @deprecated `languageExtensions` has been deprecated in favour of `languageExtension` and will be removed in v5.0 of the AzureRM provider */ languageExtensions?: pulumi.Input[]>; /** * The location where the Kusto Cluster should be created. Changing this forces a new resource to be created. */ location?: pulumi.Input; /** * The name of the Kusto Cluster to create. Only lowercase Alphanumeric characters allowed, starting with a letter. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * An `optimizedAutoScale` block as defined below. */ optimizedAutoScale?: pulumi.Input; /** * Whether to restrict outbound network access. Defaults to `false`. */ outboundNetworkAccessRestricted?: pulumi.Input; /** * Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6). Defaults to `IPv4`. */ publicIpType?: pulumi.Input; /** * Is the public network access enabled? Defaults to `true`. */ publicNetworkAccessEnabled?: pulumi.Input; /** * Specifies if the purge operations are enabled. Defaults to `false`. */ purgeEnabled?: pulumi.Input; /** * Specifies the Resource Group where the Kusto Cluster should exist. Changing this forces a new resource to be created. */ resourceGroupName: pulumi.Input; /** * A `sku` block as defined below. */ sku: pulumi.Input; /** * Specifies if the streaming ingest is enabled. Defaults to `false`. */ streamingIngestionEnabled?: pulumi.Input; /** * A mapping of tags to assign to the resource. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Specifies a list of tenant IDs that are trusted by the cluster. Default setting trusts all other tenants. Use `trustedExternalTenants = ["*"]` to explicitly allow all other tenants, `trustedExternalTenants = ["MyTenantOnly"]` for only your tenant or `trustedExternalTenants = ["", ""]` to allow specific other tenants. * * > **Note:** In v3.0 of `azurerm` a new or updated Kusto Cluster will only allow your own tenant by default. Explicit configuration of this setting will change from `trustedExternalTenants = ["MyTenantOnly"]` to `trustedExternalTenants = []`. */ trustedExternalTenants?: pulumi.Input[]>; /** * @deprecated The `virtualNetworkConfiguration` block has been deprecated as it is no longer supported by Azure and will be removed in v5.0 of the AzureRM Provider - for more information see https://techcommunity.microsoft.com/blog/azuredataexplorer/deprecation-of-virtual-network-injection-for-azure-data-explorer/4198192 */ virtualNetworkConfiguration?: pulumi.Input; /** * Specifies a list of Availability Zones in which this Kusto Cluster should be located. Changing this forces a new Kusto Cluster to be created. */ zones?: pulumi.Input[]>; }