diff --git a/.github/workflows/ms.sql.servers.databases.yml b/.github/workflows/ms.sql.servers.databases.yml deleted file mode 100644 index 1b277a0667..0000000000 --- a/.github/workflows/ms.sql.servers.databases.yml +++ /dev/null @@ -1,214 +0,0 @@ -name: 'Sql: Servers Databases' - -on: - workflow_dispatch: - inputs: - removeDeployment: - description: 'Remove deployed module' - required: false - default: 'true' - versioningOption: - description: 'The mode to handle the version increments [major|minor|patch|custom]' - required: false - default: 'patch' - customVersion: - description: 'The version to enforce if [versionOption] is set to [custom]' - required: false - default: '0.0.1' - push: - branches: - - main - paths: - - '.github/actions/templates/**' - - '.github/workflows/ms.sql.servers.databases.yml' - - 'arm/Microsoft.Sql/serversResources/databases/**' - - '!arm/Microsoft.Sql/serversResources/databases/readme.md' - -env: - moduleName: 'databases' - modulePath: 'arm/Microsoft.Sql/serversResources/databases' - workflowPath: '.github/workflows/ms.sql.servers.databases.yml' - AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} - ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }} - ARM_MGMTGROUP_ID: ${{ secrets.ARM_MGMTGROUP_ID }} - -jobs: - ############################ - # SET INPUT PARAMETERS # - ############################ - job_set_workflow_param: - runs-on: ubuntu-20.04 - name: 'Set input parameters to output variables' - steps: - - name: 'Checkout' - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: 'Set input parameters' - id: get-workflow-param - uses: ./.github/actions/templates/getWorkflowInput - with: - workflowPath: '${{ env.workflowPath}}' - outputs: - removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - versioningOption: ${{ steps.get-workflow-param.outputs.versioningOption }} - customVersion: ${{ steps.get-workflow-param.outputs.customVersion }} - - ################## - # UNIT TESTS # - ################## - # Global tests - # ------------ - job_tests_module_global: - runs-on: ubuntu-20.04 - name: 'Run global module tests' - steps: - - name: 'Checkout' - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: 'Test module' - uses: ./.github/actions/templates/validateModuleGeneral - with: - modulePath: '${{ env.modulePath }}' - moduleName: '${{ env.moduleName}}' - - # Global API tests - # ---------------- - job_tests_module_global_api: - runs-on: ubuntu-20.04 - name: 'Run global API module tests' - steps: - - name: 'Checkout' - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: 'Test module' - uses: ./.github/actions/templates/validateModuleApis - with: - modulePath: '${{ env.modulePath }}' - moduleName: '${{ env.moduleName}}' - - # Validate deployment module tests - # -------------------------------- - job_tests_module_deploy_validate: - runs-on: ubuntu-20.04 - name: 'Run deployment validation module tests' - strategy: - fail-fast: false - matrix: - parameterFilePaths: ['parameters.json'] - steps: - - name: 'Checkout' - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Set environment variables - uses: deep-mm/set-variables@v1.0 - with: - # Name of variable file - variableFileName: 'variables.module' # Don't write .json here - - name: 'Test module' - uses: ./.github/actions/templates/validateModuleDeploy - with: - templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/.parameters/${{ matrix.parameterFilePaths }}' - location: '${{ env.defaultLocation }}' - resourceGroupName: '${{ env.resourceGroupName }}' - subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' - managementGroupId: '${{ secrets.ARM_MGMTGROUP_ID }}' - - #################### - # DEPLOY TESTS # - #################### - job_deploy_module: - runs-on: ubuntu-20.04 - name: 'Deploy module' - needs: - - job_set_workflow_param - - job_tests_module_global - - job_tests_module_global_api - - job_tests_module_deploy_validate - strategy: - fail-fast: false - matrix: - parameterFilePaths: ['parameters.json'] - steps: - - name: 'Checkout' - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Set environment variables - uses: deep-mm/set-variables@v1.0 - with: - # Name of variable file - variableFileName: 'variables.module' # Don't write .json here - - name: 'Deploy module' - uses: ./.github/actions/templates/deployModule - with: - moduleName: '${{ env.moduleName }}' - templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/.parameters/${{ matrix.parameterFilePaths }}' - location: '${{ env.defaultLocation }}' - resourceGroupName: '${{ env.resourceGroupName }}' - subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' - managementGroupId: '${{ secrets.ARM_MGMTGROUP_ID }}' - removeDeployment: '${{ needs.job_set_workflow_param.outputs.removeDeployment }}' - - ############### - # PUBLISH # - ############### - job_publish_module: - name: 'Publish module' - if: contains(fromJson('["refs/heads/main", "refs/heads/master"]'), github.ref) - runs-on: ubuntu-20.04 - needs: - - job_set_workflow_param - - job_deploy_module - steps: - - name: 'Checkout' - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Set environment variables - uses: deep-mm/set-variables@v1.0 - with: - # Name of variable file - variableFileName: 'variables.module' # Don't write .json here - - name: 'Publish module' - uses: ./.github/actions/templates/publishModule - with: - templateFilePath: '${{ env.modulePath }}/deploy.bicep' - componentTemplateSpecRGName: '${{ env.componentTemplateSpecRGName }}' - componentTemplateSpecRGLocation: '${{ env.componentTemplateSpecRGLocation }}' - componentTemplateSpecName: '${{ env.moduleName }}' - componentTemplateSpecDescription: '${{ env.componentTemplateSpecDescription }}' - publishToTemplateSpec: '${{ env.publishToTemplateSpec }}' - versioningOption: '${{ needs.job_set_workflow_param.outputs.versioningOption }}' - customVersion: '${{ needs.job_set_workflow_param.outputs.customVersion }}' - - ############## - # REMOVE # - ############## - job_remove_module: - runs-on: ubuntu-20.04 - name: 'Remove module' - if: ${{ always() && !cancelled() && needs.job_set_workflow_param.outputs.removeDeployment == 'true' && (contains(needs.*.result, 'success') || contains(needs.*.result, 'failure')) }} - needs: - - job_deploy_module - steps: - - name: 'Checkout' - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Set environment variables - uses: deep-mm/set-variables@v1.0 - with: - # Name of variable file - variableFileName: 'variables.module' # Don't write .json here - - name: 'Remove module' - uses: ./.github/actions/templates/removeModule - with: - moduleName: '${{ env.moduleName }}' - templateFilePath: '${{ env.modulePath }}/deploy.bicep' - resourceGroupName: '${{ env.resourceGroupName }}' diff --git a/arm/Microsoft.Network/applicationGateways/.parameters/parameters.json b/arm/Microsoft.Network/applicationGateways/.parameters/parameters.json index ceb0c04478..5ca147401b 100644 --- a/arm/Microsoft.Network/applicationGateways/.parameters/parameters.json +++ b/arm/Microsoft.Network/applicationGateways/.parameters/parameters.json @@ -1,5 +1,5 @@ { - "$schema": "http://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "applicationGatewayName": { diff --git a/arm/Microsoft.Sql/servers/.bicep/nested_rbac.bicep b/arm/Microsoft.Sql/servers/.bicep/nested_rbac.bicep index 73f02d2b7a..72fe0fe925 100644 --- a/arm/Microsoft.Sql/servers/.bicep/nested_rbac.bicep +++ b/arm/Microsoft.Sql/servers/.bicep/nested_rbac.bicep @@ -2,10 +2,15 @@ param roleAssignmentObj object param builtInRoleNames object param resourceName string -resource roleAssignment 'Microsoft.Sql/servers/providers/roleAssignments@2021-04-01-preview' = [for principalId in roleAssignmentObj.principalIds: { - name: '${resourceName}/Microsoft.Authorization/${guid(resourceName, principalId, roleAssignmentObj.roleDefinitionIdOrName)}' +resource server 'Microsoft.Sql/servers@2020-02-02-preview' existing = { + name: resourceName +} + +resource roleAssignment 'Microsoft.Authorization/roleAssignments@2021-04-01-preview' = [for principalId in roleAssignmentObj.principalIds: { + name: guid(server.name, principalId, roleAssignmentObj.roleDefinitionIdOrName) properties: { roleDefinitionId: (contains(builtInRoleNames, roleAssignmentObj.roleDefinitionIdOrName) ? builtInRoleNames[roleAssignmentObj.roleDefinitionIdOrName] : roleAssignmentObj.roleDefinitionIdOrName) principalId: principalId } + scope: server }] diff --git a/arm/Microsoft.Sql/servers/.parameters/parameters.json b/arm/Microsoft.Sql/servers/.parameters/parameters.json index 9ea6153889..4470bffde4 100644 --- a/arm/Microsoft.Sql/servers/.parameters/parameters.json +++ b/arm/Microsoft.Sql/servers/.parameters/parameters.json @@ -24,7 +24,7 @@ "location": { "value": "westeurope" }, - "serverName": { + "name": { "value": "sxx-az-sqlsrv-x-001" }, "roleAssignments": { @@ -36,6 +36,18 @@ ] } ] + }, + "databases": { + "value": [ + { + "name": "sxx-az-sqldb-weu-x-001", + "collation": "SQL_Latin1_General_CP1_CI_AS", + "tier": "GeneralPurpose", + "skuName": "GP_Gen5_2", + "maxSizeBytes": 34359738368, + "licenseType": "LicenseIncluded" + } + ] } } } diff --git a/arm/Microsoft.Sql/serversResources/databases/.bicep/nested_cuaId.bicep b/arm/Microsoft.Sql/servers/databases/.bicep/nested_cuaId.bicep similarity index 100% rename from arm/Microsoft.Sql/serversResources/databases/.bicep/nested_cuaId.bicep rename to arm/Microsoft.Sql/servers/databases/.bicep/nested_cuaId.bicep diff --git a/arm/Microsoft.Sql/serversResources/databases/deploy.bicep b/arm/Microsoft.Sql/servers/databases/deploy.bicep similarity index 81% rename from arm/Microsoft.Sql/serversResources/databases/deploy.bicep rename to arm/Microsoft.Sql/servers/databases/deploy.bicep index 81d7cadd11..0600d851a4 100644 --- a/arm/Microsoft.Sql/serversResources/databases/deploy.bicep +++ b/arm/Microsoft.Sql/servers/databases/deploy.bicep @@ -2,7 +2,7 @@ param collation string @description('Required. The name of the database.') -param databaseName string +param name string @description('Optional. The tier or edition of the particular SKU.') param tier string @@ -26,10 +26,14 @@ param zoneRedundant bool = false param licenseType string = '' @description('Optional. The state of read-only routing.') -param readScaleOut string = 'Disabled' +@allowed([ + 'Enabled' + 'Disabled' +]) +param readScale string = 'Disabled' @description('Optional. The number of readonly secondary replicas associated with the database.') -param numberOfReplicas int = 0 +param highAvailabilityReplicaCount int = 0 @description('Optional. Minimal capacity that database will always have allocated.') param minCapacity string = '' @@ -56,7 +60,7 @@ param cuaId string = '' param requestedBackupStorageRedundancy string = '' @description('Optional. Whether or not this database is a ledger database, which means all tables in the database are ledger tables. Note: the value of this property cannot be changed after the database has been created.') -param enableSqlLedger bool = false +param isLedgerOn bool = false @description('Optional. Maintenance configuration id assigned to the database. This configuration defines the period when the maintenance updates will occur.') param maintenanceConfigurationId string = '' @@ -66,22 +70,22 @@ module pid_cuaId '.bicep/nested_cuaId.bicep' = if (!empty(cuaId)) { params: {} } -resource sqlServerDatabase 'Microsoft.Sql/servers/databases@2021-02-01-preview' = { +resource database 'Microsoft.Sql/servers/databases@2021-02-01-preview' = { location: location tags: tags - name: '${serverName}/${databaseName}' + name: '${serverName}/${name}' properties: { collation: collation maxSizeBytes: maxSizeBytes sampleName: sampleName zoneRedundant: zoneRedundant licenseType: licenseType - readScale: readScaleOut + readScale: readScale minCapacity: !empty(minCapacity) ? json(minCapacity) : 0 autoPauseDelay: !empty(autoPauseDelay) ? json(autoPauseDelay) : 0 - highAvailabilityReplicaCount: numberOfReplicas + highAvailabilityReplicaCount: highAvailabilityReplicaCount requestedBackupStorageRedundancy: any(requestedBackupStorageRedundancy) - isLedgerOn: enableSqlLedger + isLedgerOn: isLedgerOn maintenanceConfigurationId: !empty(maintenanceConfigurationId) ? maintenanceConfigurationId : null } sku: { @@ -90,6 +94,11 @@ resource sqlServerDatabase 'Microsoft.Sql/servers/databases@2021-02-01-preview' } } -output databaseName string = databaseName +@description('The name of the deployed database') +output databaseName string = database.name + +@description('The resourceId of the deployed database') +output databaseId string = database.id + +@description('The resourceGroup of the deployed database') output databaseResourceGroup string = resourceGroup().name -output serverName string = serverName diff --git a/arm/Microsoft.Sql/serversResources/databases/readme.md b/arm/Microsoft.Sql/servers/databases/readme.md similarity index 73% rename from arm/Microsoft.Sql/serversResources/databases/readme.md rename to arm/Microsoft.Sql/servers/databases/readme.md index 049e51d0a9..a470ee1224 100644 --- a/arm/Microsoft.Sql/serversResources/databases/readme.md +++ b/arm/Microsoft.Sql/servers/databases/readme.md @@ -1,4 +1,4 @@ -# AzureSQLDatabase `[Microsoft.Sql/servers/databases]` +# SQL Server Database `[Microsoft.Sql/servers/databases]` This module deploys an Azure SQL Server. @@ -15,15 +15,15 @@ This module deploys an Azure SQL Server. | `autoPauseDelay` | string | | | Optional. Time in minutes after which database is automatically paused. | | `collation` | string | | | Optional. The collation of the database. | | `cuaId` | string | | | Optional. Customer Usage Attribution id (GUID). This GUID must be previously registered | -| `databaseName` | string | | | Required. The name of the database. | -| `enableSqlLedger` | bool | | | Optional. Whether or not this database is a ledger database, which means all tables in the database are ledger tables. Note: the value of this property cannot be changed after the database has been created. | +| `highAvailabilityReplicaCount` | int | | | Optional. The number of readonly secondary replicas associated with the database. | +| `isLedgerOn` | bool | | | Optional. Whether or not this database is a ledger database, which means all tables in the database are ledger tables. Note: the value of this property cannot be changed after the database has been created. | | `licenseType` | string | | | Optional. The license type to apply for this database. | | `location` | string | `[resourceGroup().location]` | | Optional. Location for all resources. | | `maintenanceConfigurationId` | string | | | Optional. Maintenance configuration id assigned to the database. This configuration defines the period when the maintenance updates will occur. | | `maxSizeBytes` | int | | | Optional. The max size of the database expressed in bytes. | | `minCapacity` | string | | | Optional. Minimal capacity that database will always have allocated. | -| `numberOfReplicas` | int | | | Optional. The number of readonly secondary replicas associated with the database. | -| `readScaleOut` | string | `Disabled` | | Optional. The state of read-only routing. | +| `name` | string | | | Required. The name of the database. | +| `readScale` | string | `Disabled` | `[Enabled, Disabled]` | Optional. The state of read-only routing. | | `requestedBackupStorageRedundancy` | string | | `[Geo, Local, Zone, ]` | Optional. The storage account type to be used to store backups for this database. | | `sampleName` | string | | | Optional. The name of the sample schema to apply when creating this database. | | `serverName` | string | | | Required. The Name of SQL Server | @@ -51,11 +51,11 @@ Tag names and tag values can be provided as needed. A tag can be left without a ## Outputs -| Output Name | Type | -| :-- | :-- | -| `databaseName` | string | -| `databaseResourceGroup` | string | -| `serverName` | string | +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `databaseId` | string | The resourceId of the deployed database | +| `databaseName` | string | The name of the deployed database | +| `databaseResourceGroup` | string | The resourceGroup of the deployed database | ## Template references diff --git a/arm/Microsoft.Sql/servers/deploy.bicep b/arm/Microsoft.Sql/servers/deploy.bicep index fdc44bbb60..888560aade 100644 --- a/arm/Microsoft.Sql/servers/deploy.bicep +++ b/arm/Microsoft.Sql/servers/deploy.bicep @@ -9,7 +9,7 @@ param administratorLoginPassword string param location string = resourceGroup().location @description('Required. The name of the server.') -param serverName string +param name string @description('Optional. Whether or not ADS should be enabled.') param enableADS bool = false @@ -34,6 +34,9 @@ param tags object = {} @description('Optional. Customer Usage Attribution id (GUID). This GUID must be previously registered') param cuaId string = '' +@description('Optional. The databases to create in the server') +param databases array = [] + var builtInRoleNames = { 'Owner': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635') 'Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c') @@ -61,7 +64,7 @@ module pid_cuaId '.bicep/nested_cuaId.bicep' = if (!empty(cuaId)) { resource server 'Microsoft.Sql/servers@2020-02-02-preview' = { location: location - name: serverName + name: name tags: tags properties: { administratorLogin: administratorLogin @@ -106,6 +109,38 @@ module server_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in } }] +module server_databases 'databases/deploy.bicep' = [for (database, index) in databases: { + name: '${deployment().name}-db-${index}' + params: { + name: database.name + serverName: server.name + maxSizeBytes: database.maxSizeBytes + tier: database.tier + skuName: database.skuName + collation: database.collation + autoPauseDelay: contains(database, 'autoPauseDelay') ? database.autoPauseDelay : '' + isLedgerOn: contains(database, 'isLedgerOn') ? database.isLedgerOn : false + location: contains(database, 'location') ? database.location : server.location + licenseType: contains(database, 'licenseType') ? database.licenseType : '' + maintenanceConfigurationId: contains(database, 'maintenanceConfigurationId') ? database.maintenanceConfigurationId : '' + minCapacity: contains(database, 'minCapacity') ? database.minCapacity : '' + highAvailabilityReplicaCount: contains(database, 'highAvailabilityReplicaCount') ? database.highAvailabilityReplicaCount : 0 + readScale: contains(database, 'readScale') ? database.readScale : 'Disabled' + requestedBackupStorageRedundancy: contains(database, 'requestedBackupStorageRedundancy') ? database.requestedBackupStorageRedundancy : '' + sampleName: contains(database, 'sampleName') ? database.sampleName : '' + tags: contains(database, 'tags') ? database.tags : {} + zoneRedundant: contains(database, 'zoneRedundant') ? database.zoneRedundant : false + } + dependsOn: [ + server + ] +}] + +@description('The name of the deployed SQL server') output serverName string = server.name + +@description('The resourceId of the deployed SQL server') output serverResourceId string = server.id + +@description('The resourceGroup of the deployed SQL server') output serverResourceGroup string = resourceGroup().name diff --git a/arm/Microsoft.Sql/servers/readme.md b/arm/Microsoft.Sql/servers/readme.md index 72b4821bc9..04ffc4caf2 100644 --- a/arm/Microsoft.Sql/servers/readme.md +++ b/arm/Microsoft.Sql/servers/readme.md @@ -7,9 +7,10 @@ This module deploys an Azure SQL Server. | Resource Type | Api Version | | :-- | :-- | | `Microsoft.Authorization/locks` | 2016-09-01 | +| `Microsoft.Authorization/roleAssignments` | 2021-04-01-preview | | `Microsoft.Sql/servers` | 2020-02-02-preview | +| `Microsoft.Sql/servers/databases` | 2021-02-01-preview | | `Microsoft.Sql/servers/firewallRules` | 2021-02-01-preview | -| `Microsoft.Sql/servers/providers/roleAssignments` | 2021-04-01-preview | | `Microsoft.Sql/servers/securityAlertPolicies` | 2021-02-01-preview | ## Parameters @@ -20,11 +21,12 @@ This module deploys an Azure SQL Server. | `administratorLoginPassword` | secureString | | | Required. The administrator login password. | | `allowAzureIps` | bool | | | Required. Whether or not Azure IP's are allowed. | | `cuaId` | string | | | Optional. Customer Usage Attribution id (GUID). This GUID must be previously registered | +| `databases` | _[databases](databases/readme.md)_ array | `[]` | | Optional. The databases to create in the server | | `enableADS` | bool | | | Optional. Whether or not ADS should be enabled. | | `location` | string | `[resourceGroup().location]` | | Optional. Location for all resources. | | `lock` | string | `NotSpecified` | `[CanNotDelete, NotSpecified, ReadOnly]` | Optional. Specify the type of lock. | +| `name` | string | | | Required. The name of the server. | | `roleAssignments` | array | `[]` | | Optional. Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11' | -| `serverName` | string | | | Required. The name of the server. | | `tags` | object | `{object}` | | Optional. Tags of the resource. | ### Parameter Usage: `roleAssignments` @@ -75,15 +77,17 @@ Tag names and tag values can be provided as needed. A tag can be left without a ## Outputs -| Output Name | Type | -| :-- | :-- | -| `serverName` | string | -| `serverResourceGroup` | string | -| `serverResourceId` | string | +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `serverName` | string | The name of the deployed SQL server | +| `serverResourceGroup` | string | The resourceGroup of the deployed SQL server | +| `serverResourceId` | string | The resourceId of the deployed SQL server | ## Template references - [Locks](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2016-09-01/locks) +- [Roleassignments](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2021-04-01-preview/roleAssignments) - [Servers](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2020-02-02-preview/servers) +- [Servers/Databases](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-02-01-preview/servers/databases) - [Servers/Firewallrules](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-02-01-preview/servers/firewallRules) - [Servers/Securityalertpolicies](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-02-01-preview/servers/securityAlertPolicies) diff --git a/arm/Microsoft.Sql/serversResources/databases/.parameters/parameters.json b/arm/Microsoft.Sql/serversResources/databases/.parameters/parameters.json deleted file mode 100644 index 3424e4c58a..0000000000 --- a/arm/Microsoft.Sql/serversResources/databases/.parameters/parameters.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "collation": { - "value": "SQL_Latin1_General_CP1_CI_AS" - }, - "databaseName": { - "value": "sxx-az-sqldb-x-001" - }, - "tier": { - "value": "GeneralPurpose" - }, - "skuName": { - "value": "GP_Gen5_2" - }, - "maxSizeBytes": { - "value": 34359738368 - }, - "serverName": { - "value": "sxx-az-sqlsrv-x-001" - }, - "zoneRedundant": { - "value": false - }, - "licenseType": { - "value": "LicenseIncluded" - }, - "location": { - "value": "westeurope" - } - } -}