{ "$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#", "handler": "Microsoft.Compute.MultiVm", "version": "0.1.2-preview", "parameters": { "basics": [ {} ], "steps": [ { "name": "vmCredentials", "label": "Azure Managed Application", "bladeTitle": "Application credentials", "subLabel": { "preValidation": "Provide VM credentials", "postValidation": "Great - let's move on!" }, "elements": [ { "name": "adminUserName", "type": "Microsoft.Compute.UserNameTextBox", "label": "Admin username", "osPlatform": "Windows", "constraints": { "required": true }, "toolTip": "Provide admin username for the virtual machine" }, { "name": "vmPwd", "type": "Microsoft.Compute.CredentialsCombo", "label": { "password": "Password", "confirmPassword": "Confirm password" }, "osPlatform": "Windows", "constraints": { "customPasswordRegex": "^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$", "customValidationMessage": "The password must contain at least 8 characters", "required": true }, "options": { "hideConfirmation": false }, "toolTip": { "password": "Provide admin password for the virtual machine" }, "visible": true } ] }, { "name": "appSettings", "label": "Application settings", "subLabel": { "preValidation": "Configure the managed application", "postValidation": "Done!" }, "bladeTitle": "Settings", "elements": [ { "name": "vmName", "type": "Microsoft.Common.TextBox", "label": "Application name", "toolTip": "Assign a name to your Azure application", "defaultValue": "", "constraints": { "required": true, "regex": "[a-z][a-z0-9-]{2,5}[a-z0-9]$", "validationMessage": "Must be 3-5 characters." } }, { "name": "trialOrProd", "type": "Microsoft.Common.OptionsGroup", "label": "Trial or Production?", "defaultValue": "Trial", "toolTip": "For trial, cost will be minimal. For prod, resources are optimized.", "constraints": { "allowedValues": [ { "label": "Trial", "value": "Trial" }, { "label": "Production", "value": "Production" } ] }, "visible": true }, { "name": "virtualNetwork", "type": "Microsoft.Network.VirtualNetworkCombo", "label": { "virtualNetwork": "Virtual network", "subnets": "Subnets" }, "toolTip": { "virtualNetwork": "Virtual Network Name", "subnets": "Subnet requried for Azure Application" }, "defaultValue": { "name": "app-vnet", "addressPrefixSize": "/22" }, "constraints": { "minAddressPrefixSize": "/22" }, "subnets": { "subnet1": { "label": "Subnet name", "defaultValue": { "name": "app-subnet", "addressPrefixSize": "/24" }, "constraints": { "minAddressPrefixSize": "/24", "minAddressCount": 12, "requireContiguousAddresses": false } } } } ] } ], "outputs": { "vmName": "[steps('appSettings').vmName]", "trialOrProduction": "[steps('appSettings').trialOrProd]", "userName": "[steps('vmCredentials').adminUsername]", "pwd": "[steps('vmCredentials').vmPwd.password]", "applicationResourceName": "[steps('appSettings').vmName]", "subnetName": "[steps('appSettings').virtualNetwork.subnets.subnet1.name]", "subnetAddressPrefix": "[steps('appSettings').virtualNetwork.subnets.subnet1.addressPrefix]", "vNetAddressPrefix": "[steps('appSettings').virtualNetwork.addressPrefix]", "virtualNetworkName": "[steps('appSettings').virtualNetwork.name]", "vNetRgName": "[steps('appSettings').virtualNetwork.resourceGroup]" } } }