From 2dc96b123222a31aa6c85d77c9bcca69cc6d6d60 Mon Sep 17 00:00:00 2001 From: kt Date: Wed, 29 Apr 2020 10:30:00 -0700 Subject: [PATCH] azurerm_mssql_server - support public_network_access_enabled --- .../mssql/resource_arm_mssql_server.go | 29 +- .../tests/resource_arm_mssql_server_test.go | 261 ++++++------------ website/docs/r/mssql_server.html.markdown | 33 +-- website/docs/r/sql_server.html.markdown | 8 +- 4 files changed, 120 insertions(+), 211 deletions(-) diff --git a/azurerm/internal/services/mssql/resource_arm_mssql_server.go b/azurerm/internal/services/mssql/resource_arm_mssql_server.go index 9ca2b380a12a..ffff67e0ccf0 100644 --- a/azurerm/internal/services/mssql/resource_arm_mssql_server.go +++ b/azurerm/internal/services/mssql/resource_arm_mssql_server.go @@ -107,6 +107,12 @@ func resourceArmMsSqlServer() *schema.Resource { }, }, + "public_network_access_enabled": { + Type: schema.TypeBool, + Optional: true, + Default: true, + }, + "extended_auditing_policy": helper.ExtendedAuditingSchema(), "fully_qualified_domain_name": { @@ -148,26 +154,32 @@ func resourceArmMsSqlServerCreateUpdate(d *schema.ResourceData, meta interface{} } } - parameters := sql.Server{ + props := sql.Server{ Location: utils.String(location), Tags: metadata, ServerProperties: &sql.ServerProperties{ Version: utils.String(version), AdministratorLogin: utils.String(adminUsername), + PublicNetworkAccess: sql.ServerPublicNetworkAccessEnabled, }, } if _, ok := d.GetOk("identity"); ok { sqlServerIdentity := expandAzureRmSqlServerIdentity(d) - parameters.Identity = sqlServerIdentity + props.Identity = sqlServerIdentity } + if v := d.Get("public_network_access_enabled"); !v.(bool) { + props.ServerProperties.PublicNetworkAccess = sql.ServerPublicNetworkAccessDisabled + } + + if d.HasChange("administrator_login_password") { adminPassword := d.Get("administrator_login_password").(string) - parameters.ServerProperties.AdministratorLoginPassword = utils.String(adminPassword) + props.ServerProperties.AdministratorLoginPassword = utils.String(adminPassword) } - future, err := client.CreateOrUpdate(ctx, resGroup, name, parameters) + future, err := client.CreateOrUpdate(ctx, resGroup, name, props) if err != nil { return fmt.Errorf("Error issuing create/update request for SQL Server %q (Resource Group %q): %+v", name, resGroup, err) } @@ -242,10 +254,11 @@ func resourceArmMsSqlServerRead(d *schema.ResourceData, meta interface{}) error return fmt.Errorf("Error setting `identity`: %+v", err) } - if serverProperties := resp.ServerProperties; serverProperties != nil { - d.Set("version", serverProperties.Version) - d.Set("administrator_login", serverProperties.AdministratorLogin) - d.Set("fully_qualified_domain_name", serverProperties.FullyQualifiedDomainName) + if props := resp.ServerProperties; props != nil { + d.Set("version", props.Version) + d.Set("administrator_login", props.AdministratorLogin) + d.Set("fully_qualified_domain_name", props.FullyQualifiedDomainName) + d.Set("public_network_access_enabled", props.PublicNetworkAccess == sql.ServerPublicNetworkAccessEnabled) } connection, err := connectionClient.Get(ctx, resGroup, name) diff --git a/azurerm/internal/services/mssql/tests/resource_arm_mssql_server_test.go b/azurerm/internal/services/mssql/tests/resource_arm_mssql_server_test.go index 848d7b9f76a7..effda48676bf 100644 --- a/azurerm/internal/services/mssql/tests/resource_arm_mssql_server_test.go +++ b/azurerm/internal/services/mssql/tests/resource_arm_mssql_server_test.go @@ -6,7 +6,6 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" - "github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/validate" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/clients" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" @@ -26,16 +25,12 @@ func TestAccAzureRMMsSqlServer_basic(t *testing.T) { testCheckAzureRMMsSqlServerExists(data.ResourceName), ), }, - { - ResourceName: data.ResourceName, - ImportState: true, - ImportStateVerify: true, - ImportStateVerifyIgnore: []string{"administrator_login_password"}, - }, + data.ImportStep("administrator_login_password"), }, }) } -func TestAccAzureRMMsSqlServer_requiresImport(t *testing.T) { + +func TestAccAzureRMMsSqlServer_complete(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_mssql_server", "test") resource.ParallelTest(t, resource.TestCase{ @@ -44,17 +39,17 @@ func TestAccAzureRMMsSqlServer_requiresImport(t *testing.T) { CheckDestroy: testCheckAzureRMMsSqlServerDestroy, Steps: []resource.TestStep{ { - Config: testAccAzureRMMsSqlServer_basic(data), + Config: testAccAzureRMMsSqlServer_complete(data), Check: resource.ComposeTestCheckFunc( testCheckAzureRMMsSqlServerExists(data.ResourceName), ), }, - data.RequiresImportErrorStep(testAccAzureRMMsSqlServer_requiresImport), + data.ImportStep("administrator_login_password", "extended_auditing_policy.0.storage_account_access_key"), }, }) } -func TestAccAzureRMMsSqlServer_disappears(t *testing.T) { +func TestAccAzureRMMsSqlServer_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_mssql_server", "test") resource.ParallelTest(t, resource.TestCase{ @@ -66,15 +61,14 @@ func TestAccAzureRMMsSqlServer_disappears(t *testing.T) { Config: testAccAzureRMMsSqlServer_basic(data), Check: resource.ComposeTestCheckFunc( testCheckAzureRMMsSqlServerExists(data.ResourceName), - testCheckAzureRMMsSqlServerDisappears(data.ResourceName), ), - ExpectNonEmptyPlan: true, }, + data.RequiresImportErrorStep(testAccAzureRMMsSqlServer_requiresImport), }, }) } -func TestAccAzureRMMsSqlServer_withTags(t *testing.T) { +func TestAccAzureRMMsSqlServer_disappears(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_mssql_server", "test") resource.ParallelTest(t, resource.TestCase{ @@ -83,30 +77,18 @@ func TestAccAzureRMMsSqlServer_withTags(t *testing.T) { CheckDestroy: testCheckAzureRMMsSqlServerDestroy, Steps: []resource.TestStep{ { - Config: testAccAzureRMMsSqlServer_withTags(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMMsSqlServerExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "tags.%", "2"), - ), - }, - { - Config: testAccAzureRMMsSqlServer_withTagsUpdated(data), + Config: testAccAzureRMMsSqlServer_basic(data), Check: resource.ComposeTestCheckFunc( testCheckAzureRMMsSqlServerExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "tags.%", "1"), + testCheckAzureRMMsSqlServerDisappears(data.ResourceName), ), - }, - { - ResourceName: data.ResourceName, - ImportState: true, - ImportStateVerify: true, - ImportStateVerifyIgnore: []string{"administrator_login_password"}, + ExpectNonEmptyPlan: true, }, }, }) } -func TestAccAzureRMMsSqlServer_withIdentity(t *testing.T) { +func TestAccAzureRMMsSqlServer_update(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_mssql_server", "test") resource.ParallelTest(t, resource.TestCase{ @@ -115,58 +97,38 @@ func TestAccAzureRMMsSqlServer_withIdentity(t *testing.T) { CheckDestroy: testCheckAzureRMMsSqlServerDestroy, Steps: []resource.TestStep{ { - Config: testAccAzureRMMsSqlServer_withIdentity(data), + Config: testAccAzureRMMsSqlServer_basic(data), Check: resource.ComposeTestCheckFunc( testCheckAzureRMMsSqlServerExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "identity.0.type", "SystemAssigned"), - resource.TestMatchResourceAttr(data.ResourceName, "identity.0.principal_id", validate.UUIDRegExp), - resource.TestMatchResourceAttr(data.ResourceName, "identity.0.tenant_id", validate.UUIDRegExp), ), }, + data.ImportStep("administrator_login_password"), { - ResourceName: data.ResourceName, - ImportState: true, - ImportStateVerify: true, - ImportStateVerifyIgnore: []string{"administrator_login_password"}, - }, - }, - }) -} - -func TestAccAzureRMMsSqlServer_updateWithIdentityAdded(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_mssql_server", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMMsSqlServerDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMMsSqlServer_basic(data), + Config: testAccAzureRMMsSqlServer_complete(data), Check: resource.ComposeTestCheckFunc( testCheckAzureRMMsSqlServerExists(data.ResourceName), ), }, + data.ImportStep("administrator_login_password", "extended_auditing_policy.0.storage_account_access_key"), { - Config: testAccAzureRMMsSqlServer_withIdentity(data), + Config: testAccAzureRMMsSqlServer_complete2(data), Check: resource.ComposeTestCheckFunc( testCheckAzureRMMsSqlServerExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "identity.0.type", "SystemAssigned"), - resource.TestMatchResourceAttr(data.ResourceName, "identity.0.principal_id", validate.UUIDRegExp), - resource.TestMatchResourceAttr(data.ResourceName, "identity.0.tenant_id", validate.UUIDRegExp), ), }, + data.ImportStep("administrator_login_password", "extended_auditing_policy.0.storage_account_access_key"), { - ResourceName: data.ResourceName, - ImportState: true, - ImportStateVerify: true, - ImportStateVerifyIgnore: []string{"administrator_login_password"}, + Config: testAccAzureRMMsSqlServer_basic(data), + Check: resource.ComposeTestCheckFunc( + testCheckAzureRMMsSqlServerExists(data.ResourceName), + ), }, + data.ImportStep("administrator_login_password"), }, }) } -func TestAccAzureRMMsSqlServer_updateWithBlobAuditingPolices(t *testing.T) { +func TestAccAzureRMMsSqlServer_identity(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_mssql_server", "test") resource.ParallelTest(t, resource.TestCase{ @@ -175,20 +137,9 @@ func TestAccAzureRMMsSqlServer_updateWithBlobAuditingPolices(t *testing.T) { CheckDestroy: testCheckAzureRMMsSqlServerDestroy, Steps: []resource.TestStep{ { - Config: testAccAzureRMMsSqlServer_withBlobAuditingPolices(data), + Config: testAccAzureRMMsSqlServer_identity(data), Check: resource.ComposeTestCheckFunc( testCheckAzureRMMsSqlServerExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "extended_auditing_policy.0.storage_account_access_key_is_secondary", "true"), - resource.TestCheckResourceAttr(data.ResourceName, "extended_auditing_policy.0.retention_in_days", "6"), - ), - }, - data.ImportStep("administrator_login_password", "extended_auditing_policy.0.storage_account_access_key"), - { - Config: testAccAzureRMMsSqlServer_withBlobAuditingPolicesUpdated(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMMsSqlServerExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "extended_auditing_policy.0.storage_account_access_key_is_secondary", "false"), - resource.TestCheckResourceAttr(data.ResourceName, "extended_auditing_policy.0.retention_in_days", "11"), ), }, data.ImportStep("administrator_login_password", "extended_auditing_policy.0.storage_account_access_key"), @@ -283,7 +234,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "acctestRG-%d" + name = "acctestRG-mssql-%d" location = "%s" } @@ -292,8 +243,8 @@ resource "azurerm_mssql_server" "test" { resource_group_name = azurerm_resource_group.test.name location = azurerm_resource_group.test.location version = "12.0" - administrator_login = "mradministrator" - administrator_login_password = "thisIsDog11" + administrator_login = "missadministrator" + administrator_login_password = "thisIsKat11" } `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } @@ -313,106 +264,63 @@ resource "azurerm_mssql_server" "import" { `, testAccAzureRMMsSqlServer_basic(data)) } -func testAccAzureRMMsSqlServer_withTags(data acceptance.TestData) string { +func testAccAzureRMMsSqlServer_complete(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} } resource "azurerm_resource_group" "test" { - name = "acctestRG-%d" - location = "%s" -} - -resource "azurerm_mssql_server" "test" { - name = "acctestsqlserver%d" - resource_group_name = azurerm_resource_group.test.name - location = azurerm_resource_group.test.location - version = "12.0" - administrator_login = "mradministrator" - administrator_login_password = "thisIsDog11" - - tags = { - environment = "staging" - database = "test" - } -} -`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) -} - -func testAccAzureRMMsSqlServer_withTagsUpdated(data acceptance.TestData) string { - return fmt.Sprintf(` -provider "azurerm" { - features {} + name = "acctestRG-mssql-%[1]d" + location = "%[2]s" } -resource "azurerm_resource_group" "test" { - name = "acctestRG-%d" - location = "%s" +resource "azurerm_storage_account" "test" { + name = "acctesta%[3]d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + account_tier = "Standard" + account_replication_type = "LRS" } resource "azurerm_mssql_server" "test" { - name = "acctestsqlserver%d" + name = "acctestsqlserver%[1]d" resource_group_name = azurerm_resource_group.test.name location = azurerm_resource_group.test.location version = "12.0" - administrator_login = "mradministrator" - administrator_login_password = "thisIsDog11" + administrator_login = "missadministrator" + administrator_login_password = "thisIsKat11" - tags = { - environment = "production" - } -} -`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) -} + public_network_access_enabled = false -func testAccAzureRMMsSqlServer_withIdentity(data acceptance.TestData) string { - return fmt.Sprintf(` -provider "azurerm" { - features {} -} - -resource "azurerm_resource_group" "test" { - name = "acctestRG-%d" - location = "%s" -} - -resource "azurerm_mssql_server" "test" { - name = "acctestsqlserver%d" - resource_group_name = azurerm_resource_group.test.name - location = azurerm_resource_group.test.location - version = "12.0" - administrator_login = "mradministrator" - administrator_login_password = "thisIsDog11" + extended_auditing_policy { + storage_account_access_key = azurerm_storage_account.test.primary_access_key + storage_endpoint = azurerm_storage_account.test.primary_blob_endpoint + storage_account_access_key_is_secondary = true + retention_in_days = 6 + } - identity { - type = "SystemAssigned" + tags = { + ENV = "Staging" + database = "NotProd" } } -`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +`, data.RandomInteger, data.Locations.Primary, data.RandomIntOfLength(15)) } -func testAccAzureRMMsSqlServer_withBlobAuditingPolices(data acceptance.TestData) string { +func testAccAzureRMMsSqlServer_complete2(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} } resource "azurerm_resource_group" "test" { - name = "acctestRG-sql-%[1]d" + name = "acctestRG-mssql-%[1]d" location = "%[2]s" } -resource "azurerm_storage_account" "test" { - name = "acctest%[1]d" - resource_group_name = azurerm_resource_group.test.name - location = azurerm_resource_group.test.location - account_tier = "Standard" - account_replication_type = "LRS" -} - -resource "azurerm_storage_account" "test2" { - name = "acctest2%[1]d" +resource "azurerm_storage_account" "testb" { + name = "acctestb%[3]d" resource_group_name = azurerm_resource_group.test.name location = azurerm_resource_group.test.location account_tier = "Standard" @@ -424,60 +332,47 @@ resource "azurerm_mssql_server" "test" { resource_group_name = azurerm_resource_group.test.name location = azurerm_resource_group.test.location version = "12.0" - administrator_login = "mradministrator" - administrator_login_password = "thisIsDog11" + administrator_login = "missadministrator" + administrator_login_password = "thisIsKat11" + + public_network_access_enabled = false extended_auditing_policy { - storage_account_access_key = azurerm_storage_account.test.primary_access_key - storage_endpoint = azurerm_storage_account.test.primary_blob_endpoint - storage_account_access_key_is_secondary = true - retention_in_days = 6 + storage_account_access_key = azurerm_storage_account.testb.primary_access_key + storage_endpoint = azurerm_storage_account.testb.primary_blob_endpoint + storage_account_access_key_is_secondary = false + retention_in_days = 11 + } + + tags = { + DB = "NotProd" } } -`, data.RandomIntOfLength(15), data.Locations.Primary) +`, data.RandomInteger, data.Locations.Primary, data.RandomIntOfLength(15)) } -func testAccAzureRMMsSqlServer_withBlobAuditingPolicesUpdated(data acceptance.TestData) string { +func testAccAzureRMMsSqlServer_identity(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} } resource "azurerm_resource_group" "test" { - name = "acctestRG-sql-%[1]d" - location = "%[2]s" -} - -resource "azurerm_storage_account" "test" { - name = "acctest%[1]d" - resource_group_name = azurerm_resource_group.test.name - location = azurerm_resource_group.test.location - account_tier = "Standard" - account_replication_type = "LRS" -} - -resource "azurerm_storage_account" "test2" { - name = "acctest2%[1]d" - resource_group_name = azurerm_resource_group.test.name - location = azurerm_resource_group.test.location - account_tier = "Standard" - account_replication_type = "LRS" + name = "acctestRG-mssql-%d" + location = "%s" } resource "azurerm_mssql_server" "test" { - name = "acctestsqlserver%[1]d" + name = "acctestsqlserver%d" resource_group_name = azurerm_resource_group.test.name location = azurerm_resource_group.test.location version = "12.0" - administrator_login = "mradministrator" - administrator_login_password = "thisIsDog11" + administrator_login = "missadministrator" + administrator_login_password = "thisIsKat11" - extended_auditing_policy { - storage_account_access_key = azurerm_storage_account.test2.primary_access_key - storage_endpoint = azurerm_storage_account.test2.primary_blob_endpoint - storage_account_access_key_is_secondary = false - retention_in_days = 11 + identity { + type = "SystemAssigned" } } -`, data.RandomIntOfLength(15), data.Locations.Primary) -} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +} \ No newline at end of file diff --git a/website/docs/r/mssql_server.html.markdown b/website/docs/r/mssql_server.html.markdown index 98bad9e87c9c..430a07f9ec40 100644 --- a/website/docs/r/mssql_server.html.markdown +++ b/website/docs/r/mssql_server.html.markdown @@ -3,13 +3,13 @@ subcategory: "Database" layout: "azurerm" page_title: "Azure Resource Manager: azurerm_sql_server" description: |- - Manages a SQL Azure Database Server. + Manages a Microsoft SQL Azure Database Server. --- -# azurerm_sql_server +# azurerm_mssql_server -Manages a SQL Azure Database Server. +Manages a Microsoft SQL Azure Database Server. ~> **Note:** All arguments including the administrator login and password will be stored in the raw state as plain-text. [Read more about sensitive data in state](/docs/state/sensitive-data.html). @@ -30,13 +30,13 @@ resource "azurerm_storage_account" "example" { account_replication_type = "LRS" } -resource "azurerm_sql_server" "example" { - name = "mysqlserver" +resource "azurerm_mssql_server" "example" { + name = "mssqlserver" resource_group_name = azurerm_resource_group.example.name location = azurerm_resource_group.example.location version = "12.0" - administrator_login = "mradministrator" - administrator_login_password = "thisIsDog11" + administrator_login = "missadministrator" + administrator_login_password = "thisIsKat11" extended_auditing_policy { storage_endpoint = azurerm_storage_account.example.primary_blob_endpoint @@ -54,9 +54,9 @@ resource "azurerm_sql_server" "example" { The following arguments are supported: -* `name` - (Required) The name of the SQL Server. This needs to be globally unique within Azure. +* `name` - (Required) The name of the Microsoft SQL Server. This needs to be globally unique within Azure. -* `resource_group_name` - (Required) The name of the resource group in which to create the SQL Server. +* `resource_group_name` - (Required) The name of the resource group in which to create the Microsoft SQL Server. * `location` - (Required) Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. @@ -78,15 +78,16 @@ The following arguments are supported: An `identity` block supports the following: -* `type` - (Required) Specifies the identity type of the SQL Server. At this time the only allowed value is `SystemAssigned`. +* `type` - (Required) Specifies the identity type of the Microsoft SQL Server. At this time the only allowed value is `SystemAssigned`. -~> **NOTE:** The assigned `principal_id` and `tenant_id` can be retrieved after the identity `type` has been set to `SystemAssigned` and the SQL Server has been created. More details are available below. +~> **NOTE:** The assigned `principal_id` and `tenant_id` can be retrieved after the identity `type` has been set to `SystemAssigned` and the Microsoft SQL Server has been created. More details are available below. ## Attributes Reference The following attributes are exported: -* `id` - The SQL Server ID. +* `id` - the Microsoft SQL Server ID. + * `fully_qualified_domain_name` - The fully qualified domain name of the Azure SQL Server (e.g. myServerName.database.windows.net) --- @@ -115,10 +116,10 @@ A `extended_auditing_policy` block supports the following: The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/docs/configuration/resources.html#timeouts) for certain actions: -* `create` - (Defaults to 60 minutes) Used when creating the SQL Server. -* `update` - (Defaults to 60 minutes) Used when updating the SQL Server. -* `read` - (Defaults to 5 minutes) Used when retrieving the SQL Server. -* `delete` - (Defaults to 60 minutes) Used when deleting the SQL Server. +* `create` - (Defaults to 60 minutes) Used when creating the Microsoft SQL Server. +* `update` - (Defaults to 60 minutes) Used when updating the Microsoft SQL Server. +* `read` - (Defaults to 5 minutes) Used when retrieving the Microsoft SQL Server. +* `delete` - (Defaults to 60 minutes) Used when deleting the Microsoft SQL Server. ## Import diff --git a/website/docs/r/sql_server.html.markdown b/website/docs/r/sql_server.html.markdown index b7678a498cd1..d11140c63b4f 100644 --- a/website/docs/r/sql_server.html.markdown +++ b/website/docs/r/sql_server.html.markdown @@ -1,7 +1,7 @@ --- subcategory: "Database" layout: "azurerm" -page_title: "Azure Resource Manager: azurerm_mssql_server" +page_title: "Azure Resource Manager: azurerm_sql_server" description: |- Manages a Microsoft SQL Azure Database Server. @@ -30,8 +30,8 @@ resource "azurerm_storage_account" "example" { account_replication_type = "LRS" } -resource "azurerm_mssql_server" "example" { - name = "mysqlserver" +resource "azurerm_sql_server" "example" { + name = "mssqlserver" resource_group_name = azurerm_resource_group.example.name location = azurerm_resource_group.example.location version = "12.0" @@ -125,5 +125,5 @@ The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/d SQL Servers can be imported using the `resource id`, e.g. ```shell -terraform import azurerm_mssql_server.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver +terraform import azurerm_sql_server.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver ```