diff --git a/schemas/2019-10-01-preview/Microsoft.Migrate.json b/schemas/2019-10-01-preview/Microsoft.Migrate.json index 69d60e191b..dc1697d603 100644 --- a/schemas/2019-10-01-preview/Microsoft.Migrate.json +++ b/schemas/2019-10-01-preview/Microsoft.Migrate.json @@ -1051,4 +1051,4 @@ "description": "Defines the virtual network resource settings." } } -} \ No newline at end of file +} diff --git a/schemas/2021-01-01/Microsoft.Migrate.json b/schemas/2021-01-01/Microsoft.Migrate.json new file mode 100644 index 0000000000..8a3b6a0dbf --- /dev/null +++ b/schemas/2021-01-01/Microsoft.Migrate.json @@ -0,0 +1,1054 @@ +{ + "id": "https://schema.management.azure.com/schemas/2021-01-01/Microsoft.Migrate.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Migrate", + "description": "Microsoft Migrate Resource Types", + "resourceDefinitions": { + "moveCollections": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2021-01-01" + ] + }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the MSI properties of the Move Collection." + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives." + }, + "name": { + "type": "string", + "description": "The Move Collection Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/MoveCollectionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the move collection properties." + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/moveCollections_moveResources_childResource" + } + ] + } + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Migrate/moveCollections" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Migrate/moveCollections" + }, + "moveCollections_moveResources": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2021-01-01" + ] + }, + "name": { + "type": "string", + "description": "The Move Resource Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/MoveResourceProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the move resource properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Migrate/moveCollections/moveResources" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Migrate/moveCollections/moveResources" + } + }, + "definitions": { + "AvailabilitySetResourceSettings": { + "type": "object", + "properties": { + "faultDomain": { + "oneOf": [ + { + "type": "integer", + "minimum": 1 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the target fault domain." + }, + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Compute/availabilitySets" + ] + }, + "updateDomain": { + "oneOf": [ + { + "type": "integer", + "minimum": 1, + "maximum": 20 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the target update domain." + } + }, + "required": [ + "resourceType" + ], + "description": "Gets or sets the availability set resource settings." + }, + "DiskEncryptionSetResourceSettings": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Compute/diskEncryptionSets" + ] + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the disk encryption set resource settings." + }, + "Identity": { + "type": "object", + "properties": { + "principalId": { + "type": "string", + "description": "Gets or sets the principal id." + }, + "tenantId": { + "type": "string", + "description": "Gets or sets the tenant id." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "None", + "SystemAssigned", + "UserAssigned" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "description": "Defines the MSI properties of the Move Collection." + }, + "KeyVaultResourceSettings": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.KeyVault/vaults" + ] + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the key vault resource settings." + }, + "LBBackendAddressPoolResourceSettings": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the backend address pool name." + } + }, + "description": "Defines load balancer backend address pool properties." + }, + "LBFrontendIPConfigurationResourceSettings": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the frontend IP configuration name." + }, + "privateIpAddress": { + "type": "string", + "description": "Gets or sets the IP address of the Load Balancer.This is only specified if a specific\r\nprivate IP address shall be allocated from the subnet specified in subnetRef." + }, + "privateIpAllocationMethod": { + "type": "string", + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic)." + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/SubnetReference" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines reference to subnet." + }, + "zones": { + "type": "string", + "description": "Gets or sets the csv list of zones." + } + }, + "description": "Defines load balancer frontend IP configuration properties." + }, + "LoadBalancerBackendAddressPoolReference": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets the name of the proxy resource on the target side." + }, + "sourceArmResourceId": { + "type": "string", + "description": "Gets the ARM resource ID of the tracked resource being referenced." + } + }, + "required": [ + "sourceArmResourceId" + ], + "description": "Defines reference to load balancer backend address pools." + }, + "LoadBalancerNatRuleReference": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets the name of the proxy resource on the target side." + }, + "sourceArmResourceId": { + "type": "string", + "description": "Gets the ARM resource ID of the tracked resource being referenced." + } + }, + "required": [ + "sourceArmResourceId" + ], + "description": "Defines reference to load balancer NAT rules." + }, + "LoadBalancerResourceSettings": { + "type": "object", + "properties": { + "backendAddressPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/LBBackendAddressPoolResourceSettings" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the backend address pools of the load balancer." + }, + "frontendIPConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/LBFrontendIPConfigurationResourceSettings" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the frontend IP configurations of the load balancer." + }, + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Network/loadBalancers" + ] + }, + "sku": { + "type": "string", + "description": "Gets or sets load balancer sku (Basic/Standard)." + }, + "zones": { + "type": "string", + "description": "Gets or sets the csv list of zones common for all frontend IP configurations. Note this is given\r\n precedence only if frontend IP configurations settings are not present." + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the load balancer resource settings." + }, + "MoveCollectionProperties": { + "type": "object", + "properties": { + "provisioningState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Succeeded", + "Updating", + "Creating", + "Failed" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "sourceRegion": { + "type": "string", + "description": "Gets or sets the source region." + }, + "targetRegion": { + "type": "string", + "description": "Gets or sets the target region." + } + }, + "required": [ + "sourceRegion", + "targetRegion" + ], + "description": "Defines the move collection properties." + }, + "moveCollections_moveResources_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2021-01-01" + ] + }, + "name": { + "type": "string", + "description": "The Move Resource Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/MoveResourceProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the move resource properties." + }, + "type": { + "type": "string", + "enum": [ + "moveResources" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Migrate/moveCollections/moveResources" + }, + "MoveResourceDependencyOverride": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Gets or sets the ARM ID of the dependent resource." + }, + "targetId": { + "type": "string", + "description": "Gets or sets the resource ARM id of either the MoveResource or the resource ARM ID of\r\nthe dependent resource." + } + }, + "description": "Defines the dependency override of the move resource." + }, + "MoveResourceProperties": { + "type": "object", + "properties": { + "dependsOnOverrides": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/MoveResourceDependencyOverride" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the move resource dependencies overrides." + }, + "existingTargetId": { + "type": "string", + "description": "Gets or sets the existing target ARM Id of the resource." + }, + "provisioningState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Succeeded", + "Updating", + "Creating", + "Failed" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "resourceSettings": { + "oneOf": [ + { + "$ref": "#/definitions/ResourceSettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the resource settings." + }, + "sourceId": { + "type": "string", + "description": "Gets or sets the Source ARM Id of the resource." + } + }, + "required": [ + "sourceId" + ], + "description": "Defines the move resource properties." + }, + "NetworkInterfaceResourceSettings": { + "type": "object", + "properties": { + "enableAcceleratedNetworking": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets a value indicating whether accelerated networking is enabled." + }, + "ipConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/NicIpConfigurationResourceSettings" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the IP configurations of the NIC." + }, + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Network/networkInterfaces" + ] + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the network interface resource settings." + }, + "NetworkSecurityGroupResourceSettings": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Network/networkSecurityGroups" + ] + }, + "securityRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/NsgSecurityRule" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets Security rules of network security group." + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the NSG resource settings." + }, + "NicIpConfigurationResourceSettings": { + "type": "object", + "properties": { + "loadBalancerBackendAddressPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/LoadBalancerBackendAddressPoolReference" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the references of the load balancer backend address pools." + }, + "loadBalancerNatRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/LoadBalancerNatRuleReference" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the references of the load balancer NAT rules." + }, + "name": { + "type": "string", + "description": "Gets or sets the IP configuration name." + }, + "primary": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets a value indicating whether this IP configuration is the primary." + }, + "privateIpAddress": { + "type": "string", + "description": "Gets or sets the private IP address of the network interface IP Configuration." + }, + "privateIpAllocationMethod": { + "type": "string", + "description": "Gets or sets the private IP address allocation method." + }, + "publicIp": { + "oneOf": [ + { + "$ref": "#/definitions/PublicIpReference" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines reference to a public IP." + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/SubnetReference" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines reference to subnet." + } + }, + "description": "Defines NIC IP configuration properties." + }, + "NsgReference": { + "type": "object", + "properties": { + "sourceArmResourceId": { + "type": "string", + "description": "Gets the ARM resource ID of the tracked resource being referenced." + } + }, + "required": [ + "sourceArmResourceId" + ], + "description": "Defines reference to NSG." + }, + "NsgSecurityRule": { + "type": "object", + "properties": { + "access": { + "type": "string", + "description": "Gets or sets whether network traffic is allowed or denied.\r\nPossible values are “Allow” and “Deny”." + }, + "description": { + "type": "string", + "description": "Gets or sets a description for this rule. Restricted to 140 chars." + }, + "destinationAddressPrefix": { + "type": "string", + "description": "Gets or sets destination address prefix. CIDR or source IP range.\r\n A “*” can also be used to match all source IPs. Default tags such\r\nas ‘VirtualNetwork’, ‘AzureLoadBalancer’ and ‘Internet’ can also be used." + }, + "destinationPortRange": { + "type": "string", + "description": "Gets or sets Destination Port or Range. Integer or range between\r\n0 and 65535. A “*” can also be used to match all ports." + }, + "direction": { + "type": "string", + "description": "Gets or sets the direction of the rule.InBound or Outbound. The\r\ndirection specifies if rule will be evaluated on incoming or outgoing traffic." + }, + "name": { + "type": "string", + "description": "Gets or sets the Security rule name." + }, + "priority": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the priority of the rule. The value can be between\r\n100 and 4096. The priority number must be unique for each rule in the collection.\r\nThe lower the priority number, the higher the priority of the rule." + }, + "protocol": { + "type": "string", + "description": "Gets or sets Network protocol this rule applies to. Can be Tcp, Udp or All(*)." + }, + "sourceAddressPrefix": { + "type": "string", + "description": "Gets or sets source address prefix. CIDR or source IP range. A\r\n“*” can also be used to match all source IPs. Default tags such as ‘VirtualNetwork’,\r\n‘AzureLoadBalancer’ and ‘Internet’ can also be used. If this is an ingress\r\nrule, specifies where network traffic originates from." + }, + "sourcePortRange": { + "type": "string", + "description": "Gets or sets Source Port or Range. Integer or range between 0 and\r\n65535. A “*” can also be used to match all ports." + } + }, + "description": "Security Rule data model for Network Security Groups." + }, + "PublicIPAddressResourceSettings": { + "type": "object", + "properties": { + "domainNameLabel": { + "type": "string", + "description": "Gets or sets the domain name label." + }, + "fqdn": { + "type": "string", + "description": "Gets or sets the fully qualified domain name." + }, + "publicIpAllocationMethod": { + "type": "string", + "description": "Gets or sets public IP allocation method." + }, + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Network/publicIPAddresses" + ] + }, + "sku": { + "type": "string", + "description": "Gets or sets public IP sku." + }, + "zones": { + "type": "string", + "description": "Gets or sets public IP zones." + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the public IP address resource settings." + }, + "PublicIpReference": { + "type": "object", + "properties": { + "sourceArmResourceId": { + "type": "string", + "description": "Gets the ARM resource ID of the tracked resource being referenced." + } + }, + "required": [ + "sourceArmResourceId" + ], + "description": "Defines reference to a public IP." + }, + "ResourceGroupResourceSettings": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "enum": [ + "resourceGroups" + ] + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the resource group resource settings." + }, + "ResourceSettings": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineResourceSettings" + }, + { + "$ref": "#/definitions/AvailabilitySetResourceSettings" + }, + { + "$ref": "#/definitions/VirtualNetworkResourceSettings" + }, + { + "$ref": "#/definitions/NetworkInterfaceResourceSettings" + }, + { + "$ref": "#/definitions/NetworkSecurityGroupResourceSettings" + }, + { + "$ref": "#/definitions/LoadBalancerResourceSettings" + }, + { + "$ref": "#/definitions/SqlServerResourceSettings" + }, + { + "$ref": "#/definitions/SqlElasticPoolResourceSettings" + }, + { + "$ref": "#/definitions/SqlDatabaseResourceSettings" + }, + { + "$ref": "#/definitions/ResourceGroupResourceSettings" + }, + { + "$ref": "#/definitions/PublicIPAddressResourceSettings" + }, + { + "$ref": "#/definitions/KeyVaultResourceSettings" + }, + { + "$ref": "#/definitions/DiskEncryptionSetResourceSettings" + } + ], + "properties": { + "targetResourceName": { + "type": "string", + "description": "Gets or sets the target Resource name." + } + }, + "required": [ + "targetResourceName" + ], + "description": "Gets or sets the resource settings." + }, + "SqlDatabaseResourceSettings": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Sql/servers/databases" + ] + }, + "zoneRedundant": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enable", + "Disable" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the Sql Database resource settings." + }, + "SqlElasticPoolResourceSettings": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Sql/servers/elasticPools" + ] + }, + "zoneRedundant": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enable", + "Disable" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the Sql ElasticPool resource settings." + }, + "SqlServerResourceSettings": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Sql/servers" + ] + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the SQL Server resource settings." + }, + "SubnetReference": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets the name of the proxy resource on the target side." + }, + "sourceArmResourceId": { + "type": "string", + "description": "Gets the ARM resource ID of the tracked resource being referenced." + } + }, + "required": [ + "sourceArmResourceId" + ], + "description": "Defines reference to subnet." + }, + "SubnetResourceSettings": { + "type": "object", + "properties": { + "addressPrefix": { + "type": "string", + "description": "Gets or sets address prefix for the subnet." + }, + "name": { + "type": "string", + "description": "Gets or sets the Subnet name." + }, + "networkSecurityGroup": { + "oneOf": [ + { + "$ref": "#/definitions/NsgReference" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines reference to NSG." + } + }, + "description": "Defines the virtual network subnets resource settings." + }, + "VirtualMachineResourceSettings": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Compute/virtualMachines" + ] + }, + "targetAvailabilitySetId": { + "type": "string", + "description": "Gets or sets the target availability set id for virtual machines not in an availability set at source." + }, + "targetAvailabilityZone": { + "oneOf": [ + { + "type": "string", + "enum": [ + "1", + "2", + "3", + "NA" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the target availability zone." + }, + "targetVmSize": { + "type": "string", + "description": "Gets or sets the target virtual machine size." + } + }, + "required": [ + "resourceType" + ], + "description": "Gets or sets the virtual machine resource settings." + }, + "VirtualNetworkResourceSettings": { + "type": "object", + "properties": { + "addressSpace": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the address prefixes for the virtual network." + }, + "dnsServers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets DHCPOptions that contains an array of DNS servers available to VMs\r\ndeployed in the virtual network." + }, + "enableDdosProtection": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets a value indicating whether gets or sets whether the\r\nDDOS protection should be switched on." + }, + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Network/virtualNetworks" + ] + }, + "subnets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubnetResourceSettings" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets List of subnets in a VirtualNetwork." + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the virtual network resource settings." + } + } +}