diff --git a/azurerm/internal/services/postgres/resource_arm_postgresql_server.go b/azurerm/internal/services/postgres/resource_arm_postgresql_server.go index 0a42f24364be..5dd8ee7fcea5 100644 --- a/azurerm/internal/services/postgres/resource_arm_postgresql_server.go +++ b/azurerm/internal/services/postgres/resource_arm_postgresql_server.go @@ -3,6 +3,7 @@ package postgres import ( "fmt" "log" + "strconv" "strings" "time" @@ -49,10 +50,43 @@ func resourceArmPostgreSQLServer() *schema.Resource { "resource_group_name": azure.SchemaResourceGroupName(), + "sku_name": { + Type: schema.TypeString, + Optional: true, // required in 2.0 + Computed: true, // remove in 2.0 + ConflictsWith: []string{"sku"}, + ValidateFunc: validation.StringInSlice([]string{ + "B_Gen4_1", + "B_Gen4_2", + "B_Gen5_1", + "B_Gen5_2", + "GP_Gen4_2", + "GP_Gen4_4", + "GP_Gen4_8", + "GP_Gen4_16", + "GP_Gen4_32", + "GP_Gen5_2", + "GP_Gen5_4", + "GP_Gen5_8", + "GP_Gen5_16", + "GP_Gen5_32", + "GP_Gen5_64", + "MO_Gen5_2", + "MO_Gen5_4", + "MO_Gen5_8", + "MO_Gen5_16", + "MO_Gen5_32", + }, false), + }, + + // remove in 2.0 "sku": { - Type: schema.TypeList, - Required: true, - MaxItems: 1, + Type: schema.TypeList, + Optional: true, + Computed: true, + ConflictsWith: []string{"sku_name"}, + Deprecated: "This property has been deprecated in favour of the 'sku_name' property and will be removed in version 2.0 of the provider", + MaxItems: 1, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "name": { @@ -229,13 +263,6 @@ func resourceArmPostgreSQLServerCreate(d *schema.ResourceData, meta interface{}) location := azure.NormalizeLocation(d.Get("location").(string)) resourceGroup := d.Get("resource_group_name").(string) - adminLogin := d.Get("administrator_login").(string) - adminLoginPassword := d.Get("administrator_login_password").(string) - sslEnforcement := d.Get("ssl_enforcement").(string) - version := d.Get("version").(string) - createMode := "Default" - t := d.Get("tags").(map[string]interface{}) - if features.ShouldResourcesBeImported() { existing, err := client.Get(ctx, resourceGroup, name) if err != nil { @@ -249,21 +276,31 @@ func resourceArmPostgreSQLServerCreate(d *schema.ResourceData, meta interface{}) } } - sku := expandAzureRmPostgreSQLServerSku(d) - storageProfile := expandAzureRmPostgreSQLStorageProfile(d) + var sku *postgresql.Sku + if b, ok := d.GetOk("sku_name"); ok { + var err error + sku, err = expandServerSkuName(b.(string)) + if err != nil { + return fmt.Errorf("error expanding sku_name for PostgreSQL Server %s (Resource Group %q): %v", name, resourceGroup, err) + } + } else if _, ok := d.GetOk("sku"); ok { + sku = expandAzureRmPostgreSQLServerSku(d) + } else { + return fmt.Errorf("One of `sku` or `sku_name` must be set for PostgreSQL Server %q (Resource Group %q)", name, resourceGroup) + } properties := postgresql.ServerForCreate{ Location: &location, Properties: &postgresql.ServerPropertiesForDefaultCreate{ - AdministratorLogin: utils.String(adminLogin), - AdministratorLoginPassword: utils.String(adminLoginPassword), - Version: postgresql.ServerVersion(version), - SslEnforcement: postgresql.SslEnforcementEnum(sslEnforcement), - StorageProfile: storageProfile, - CreateMode: postgresql.CreateMode(createMode), + AdministratorLogin: utils.String(d.Get("administrator_login").(string)), + AdministratorLoginPassword: utils.String(d.Get("administrator_login_password").(string)), + Version: postgresql.ServerVersion(d.Get("version").(string)), + SslEnforcement: postgresql.SslEnforcementEnum(d.Get("ssl_enforcement").(string)), + StorageProfile: expandAzureRmPostgreSQLStorageProfile(d), + CreateMode: postgresql.CreateMode("Default"), }, Sku: sku, - Tags: tags.Expand(t), + Tags: tags.Expand(d.Get("tags").(map[string]interface{})), } future, err := client.Create(ctx, resourceGroup, name, properties) @@ -299,22 +336,28 @@ func resourceArmPostgreSQLServerUpdate(d *schema.ResourceData, meta interface{}) name := d.Get("name").(string) resourceGroup := d.Get("resource_group_name").(string) - adminLoginPassword := d.Get("administrator_login_password").(string) - sslEnforcement := d.Get("ssl_enforcement").(string) - version := d.Get("version").(string) - sku := expandAzureRmPostgreSQLServerSku(d) - storageProfile := expandAzureRmPostgreSQLStorageProfile(d) - t := d.Get("tags").(map[string]interface{}) + var sku *postgresql.Sku + if b, ok := d.GetOk("sku_name"); ok { + var err error + sku, err = expandServerSkuName(b.(string)) + if err != nil { + return fmt.Errorf("error expanding sku_name for PostgreSQL Server %q (Resource Group %q): %v", name, resourceGroup, err) + } + } else if _, ok := d.GetOk("sku"); ok { + sku = expandAzureRmPostgreSQLServerSku(d) + } else { + return fmt.Errorf("One of `sku` or `sku_name` must be set for PostgreSQL Server %q (Resource Group %q)", name, resourceGroup) + } properties := postgresql.ServerUpdateParameters{ ServerUpdateParametersProperties: &postgresql.ServerUpdateParametersProperties{ - StorageProfile: storageProfile, - AdministratorLoginPassword: utils.String(adminLoginPassword), - Version: postgresql.ServerVersion(version), - SslEnforcement: postgresql.SslEnforcementEnum(sslEnforcement), + AdministratorLoginPassword: utils.String(d.Get("administrator_login_password").(string)), + Version: postgresql.ServerVersion(d.Get("version").(string)), + SslEnforcement: postgresql.SslEnforcementEnum(d.Get("ssl_enforcement").(string)), + StorageProfile: expandAzureRmPostgreSQLStorageProfile(d), }, Sku: sku, - Tags: tags.Expand(t), + Tags: tags.Expand(d.Get("tags").(map[string]interface{})), } future, err := client.Update(ctx, resourceGroup, name, properties) @@ -330,7 +373,6 @@ func resourceArmPostgreSQLServerUpdate(d *schema.ResourceData, meta interface{}) if err != nil { return fmt.Errorf("Error retrieving PostgreSQL Server %q (Resource Group %q): %+v", name, resourceGroup, err) } - if read.ID == nil { return fmt.Errorf("Cannot read PostgreSQL Server %s (resource group %s) ID", name, resourceGroup) } @@ -377,6 +419,9 @@ func resourceArmPostgreSQLServerRead(d *schema.ResourceData, meta interface{}) e if err := d.Set("sku", flattenPostgreSQLServerSku(resp.Sku)); err != nil { return fmt.Errorf("Error setting `sku`: %+v", err) } + if sku := resp.Sku; sku != nil { + d.Set("sku_name", sku.Name) + } if err := d.Set("storage_profile", flattenPostgreSQLStorageProfile(resp.StorageProfile)); err != nil { return fmt.Errorf("Error setting `storage_profile`: %+v", err) @@ -420,6 +465,37 @@ func resourceArmPostgreSQLServerDelete(d *schema.ResourceData, meta interface{}) return nil } +func expandServerSkuName(skuName string) (*postgresql.Sku, error) { + parts := strings.Split(skuName, "_") + if len(parts) != 3 { + return nil, fmt.Errorf("sku_name (%s) has the wrong number of parts (%d) after splitting on _", skuName, len(parts)) + } + + var tier postgresql.SkuTier + switch parts[0] { + case "B": + tier = postgresql.Basic + case "GP": + tier = postgresql.GeneralPurpose + case "MO": + tier = postgresql.MemoryOptimized + default: + return nil, fmt.Errorf("sku_name %s has unknown sku tier %s", skuName, parts[0]) + } + + capacity, err := strconv.Atoi(parts[2]) + if err != nil { + return nil, fmt.Errorf("cannot convert skuname %s capcity %s to int", skuName, parts[2]) + } + + return &postgresql.Sku{ + Name: utils.String(skuName), + Tier: tier, + Capacity: utils.Int32(int32(capacity)), + Family: utils.String(parts[1]), + }, nil +} + func expandAzureRmPostgreSQLServerSku(d *schema.ResourceData) *postgresql.Sku { skus := d.Get("sku").([]interface{}) sku := skus[0].(map[string]interface{}) diff --git a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_configuration_test.go b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_configuration_test.go index 3b52f01e8db2..cb7aae2433e0 100644 --- a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_configuration_test.go +++ b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_configuration_test.go @@ -213,12 +213,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 diff --git a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_database_test.go b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_database_test.go index a7bc1a79bb91..e1037e8ce285 100644 --- a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_database_test.go +++ b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_database_test.go @@ -184,12 +184,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -240,12 +235,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -281,12 +271,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -322,12 +307,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 diff --git a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_firewall_rule_test.go b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_firewall_rule_test.go index 531c7a709af5..2cb0643faed6 100644 --- a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_firewall_rule_test.go +++ b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_firewall_rule_test.go @@ -129,12 +129,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 diff --git a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_server_test.go b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_server_test.go index e4d88ca70eac..3da8ef9691e3 100644 --- a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_server_test.go +++ b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_server_test.go @@ -33,6 +33,28 @@ func TestAccAzureRMPostgreSQLServer_basicNinePointFive(t *testing.T) { }) } +// TODO: remove in 2.0 +func TestAccAzureRMPostgreSQLServer_basicNinePointFiveOldSku(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_postgresql_server", "test") + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { acceptance.PreCheck(t) }, + Providers: acceptance.SupportedProviders, + CheckDestroy: testCheckAzureRMPostgreSQLServerDestroy, + Steps: []resource.TestStep{ + { + Config: testAccAzureRMPostgreSQLServer_basicNinePointFiveOldSku(data), + Check: resource.ComposeTestCheckFunc( + testCheckAzureRMPostgreSQLServerExists(data.ResourceName), + resource.TestCheckResourceAttr(data.ResourceName, "administrator_login", "acctestun"), + resource.TestCheckResourceAttr(data.ResourceName, "version", "9.5"), + resource.TestCheckResourceAttr(data.ResourceName, "ssl_enforcement", "Enabled"), + ), + }, + data.ImportStep("administrator_login_password"), + }, + }) +} + func TestAccAzureRMPostgreSQLServer_basicNinePointSix(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_postgresql_server", "test") resource.ParallelTest(t, resource.TestCase{ @@ -342,12 +364,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -364,6 +381,35 @@ resource "azurerm_postgresql_server" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, version) } +func testAccAzureRMPostgreSQLServer_basicNinePointFiveOldSku(data acceptance.TestData) string { + return fmt.Sprintf(` +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_postgresql_server" "test" { + name = "acctestpsqlsvr-%d" + location = "${azurerm_resource_group.test.location}" + resource_group_name = "${azurerm_resource_group.test.name}" + + sku_name = "GP_Gen5_2" + + storage_profile { + storage_mb = 51200 + backup_retention_days = 7 + geo_redundant_backup = "Disabled" + auto_grow = "Disabled" + } + + administrator_login = "acctestun" + administrator_login_password = "H@Sh1CoR3!" + version = "%s" + ssl_enforcement = "Enabled" +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, "9.5") +} + func testAccAzureRMPostgreSQLServer_basicNinePointFive(data acceptance.TestData) string { return testAccAzureRMPostgreSQLServer_basic(data, "9.5") } @@ -390,12 +436,7 @@ resource "azurerm_postgresql_server" "import" { location = "${azurerm_postgresql_server.test.location}" resource_group_name = "${azurerm_postgresql_server.test.resource_group_name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -423,12 +464,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -456,12 +492,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_4" - capacity = 4 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_4" storage_profile { storage_mb = 640000 @@ -489,12 +520,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 947200 @@ -523,13 +549,8 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_32" - capacity = 32 - tier = "GeneralPurpose" - family = "Gen5" - } - + sku_name = "GP_Gen5_32" + storage_profile { storage_mb = 640000 backup_retention_days = 7 @@ -556,12 +577,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "MO_Gen5_16" - capacity = 16 - tier = "MemoryOptimized" - family = "Gen5" - } + sku_name = "MO_Gen5_16" storage_profile { storage_mb = 4194304 diff --git a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_virtual_network_rule_test.go b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_virtual_network_rule_test.go index 90305b89d1a7..46cf98c731ef 100644 --- a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_virtual_network_rule_test.go +++ b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_virtual_network_rule_test.go @@ -268,12 +268,7 @@ resource "azurerm_postgresql_server" "test" { version = "9.5" ssl_enforcement = "Enabled" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -344,12 +339,7 @@ resource "azurerm_postgresql_server" "test" { version = "9.5" ssl_enforcement = "Enabled" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -406,12 +396,7 @@ resource "azurerm_postgresql_server" "test" { version = "9.5" ssl_enforcement = "Enabled" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -483,12 +468,7 @@ resource "azurerm_postgresql_server" "test" { version = "9.5" ssl_enforcement = "Enabled" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -550,12 +530,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 diff --git a/website/docs/guides/2.0-upgrade-guide.html.markdown b/website/docs/guides/2.0-upgrade-guide.html.markdown index a3b41e341ecf..1df8dc28bd0d 100644 --- a/website/docs/guides/2.0-upgrade-guide.html.markdown +++ b/website/docs/guides/2.0-upgrade-guide.html.markdown @@ -365,6 +365,12 @@ This resource has been renamed to `azurerm_private_endpoint` which is available The deprecated `network_interface_ids` field will be removed. +### Resource: `azurerm_postgresql_server` + +The deprecated `sku` block has been replaced by the `sku_name` field and will be removed. + +The `sku_name` field will become Required. + ### Resource: `azurerm_public_ip` The deprecated `public_ip_address_allocation` field will be removed. This field has been replaced by `allocation_method`. diff --git a/website/docs/r/postgresql_configuration.html.markdown b/website/docs/r/postgresql_configuration.html.markdown index 86aea454504a..1f113fe23eb5 100644 --- a/website/docs/r/postgresql_configuration.html.markdown +++ b/website/docs/r/postgresql_configuration.html.markdown @@ -23,12 +23,7 @@ resource "azurerm_postgresql_server" "example" { location = "${azurerm_resource_group.example.location}" resource_group_name = "${azurerm_resource_group.example.name}" - sku { - name = "B_Gen5_2" - capacity = 2 - tier = "Basic" - family = "Gen4" - } + sku_name = "B_Gen5_2" storage_profile { storage_mb = 5120 diff --git a/website/docs/r/postgresql_database.html.markdown b/website/docs/r/postgresql_database.html.markdown index 336cbe8c3a7c..278c11ad71ec 100644 --- a/website/docs/r/postgresql_database.html.markdown +++ b/website/docs/r/postgresql_database.html.markdown @@ -23,12 +23,7 @@ resource "azurerm_postgresql_server" "example" { location = "${azurerm_resource_group.example.location}" resource_group_name = "${azurerm_resource_group.example.name}" - sku { - name = "B_Gen5_2" - capacity = 2 - tier = "Basic" - family = "Gen5" - } + sku_name = "B_Gen5_2" storage_profile { storage_mb = 5120 diff --git a/website/docs/r/postgresql_server.html.markdown b/website/docs/r/postgresql_server.html.markdown index 4058d3b56050..137beb65e2a8 100644 --- a/website/docs/r/postgresql_server.html.markdown +++ b/website/docs/r/postgresql_server.html.markdown @@ -23,12 +23,7 @@ resource "azurerm_postgresql_server" "example" { location = "${azurerm_resource_group.example.location}" resource_group_name = "${azurerm_resource_group.example.name}" - sku { - name = "B_Gen5_2" - capacity = 2 - tier = "Basic" - family = "Gen5" - } + sku_name = "B_Gen5_2" storage_profile { storage_mb = 5120 @@ -54,7 +49,7 @@ The following arguments are supported: * `location` - (Required) Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. -* `sku` - (Required) A `sku` block as defined below. +* `sku_name` - (Required) Specifies the SKU Name for this PostgreSQL Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/postgresql/servers/create#sku). * `storage_profile` - (Required) A `storage_profile` block as defined below. @@ -70,18 +65,6 @@ The following arguments are supported: --- -`sku` supports the following: - -* `name` - (Required) Specifies the SKU Name for this PostgreSQL Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. B_Gen4_1, GP_Gen5_8). For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/postgresql/servers/create#sku). - -* `capacity` - (Required) The scale up/out capacity, representing server's compute units. - -* `tier` - (Required) The tier of the particular SKU. Possible values are `Basic`, `GeneralPurpose`, and `MemoryOptimized`. For more information see the [product documentation](https://docs.microsoft.com/en-us/azure/postgresql/concepts-pricing-tiers). - -* `family` - (Required) The `family` of hardware `Gen4` or `Gen5`, before selecting your `family` check the [product documentation](https://docs.microsoft.com/en-us/azure/postgresql/concepts-pricing-tiers#compute-generations-vcores-and-memory) for availability in your region. - ---- - `storage_profile` supports the following: * `storage_mb` - (Required) Max storage allowed for a server. Possible values are between `5120` MB(5GB) and `1048576` MB(1TB) for the Basic SKU and between `5120` MB(5GB) and `4194304` MB(4TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/postgresql/servers/create#StorageProfile). diff --git a/website/docs/r/postgresql_virtual_network_rule.html.markdown b/website/docs/r/postgresql_virtual_network_rule.html.markdown index 65353b234f3b..b0e0447ee65d 100644 --- a/website/docs/r/postgresql_virtual_network_rule.html.markdown +++ b/website/docs/r/postgresql_virtual_network_rule.html.markdown @@ -40,12 +40,7 @@ resource "azurerm_postgresql_server" "example" { location = "${azurerm_resource_group.example.location}" resource_group_name = "${azurerm_resource_group.example.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "B_Gen5_2" storage_profile { storage_mb = 5120