import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Allows you to manage an Azure SQL Elastic Pool. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = new azure.core.ResourceGroup("example", { * name: "my-resource-group", * location: "West Europe", * }); * const exampleServer = new azure.mssql.Server("example", { * name: "my-sql-server", * resourceGroupName: example.name, * location: example.location, * version: "12.0", * administratorLogin: "4dm1n157r470r", * administratorLoginPassword: "4-v3ry-53cr37-p455w0rd", * }); * const exampleElasticPool = new azure.mssql.ElasticPool("example", { * name: "test-epool", * resourceGroupName: example.name, * location: example.location, * serverName: exampleServer.name, * licenseType: "LicenseIncluded", * maxSizeGb: 756, * sku: { * name: "BasicPool", * tier: "Basic", * family: "Gen4", * capacity: 4, * }, * perDatabaseSettings: { * minCapacity: 0.25, * maxCapacity: 4, * }, * }); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.Sql` - 2023-08-01-preview * * ## Import * * SQL Elastic Pool can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:mssql/elasticPool:ElasticPool example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver/elasticPools/myelasticpoolname * ``` */ export declare class ElasticPool extends pulumi.CustomResource { /** * Get an existing ElasticPool 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?: ElasticPoolState, opts?: pulumi.CustomResourceOptions): ElasticPool; /** * Returns true if the given object is an instance of ElasticPool. 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 ElasticPool; /** * Specifies the type of enclave to be used by the elastic pool. When `enclaveType` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclaveType` field from the configuration file will force the creation of a new resource. Possible values are `Default` or `VBS`. * * > **Note:** All databases that are added to the elastic pool must have the same `enclaveType` as the elastic pool. * * > **Note:** `enclaveType` is not supported for DC-series SKUs. * * > **Note:** The default value for `enclaveType` field is unset not `Default`. */ readonly enclaveType: pulumi.Output; /** * Specifies the number of high availability replicas for the elastic pool. Defaults to `1`. Possible values are between `0` and `4`. * * > **Note:** The `highAvailabilityReplicaCount` property is only supported for `Hyperscale` tier elastic pools. */ readonly highAvailabilityReplicaCount: pulumi.Output; /** * Specifies the license type applied to this database. Possible values are `LicenseIncluded` and `BasePrice`. */ readonly licenseType: pulumi.Output; /** * Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. */ readonly location: pulumi.Output; /** * The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`, `SQL_SwedenCentral_DB_1`, `SQL_SwedenCentral_DB_2`. Defaults to `SQL_Default`. */ readonly maintenanceConfigurationName: pulumi.Output; /** * The max data size of the elastic pool in bytes. Conflicts with `maxSizeGb`. * * > **Note:** One of either `maxSizeGb` or `maxSizeBytes` must be specified. */ readonly maxSizeBytes: pulumi.Output; /** * The max data size of the elastic pool in gigabytes. Conflicts with `maxSizeBytes`. */ readonly maxSizeGb: pulumi.Output; /** * The name of the elastic pool. This needs to be globally unique. Changing this forces a new resource to be created. */ readonly name: pulumi.Output; /** * A `perDatabaseSettings` block as defined below. */ readonly perDatabaseSettings: pulumi.Output; /** * The name of the resource group in which to create the elastic pool. This must be the same as the resource group of the underlying SQL server. Changing this forces a new resource to be created. */ readonly resourceGroupName: pulumi.Output; /** * The name of the SQL Server on which to create the elastic pool. Changing this forces a new resource to be created. */ readonly serverName: pulumi.Output; /** * A `sku` block as defined below. */ readonly sku: pulumi.Output; /** * A mapping of tags to assign to the resource. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Whether or not this elastic pool is zone redundant. `tier` needs to be `Premium` for `DTU` based or `BusinessCritical` for `vCore` based `sku`. */ readonly zoneRedundant: pulumi.Output; /** * Create a ElasticPool 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: ElasticPoolArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ElasticPool resources. */ export interface ElasticPoolState { /** * Specifies the type of enclave to be used by the elastic pool. When `enclaveType` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclaveType` field from the configuration file will force the creation of a new resource. Possible values are `Default` or `VBS`. * * > **Note:** All databases that are added to the elastic pool must have the same `enclaveType` as the elastic pool. * * > **Note:** `enclaveType` is not supported for DC-series SKUs. * * > **Note:** The default value for `enclaveType` field is unset not `Default`. */ enclaveType?: pulumi.Input; /** * Specifies the number of high availability replicas for the elastic pool. Defaults to `1`. Possible values are between `0` and `4`. * * > **Note:** The `highAvailabilityReplicaCount` property is only supported for `Hyperscale` tier elastic pools. */ highAvailabilityReplicaCount?: pulumi.Input; /** * Specifies the license type applied to this database. Possible values are `LicenseIncluded` and `BasePrice`. */ licenseType?: pulumi.Input; /** * Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. */ location?: pulumi.Input; /** * The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`, `SQL_SwedenCentral_DB_1`, `SQL_SwedenCentral_DB_2`. Defaults to `SQL_Default`. */ maintenanceConfigurationName?: pulumi.Input; /** * The max data size of the elastic pool in bytes. Conflicts with `maxSizeGb`. * * > **Note:** One of either `maxSizeGb` or `maxSizeBytes` must be specified. */ maxSizeBytes?: pulumi.Input; /** * The max data size of the elastic pool in gigabytes. Conflicts with `maxSizeBytes`. */ maxSizeGb?: pulumi.Input; /** * The name of the elastic pool. This needs to be globally unique. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * A `perDatabaseSettings` block as defined below. */ perDatabaseSettings?: pulumi.Input; /** * The name of the resource group in which to create the elastic pool. This must be the same as the resource group of the underlying SQL server. Changing this forces a new resource to be created. */ resourceGroupName?: pulumi.Input; /** * The name of the SQL Server on which to create the elastic pool. Changing this forces a new resource to be created. */ serverName?: pulumi.Input; /** * A `sku` block as defined below. */ sku?: pulumi.Input; /** * A mapping of tags to assign to the resource. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Whether or not this elastic pool is zone redundant. `tier` needs to be `Premium` for `DTU` based or `BusinessCritical` for `vCore` based `sku`. */ zoneRedundant?: pulumi.Input; } /** * The set of arguments for constructing a ElasticPool resource. */ export interface ElasticPoolArgs { /** * Specifies the type of enclave to be used by the elastic pool. When `enclaveType` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclaveType` field from the configuration file will force the creation of a new resource. Possible values are `Default` or `VBS`. * * > **Note:** All databases that are added to the elastic pool must have the same `enclaveType` as the elastic pool. * * > **Note:** `enclaveType` is not supported for DC-series SKUs. * * > **Note:** The default value for `enclaveType` field is unset not `Default`. */ enclaveType?: pulumi.Input; /** * Specifies the number of high availability replicas for the elastic pool. Defaults to `1`. Possible values are between `0` and `4`. * * > **Note:** The `highAvailabilityReplicaCount` property is only supported for `Hyperscale` tier elastic pools. */ highAvailabilityReplicaCount?: pulumi.Input; /** * Specifies the license type applied to this database. Possible values are `LicenseIncluded` and `BasePrice`. */ licenseType?: pulumi.Input; /** * Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. */ location?: pulumi.Input; /** * The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`, `SQL_SwedenCentral_DB_1`, `SQL_SwedenCentral_DB_2`. Defaults to `SQL_Default`. */ maintenanceConfigurationName?: pulumi.Input; /** * The max data size of the elastic pool in bytes. Conflicts with `maxSizeGb`. * * > **Note:** One of either `maxSizeGb` or `maxSizeBytes` must be specified. */ maxSizeBytes?: pulumi.Input; /** * The max data size of the elastic pool in gigabytes. Conflicts with `maxSizeBytes`. */ maxSizeGb?: pulumi.Input; /** * The name of the elastic pool. This needs to be globally unique. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * A `perDatabaseSettings` block as defined below. */ perDatabaseSettings: pulumi.Input; /** * The name of the resource group in which to create the elastic pool. This must be the same as the resource group of the underlying SQL server. Changing this forces a new resource to be created. */ resourceGroupName: pulumi.Input; /** * The name of the SQL Server on which to create the elastic pool. Changing this forces a new resource to be created. */ serverName: pulumi.Input; /** * A `sku` block as defined below. */ sku: pulumi.Input; /** * A mapping of tags to assign to the resource. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Whether or not this elastic pool is zone redundant. `tier` needs to be `Premium` for `DTU` based or `BusinessCritical` for `vCore` based `sku`. */ zoneRedundant?: pulumi.Input; }