{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.1", "parameters": { "sqlDatabaseEditionTierDtuCapacity": { "type": "string", "defaultValue": "Basic-Basic-5-2", "allowedValues": [ "Basic-Basic-5-2", "Standard-S0-10-250", "Standard-S1-20-250", "Standard-S2-50-250", "Standard-S3-100-250", "Standard-S4-200-250", "Standard-S6-400-250", "Standard-S7-800-250", "Standard-S9-1600-250", "Standard-S12-3000-250", "Premium-P1-125-500", "Premium-P2-250-500", "Premium-P4-500-500" , "Premium-P6-1000-500", "Premium-P11-1750-500-1024", "Premium-P15-4000-1024", "GeneralPurpose-GP_Gen5_2-2-250", "GeneralPurpose-GP_S_Gen5_2-2-250" ], "metadata": { "description": "Describes the database Edition, Tier, Dtu, Gigabytes (Edition-Tier-Dtu-Gigabytes)" } }, "sqlServerName": { "type": "string", "metadata": { "description": "The name of the sql server. It has to be unique." } }, "sqlDatabaseName": { "type": "string", "metadata": { "description": "The name of the sql databaseName. It has to be unique." } }, "sqlAdministratorLogin": { "type": "string", "metadata": { "description": "The admin user of the SQL Server" } }, "sqlAdministratorLoginPassword": { "type": "securestring", "metadata": { "description": "The password of the admin user of the SQL Server" } }, "BlazorWebsiteName": { "type": "string", "metadata": { "description": "The name of the website. It has to be unique." } }, "BlazorSKU": { "type": "string", "allowedValues": [ "F1", "D1", "B1", "B2", "B3", "S1", "S2", "S3", "P1", "P2", "P3", "P4" ], "defaultValue": "B1" }, "BlazorSKUCapacity": { "type": "int", "defaultValue": 1, "maxValue": 3, "minValue": 1, "metadata": { "description": "Describes plan's instance count" } }, "location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "Location for all resources." } } }, "variables": { "hostingPlanName": "[concat('Oqtane-hostingplan-', uniqueString(resourceGroup().id))]", "databaseCollation": "SQL_Latin1_General_CP1_CI_AS", "databaseEditionTierDtuCapacity": "[split(parameters('sqlDatabaseEditionTierDtuCapacity'),'-')]", "databaseEdition": "[variables('databaseEditionTierDtuCapacity')[0]]", "databaseTier": "[variables('databaseEditionTierDtuCapacity')[1]]", "databaseDtu": "[if(greater(length(variables('databaseEditionTierDtuCapacity')), 2), variables('databaseEditionTierDtuCapacity')[2], '')]", "databaseMaxSizeGigaBytes":"[if(greater(length(variables('databaseEditionTierDtuCapacity')), 3), variables('databaseEditionTierDtuCapacity')[3], '')]", "databaseServerlessTiers": [ "GP_S_Gen5_2" ] }, "resources": [ { "type": "Microsoft.Sql/servers", "apiVersion": "2021-11-01", "name": "[parameters('sqlServerName')]", "location": "[parameters('location')]", "tags": { "displayName": "SQL Server" }, "properties": { "administratorLogin": "[parameters('sqlAdministratorLogin')]", "administratorLoginPassword": "[parameters('sqlAdministratorLoginPassword')]", "version": "12.0" } }, { "type": "Microsoft.Sql/servers/databases", "apiVersion": "2021-11-01", "name": "[format('{0}/{1}', parameters('sqlServerName'), parameters('sqlDatabaseName'))]", "location": "[parameters('location')]", "tags": { "displayName": "Database" }, "sku": { "name": "[if(equals(variables('databaseEdition'), 'GeneralPurpose'), variables('databaseTier'), variables('databaseEdition'))]", "tier": "[variables('databaseEdition')]", "capacity": "[if(equals(variables('databaseDtu'), ''), json('null'), int(variables('databaseDtu')))]" }, "kind": "[concat('v12.0,user,vcore',if(contains(variables('databaseServerlessTiers'),variables('databaseTier')),',serverless',''))]", "properties": { "edition": "[variables('databaseEdition')]", "collation": "[variables('databaseCollation')]", "maxSizeBytes": "[if(equals(variables('databaseMaxSizeGigaBytes'), ''), json('null'), mul(mul(mul(int(variables('databaseMaxSizeGigaBytes')),1024),1024),1024))]", "requestedServiceObjectiveName": "[variables('databaseTier')]" }, "dependsOn": [ "[resourceId('Microsoft.Sql/servers', parameters('sqlserverName'))]" ] }, { "type": "Microsoft.Sql/servers/firewallRules", "apiVersion": "2021-11-01", "name": "[format('{0}/{1}', parameters('sqlServerName'), 'AllowAllWindowsAzureIps')]", "properties": { "endIpAddress": "0.0.0.0", "startIpAddress": "0.0.0.0" }, "dependsOn": [ "[resourceId('Microsoft.Sql/servers', parameters('sqlServerName'))]" ] }, { "name": "[variables('hostingPlanName')]", "type": "Microsoft.Web/serverfarms", "location": "[resourceGroup().location]", "apiVersion": "2022-09-01", "dependsOn": [], "tags": { "displayName": "Blazor" }, "sku": { "name": "[parameters('BlazorSKU')]", "capacity": "[parameters('BlazorSKUCapacity')]" }, "properties": { "name": "[variables('hostingPlanName')]", "numberOfWorkers": 1 } }, { "apiVersion": "2018-02-01", "name": "[parameters('BlazorWebsiteName')]", "type": "Microsoft.Web/sites", "location": "[parameters('location')]", "dependsOn": [ "[variables('hostingPlanName')]" ], "tags": { "[concat('hidden-related:', resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName')))]": "empty", "displayName": "Website" }, "properties": { "name": "[parameters('BlazorWebsiteName')]", "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]", "siteConfig": { "webSocketsEnabled": true, "netFrameworkVersion": "v5.0" } }, "resources": [ { "type": "sourcecontrols", "apiVersion": "2018-02-01", "name": "web", "location": "[parameters('location')]", "dependsOn": [ "[resourceId('Microsoft.Web/sites', parameters('BlazorWebsiteName'))]" //"[resourceId('Microsoft.Web/Sites/config', parameters('BlazorWebsiteName'), 'connectionstrings')]" ], "properties": { "RepoUrl": "https://github.com/oqtane/oqtane.framework.git", "branch": "master", "IsManualIntegration": true } } ] } ] }