diff --git a/schemas/2015-01-01/Microsoft.Authorization.json b/schemas/2015-01-01/Microsoft.Authorization.json index 947bc3d42a..b1f0494ccc 100644 --- a/schemas/2015-01-01/Microsoft.Authorization.json +++ b/schemas/2015-01-01/Microsoft.Authorization.json @@ -1,70 +1,157 @@ { - "id": "https://schema.management.azure.com/schemas/2015-01-01/Microsoft.Authorization.json", + "id": "https://schema.management.azure.com/schemas/2015-01-01/Microsoft.Authorization.json#", "$schema": "http://json-schema.org/draft-04/schema#", "title": "Microsoft.Authorization", - "description": "Microsoft Microsoft.Authorization Resource Types", + "description": "Microsoft Authorization Resource Types", "resourceDefinitions": { "locks": { "type": "object", "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2015-01-01" + ] + }, + "name": { + "type": "string", + "description": "The lock name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ManagementLockProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The management lock properties." + }, "type": { + "type": "string", "enum": [ "Microsoft.Authorization/locks" ] - }, + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/locks" + } + }, + "subscription_resourceDefinitions": { + "locks": { + "type": "object", + "properties": { "apiVersion": { + "type": "string", "enum": [ "2015-01-01" ] }, "name": { "type": "string", - "minLength": 1, - "maxLength": 64, - "description": "Name of the lock" - }, - "dependsOn": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Collection of resources this resource depends on" + "description": "The name of lock." }, "properties": { - "type": "object", - "properties": { - "level": { - "oneOf": [ - { - "enum": [ - "CannotDelete", - "ReadOnly" - ] - }, - { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } - ] - , - "description": "Microsoft.Authorization/locks: level - specifies the type of lock to apply to the scope. CanNotDelete allows modification but prevents deletion, ReadOnly prevents modification or deletion." + "oneOf": [ + { + "$ref": "#/definitions/ManagementLockProperties" }, - "notes": { - "type": "string", - "minLength": 1, - "maxLength": 512, - "description": "Microsoft.Authorization/locks: notes - user defined notes for the lock" + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } - }, - "required": [ - "level" + ], + "description": "The management lock properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/locks" ] } }, "required": [ + "apiVersion", "name", - "type", + "properties", + "type" + ], + "description": "Microsoft.Authorization/locks" + } + }, + "extension_resourceDefinitions": { + "locks": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2015-01-01" + ] + }, + "name": { + "type": "string", + "description": "The name of lock." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ManagementLockProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The management lock properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/locks" + ] + } + }, + "required": [ "apiVersion", - "properties" + "name", + "properties", + "type" ], - "description": "Microsoft.Authorization/locks resource" + "description": "Microsoft.Authorization/locks" + } + }, + "definitions": { + "ManagementLockProperties": { + "type": "object", + "properties": { + "level": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "CanNotDelete", + "ReadOnly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The lock level of the management lock." + }, + "notes": { + "type": "string", + "description": "The notes of the management lock." + } + }, + "description": "The management lock properties." } } -} \ No newline at end of file +} diff --git a/schemas/2015-10-01-preview/Microsoft.Authorization.json b/schemas/2015-10-01-preview/Microsoft.Authorization.json new file mode 100644 index 0000000000..f477dd556b --- /dev/null +++ b/schemas/2015-10-01-preview/Microsoft.Authorization.json @@ -0,0 +1,148 @@ +{ + "id": "https://schema.management.azure.com/schemas/2015-10-01-preview/Microsoft.Authorization.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Authorization", + "description": "Microsoft Authorization Resource Types", + "resourceDefinitions": {}, + "subscription_resourceDefinitions": { + "policydefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2015-10-01-preview" + ] + }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policydefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policydefinitions" + } + }, + "unknown_resourceDefinitions": { + "policyassignments": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2015-10-01-preview" + ] + }, + "id": { + "type": "string", + "description": "The ID of the policy assignment." + }, + "name": { + "type": "string", + "description": "The name of the policy assignment." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyAssignmentProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy assignment properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyassignments" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyassignments" + } + }, + "definitions": { + "PolicyAssignmentProperties": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the policy assignment." + }, + "policyDefinitionId": { + "type": "string", + "description": "The ID of the policy definition." + }, + "scope": { + "type": "string", + "description": "The scope for the policy assignment." + } + }, + "description": "The policy assignment properties." + }, + "PolicyDefinitionProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The policy definition description." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy definition." + }, + "policyRule": { + "type": "object", + "properties": {}, + "description": "The policy rule." + }, + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "BuiltIn", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." + } + }, + "description": "The policy definition properties." + } + } +} diff --git a/schemas/2015-11-01/Microsoft.Authorization.json b/schemas/2015-11-01/Microsoft.Authorization.json new file mode 100644 index 0000000000..dc556d460e --- /dev/null +++ b/schemas/2015-11-01/Microsoft.Authorization.json @@ -0,0 +1,128 @@ +{ + "id": "https://schema.management.azure.com/schemas/2015-11-01/Microsoft.Authorization.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Authorization", + "description": "Microsoft Authorization Resource Types", + "resourceDefinitions": {}, + "subscription_resourceDefinitions": { + "policydefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2015-11-01" + ] + }, + "name": { + "type": "string", + "description": "The policy definition name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Policy definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policydefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policydefinitions" + } + }, + "unknown_resourceDefinitions": { + "policyAssignments": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2015-11-01" + ] + }, + "name": { + "type": "string", + "description": "Policy assignment name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyAssignmentProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Policy Assignment properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyAssignments" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyAssignments" + } + }, + "definitions": { + "PolicyAssignmentProperties": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "Gets or sets the policy assignment display name." + }, + "policyDefinitionId": { + "type": "string", + "description": "Gets or sets the policy definition Id." + }, + "scope": { + "type": "string", + "description": "Gets or sets the policy assignment scope." + } + }, + "description": "Policy Assignment properties." + }, + "PolicyDefinitionProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Gets or sets the policy definition description." + }, + "displayName": { + "type": "string", + "description": "Gets or sets the policy definition display name." + }, + "policyRule": { + "type": "object", + "properties": {}, + "description": "The policy rule json." + } + }, + "description": "Policy definition properties." + } + } +} diff --git a/schemas/2015-11-01/Microsoft.Resources.json b/schemas/2015-11-01/Microsoft.Resources.json index 406b159134..8fcfb86f2b 100644 --- a/schemas/2015-11-01/Microsoft.Resources.json +++ b/schemas/2015-11-01/Microsoft.Resources.json @@ -133,4 +133,4 @@ "description": "Entity representing the reference to the template." } } -} \ No newline at end of file +} diff --git a/schemas/2016-02-01/Microsoft.Resources.json b/schemas/2016-02-01/Microsoft.Resources.json index 1a2419f011..4cd8b2b66a 100644 --- a/schemas/2016-02-01/Microsoft.Resources.json +++ b/schemas/2016-02-01/Microsoft.Resources.json @@ -155,4 +155,4 @@ "description": "Entity representing the reference to the template." } } -} \ No newline at end of file +} diff --git a/schemas/2016-04-01/Microsoft.Authorization.json b/schemas/2016-04-01/Microsoft.Authorization.json new file mode 100644 index 0000000000..8401273704 --- /dev/null +++ b/schemas/2016-04-01/Microsoft.Authorization.json @@ -0,0 +1,148 @@ +{ + "id": "https://schema.management.azure.com/schemas/2016-04-01/Microsoft.Authorization.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Authorization", + "description": "Microsoft Authorization Resource Types", + "resourceDefinitions": {}, + "subscription_resourceDefinitions": { + "policydefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policydefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policydefinitions" + } + }, + "unknown_resourceDefinitions": { + "policyassignments": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "The ID of the policy assignment." + }, + "name": { + "type": "string", + "description": "The name of the policy assignment." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyAssignmentProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy assignment properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyassignments" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyassignments" + } + }, + "definitions": { + "PolicyAssignmentProperties": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the policy assignment." + }, + "policyDefinitionId": { + "type": "string", + "description": "The ID of the policy definition." + }, + "scope": { + "type": "string", + "description": "The scope for the policy assignment." + } + }, + "description": "The policy assignment properties." + }, + "PolicyDefinitionProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The policy definition description." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy definition." + }, + "policyRule": { + "type": "object", + "properties": {}, + "description": "The policy rule." + }, + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "BuiltIn", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." + } + }, + "description": "The policy definition properties." + } + } +} diff --git a/schemas/2016-07-01/Microsoft.Resources.json b/schemas/2016-07-01/Microsoft.Resources.json index 17b4f23270..de0360e2fc 100644 --- a/schemas/2016-07-01/Microsoft.Resources.json +++ b/schemas/2016-07-01/Microsoft.Resources.json @@ -155,4 +155,4 @@ "description": "Entity representing the reference to the template." } } -} \ No newline at end of file +} diff --git a/schemas/2016-09-01-preview/Microsoft.Solutions.json b/schemas/2016-09-01-preview/Microsoft.Solutions.json index 855b34c845..a958fa6fe4 100644 --- a/schemas/2016-09-01-preview/Microsoft.Solutions.json +++ b/schemas/2016-09-01-preview/Microsoft.Solutions.json @@ -7,18 +7,37 @@ "applianceDefinitions": { "type": "object", "properties": { - "type": { - "type": "string", - "enum": [ - "Microsoft.Solutions/applianceDefinitions" - ] - }, "apiVersion": { "type": "string", "enum": [ "2016-09-01-preview" ] }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Identity for the resource." + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "managedBy": { + "type": "string", + "description": "ID of the resource that manages this resource." + }, + "name": { + "type": "string", + "minLength": 3, + "maxLength": 64, + "description": "The name of the appliance definition." + }, "properties": { "oneOf": [ { @@ -29,30 +48,105 @@ } ], "description": "The appliance definition properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/Sku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SKU for the resource." + }, + "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.Solutions/applianceDefinitions" + ] } }, "required": [ - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], "description": "Microsoft.Solutions/applianceDefinitions" }, "appliances": { "type": "object", "properties": { - "type": { - "type": "string", - "enum": [ - "Microsoft.Solutions/appliances" - ] - }, "apiVersion": { "type": "string", "enum": [ "2016-09-01-preview" ] }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Identity for the resource." + }, + "kind": { + "oneOf": [ + { + "type": "string", + "pattern": "^[-\\w\\._,\\(\\)]+$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The kind of the appliance. Allowed values are MarketPlace and ServiceCatalog." + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "managedBy": { + "type": "string", + "description": "ID of the resource that manages this resource." + }, + "name": { + "type": "string", + "minLength": 3, + "maxLength": 64, + "description": "The name of the appliance." + }, + "plan": { + "oneOf": [ + { + "$ref": "#/definitions/Plan" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Plan for the appliance." + }, "properties": { "oneOf": [ { @@ -64,34 +158,44 @@ ], "description": "The appliance properties." }, - "plan": { + "sku": { "oneOf": [ { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/resourcePlan" + "$ref": "#/definitions/Sku" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The plan information." + "description": "SKU for the resource." }, - "kind": { + "tags": { "oneOf": [ { - "type": "string", - "pattern": "^[-\\w\\._,\\(\\)]+$" + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The kind of the appliance. Allowed values are MarketPlace and ServiceCatalog." + "description": "Resource tags" + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Solutions/appliances" + ] } }, "required": [ - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], "description": "Microsoft.Solutions/appliances" } @@ -104,17 +208,24 @@ "type": "string", "description": "The appliance artifact name." }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Template", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The appliance artifact type." + }, "uri": { "type": "string", "description": "The appliance artifact blob uri." - }, - "type": { - "type": "string", - "enum": [ - "Template", - "Custom" - ], - "description": "The the appliance artifact type." } }, "description": "Appliance artifact." @@ -122,25 +233,19 @@ "ApplianceDefinitionProperties": { "type": "object", "properties": { - "lockLevel": { + "artifacts": { "oneOf": [ { - "type": "string", - "enum": [ - "CanNotDelete", - "ReadOnly", - "None" - ] + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceArtifact" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The appliance lock level." - }, - "displayName": { - "type": "string", - "description": "The appliance definition display name." + "description": "The collection of appliance artifacts. The portal will use the files specified as artifacts to construct the user experience of creating an appliance from an appliance definition." }, "authorizations": { "oneOf": [ @@ -156,23 +261,29 @@ ], "description": "The appliance provider authorizations." }, - "artifacts": { + "description": { + "type": "string", + "description": "The appliance definition description." + }, + "displayName": { + "type": "string", + "description": "The appliance definition display name." + }, + "lockLevel": { "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/definitions/ApplianceArtifact" - } + "type": "string", + "enum": [ + "CanNotDelete", + "ReadOnly", + "None" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The collection of appliance artifacts. The portal will use the files specified as artifacts to construct the user experience of creating an appliance from an appliance definition." - }, - "description": { - "type": "string", - "description": "The appliance definition description." + "description": "The appliance lock level." }, "packageFileUri": { "type": "string", @@ -180,8 +291,8 @@ } }, "required": [ - "lockLevel", "authorizations", + "lockLevel", "packageFileUri" ], "description": "The appliance definition properties." @@ -189,23 +300,17 @@ "ApplianceProperties": { "type": "object", "properties": { - "managedResourceGroupId": { - "type": "string", - "description": "The managed resource group Id." - }, "applianceDefinitionId": { "type": "string", "description": "The fully qualified path of appliance definition Id." }, + "managedResourceGroupId": { + "type": "string", + "description": "The managed resource group Id." + }, "parameters": { - "oneOf": [ - { - "type": "object" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], + "type": "object", + "properties": {}, "description": "Name and value pairs that define the appliance parameters. It can be a JObject or a well formed JSON string." }, "uiDefinitionUri": { @@ -235,6 +340,98 @@ "roleDefinitionId" ], "description": "The appliance provider authorization." + }, + "Identity": { + "type": "object", + "properties": { + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "SystemAssigned" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The identity type." + } + }, + "description": "Identity for the resource." + }, + "Plan": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The plan name." + }, + "product": { + "type": "string", + "description": "The product code." + }, + "promotionCode": { + "type": "string", + "description": "The promotion code." + }, + "publisher": { + "type": "string", + "description": "The publisher ID." + }, + "version": { + "type": "string", + "description": "The plan's version." + } + }, + "required": [ + "name", + "product", + "publisher", + "version" + ], + "description": "Plan for the appliance." + }, + "Sku": { + "type": "object", + "properties": { + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The SKU capacity." + }, + "family": { + "type": "string", + "description": "The SKU family." + }, + "model": { + "type": "string", + "description": "The SKU model." + }, + "name": { + "type": "string", + "description": "The SKU name." + }, + "size": { + "type": "string", + "description": "The SKU size." + }, + "tier": { + "type": "string", + "description": "The SKU tier." + } + }, + "required": [ + "name" + ], + "description": "SKU for the resource." } } } diff --git a/schemas/2016-09-01/Microsoft.Authorization.json b/schemas/2016-09-01/Microsoft.Authorization.json index 654927786b..88962ee940 100644 --- a/schemas/2016-09-01/Microsoft.Authorization.json +++ b/schemas/2016-09-01/Microsoft.Authorization.json @@ -7,18 +7,98 @@ "locks": { "type": "object", "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2016-09-01" + ] + }, + "name": { + "type": "string", + "description": "The lock name. The lock name can be a maximum of 260 characters. It cannot contain <, > %, &, :, \\, ?, /, or any control characters." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ManagementLockProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The lock properties." + }, "type": { "type": "string", "enum": [ "Microsoft.Authorization/locks" ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/locks" + } + }, + "subscription_resourceDefinitions": { + "locks": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2016-09-01" + ] + }, + "name": { + "type": "string", + "description": "The name of lock. The lock name can be a maximum of 260 characters. It cannot contain <, > %, &, :, \\, ?, /, or any control characters." }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ManagementLockProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The lock properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/locks" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/locks" + } + }, + "extension_resourceDefinitions": { + "locks": { + "type": "object", + "properties": { "apiVersion": { "type": "string", "enum": [ "2016-09-01" ] }, + "name": { + "type": "string", + "description": "The name of lock. The lock name can be a maximum of 260 characters. It cannot contain <, > %, &, :, \\, ?, /, or any control characters." + }, "properties": { "oneOf": [ { @@ -28,22 +108,76 @@ "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The properties of the lock." + "description": "The lock properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/locks" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/locks" + } + }, + "unknown_resourceDefinitions": { + "locks": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2016-09-01" + ] }, "name": { "type": "string", - "description": "The name of the lock." + "description": "The name of lock." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ManagementLockProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The lock properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/locks" + ] } }, "required": [ - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], "description": "Microsoft.Authorization/locks" } }, "definitions": { + "ManagementLockOwner": { + "type": "object", + "properties": { + "applicationId": { + "type": "string", + "description": "The application ID of the lock owner." + } + }, + "description": "Lock owner properties." + }, "ManagementLockProperties": { "type": "object", "properties": { @@ -61,17 +195,31 @@ "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The lock level of the management lock." + "description": "The level of the lock. Possible values are: NotSpecified, CanNotDelete, ReadOnly. CanNotDelete means authorized users are able to read and modify the resources, but not delete. ReadOnly means authorized users can only read from a resource, but they can't modify or delete it." }, "notes": { "type": "string", - "description": "The notes of the management lock." + "description": "Notes about the lock. Maximum of 512 characters." + }, + "owners": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagementLockOwner" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The owners of the lock." } }, "required": [ "level" ], - "description": "The management lock properties." + "description": "The lock properties." } } } diff --git a/schemas/2016-09-01/Microsoft.Resources.json b/schemas/2016-09-01/Microsoft.Resources.json index 31de15cc8d..cbc8b262a7 100644 --- a/schemas/2016-09-01/Microsoft.Resources.json +++ b/schemas/2016-09-01/Microsoft.Resources.json @@ -165,4 +165,4 @@ "description": "Entity representing the reference to the template." } } -} \ No newline at end of file +} diff --git a/schemas/2016-12-01/Microsoft.Authorization.json b/schemas/2016-12-01/Microsoft.Authorization.json new file mode 100644 index 0000000000..d44ce9d51d --- /dev/null +++ b/schemas/2016-12-01/Microsoft.Authorization.json @@ -0,0 +1,220 @@ +{ + "id": "https://schema.management.azure.com/schemas/2016-12-01/Microsoft.Authorization.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Authorization", + "description": "Microsoft Authorization Resource Types", + "resourceDefinitions": {}, + "subscription_resourceDefinitions": { + "policyDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2016-12-01" + ] + }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyDefinitions" + } + }, + "managementGroup_resourceDefinitions": { + "policyDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2016-12-01" + ] + }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyDefinitions" + } + }, + "unknown_resourceDefinitions": { + "policyAssignments": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2016-12-01" + ] + }, + "name": { + "type": "string", + "description": "The name of the policy assignment." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyAssignmentProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy assignment properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyAssignments" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyAssignments" + } + }, + "definitions": { + "PolicyAssignmentProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "This message will be part of response in case of policy violation." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy assignment." + }, + "parameters": { + "type": "object", + "properties": {}, + "description": "Required if a parameter is used in policy rule." + }, + "policyDefinitionId": { + "type": "string", + "description": "The ID of the policy definition." + }, + "scope": { + "type": "string", + "description": "The scope for the policy assignment." + } + }, + "description": "The policy assignment properties." + }, + "PolicyDefinitionProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The policy definition description." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy definition." + }, + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy definition metadata." + }, + "mode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "Indexed", + "All" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy definition mode. Possible values are NotSpecified, Indexed, and All." + }, + "parameters": { + "type": "object", + "properties": {}, + "description": "Required if a parameter is used in policy rule." + }, + "policyRule": { + "type": "object", + "properties": {}, + "description": "The policy rule." + }, + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "BuiltIn", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." + } + }, + "description": "The policy definition properties." + } + } +} diff --git a/schemas/2017-05-10/Microsoft.Resources.json b/schemas/2017-05-10/Microsoft.Resources.json index 3ae4dfe7f8..31ec18bb85 100644 --- a/schemas/2017-05-10/Microsoft.Resources.json +++ b/schemas/2017-05-10/Microsoft.Resources.json @@ -43,12 +43,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -171,4 +165,4 @@ "description": "Entity representing the reference to the template." } } -} \ No newline at end of file +} diff --git a/schemas/2017-06-01-preview/Microsoft.Authorization.json b/schemas/2017-06-01-preview/Microsoft.Authorization.json new file mode 100644 index 0000000000..a83ab57af7 --- /dev/null +++ b/schemas/2017-06-01-preview/Microsoft.Authorization.json @@ -0,0 +1,278 @@ +{ + "id": "https://schema.management.azure.com/schemas/2017-06-01-preview/Microsoft.Authorization.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Authorization", + "description": "Microsoft Authorization Resource Types", + "resourceDefinitions": {}, + "subscription_resourceDefinitions": { + "policySetDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2017-06-01-preview" + ] + }, + "name": { + "type": "string", + "description": "The name of the policy set definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySetDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy set definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policySetDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policySetDefinitions" + } + }, + "managementGroup_resourceDefinitions": { + "policySetDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2017-06-01-preview" + ] + }, + "name": { + "type": "string", + "description": "The name of the policy set definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySetDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy set definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policySetDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policySetDefinitions" + } + }, + "unknown_resourceDefinitions": { + "policyAssignments": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2017-06-01-preview" + ] + }, + "name": { + "type": "string", + "description": "The name of the policy assignment." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyAssignmentProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy assignment properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy sku." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyAssignments" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyAssignments" + } + }, + "definitions": { + "PolicyAssignmentProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "This message will be part of response in case of policy violation." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy assignment." + }, + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy assignment metadata." + }, + "notScopes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy's excluded scopes." + }, + "parameters": { + "type": "object", + "properties": {}, + "description": "Required if a parameter is used in policy rule." + }, + "policyDefinitionId": { + "type": "string", + "description": "The ID of the policy definition." + }, + "scope": { + "type": "string", + "description": "The scope for the policy assignment." + } + }, + "description": "The policy assignment properties." + }, + "PolicyDefinitionReference": { + "type": "object", + "properties": { + "parameters": { + "type": "object", + "properties": {}, + "description": "Required if a parameter is used in policy rule." + }, + "policyDefinitionId": { + "type": "string", + "description": "The ID of the policy definition or policy set definition." + } + }, + "description": "The policy definition reference." + }, + "PolicySetDefinitionProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The policy set definition description." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy set definition." + }, + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy set definition metadata." + }, + "parameters": { + "type": "object", + "properties": {}, + "description": "The policy set definition parameters that can be used in policy definition references." + }, + "policyDefinitions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/PolicyDefinitionReference" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "An array of policy definition references." + }, + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "BuiltIn", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." + } + }, + "required": [ + "policyDefinitions" + ], + "description": "The policy set definition properties." + }, + "PolicySku": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the policy sku. Possible values are A0 and A1." + }, + "tier": { + "type": "string", + "description": "The policy sku tier. Possible values are Free and Standard." + } + }, + "required": [ + "name" + ], + "description": "The policy sku." + } + } +} diff --git a/schemas/2017-09-01/Microsoft.Solutions.json b/schemas/2017-09-01/Microsoft.Solutions.json new file mode 100644 index 0000000000..6ce08a672d --- /dev/null +++ b/schemas/2017-09-01/Microsoft.Solutions.json @@ -0,0 +1,451 @@ +{ + "id": "https://schema.management.azure.com/schemas/2017-09-01/Microsoft.Solutions.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Solutions", + "description": "Microsoft Solutions Resource Types", + "resourceDefinitions": { + "applicationDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2017-09-01" + ] + }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Identity for the resource." + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "managedBy": { + "type": "string", + "description": "ID of the resource that manages this resource." + }, + "name": { + "type": "string", + "minLength": 3, + "maxLength": 64, + "description": "The name of the managed application definition." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application definition properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/Sku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SKU for the resource." + }, + "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.Solutions/applicationDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Solutions/applicationDefinitions" + }, + "applications": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2017-09-01" + ] + }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Identity for the resource." + }, + "kind": { + "oneOf": [ + { + "type": "string", + "pattern": "^[-\\w\\._,\\(\\)]+$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The kind of the managed application. Allowed values are MarketPlace and ServiceCatalog." + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "managedBy": { + "type": "string", + "description": "ID of the resource that manages this resource." + }, + "name": { + "type": "string", + "minLength": 3, + "maxLength": 64, + "description": "The name of the managed application." + }, + "plan": { + "oneOf": [ + { + "$ref": "#/definitions/Plan" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Plan for the managed application." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/Sku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SKU for the resource." + }, + "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.Solutions/applications" + ] + } + }, + "required": [ + "apiVersion", + "kind", + "name", + "properties", + "type" + ], + "description": "Microsoft.Solutions/applications" + } + }, + "definitions": { + "ApplicationArtifact": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The managed application artifact name." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Template", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application artifact type." + }, + "uri": { + "type": "string", + "description": "The managed application artifact blob uri." + } + }, + "description": "Managed application artifact." + }, + "ApplicationDefinitionProperties": { + "type": "object", + "properties": { + "artifacts": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationArtifact" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The collection of managed application artifacts. The portal will use the files specified as artifacts to construct the user experience of creating a managed application from a managed application definition." + }, + "authorizations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationProviderAuthorization" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application provider authorizations." + }, + "createUiDefinition": { + "type": "object", + "properties": {}, + "description": "The createUiDefinition json for the backing template with Microsoft.Solutions/applications resource. It can be a JObject or well-formed JSON string." + }, + "description": { + "type": "string", + "description": "The managed application definition description." + }, + "displayName": { + "type": "string", + "description": "The managed application definition display name." + }, + "isEnabled": { + "type": "string", + "description": "A value indicating whether the package is enabled or not." + }, + "lockLevel": { + "oneOf": [ + { + "type": "string", + "enum": [ + "CanNotDelete", + "ReadOnly", + "None" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application lock level." + }, + "mainTemplate": { + "type": "object", + "properties": {}, + "description": "The inline main template json which has resources to be provisioned. It can be a JObject or well-formed JSON string." + }, + "packageFileUri": { + "type": "string", + "description": "The managed application definition package file Uri. Use this element" + } + }, + "required": [ + "authorizations", + "lockLevel" + ], + "description": "The managed application definition properties." + }, + "ApplicationProperties": { + "type": "object", + "properties": { + "applicationDefinitionId": { + "type": "string", + "description": "The fully qualified path of managed application definition Id." + }, + "managedResourceGroupId": { + "type": "string", + "description": "The managed resource group Id." + }, + "parameters": { + "type": "object", + "properties": {}, + "description": "Name and value pairs that define the managed application parameters. It can be a JObject or a well formed JSON string." + }, + "uiDefinitionUri": { + "type": "string", + "description": "The blob URI where the UI definition file is located." + } + }, + "required": [ + "managedResourceGroupId" + ], + "description": "The managed application properties." + }, + "ApplicationProviderAuthorization": { + "type": "object", + "properties": { + "principalId": { + "type": "string", + "description": "The provider's principal identifier. This is the identity that the provider will use to call ARM to manage the managed application resources." + }, + "roleDefinitionId": { + "type": "string", + "description": "The provider's role definition identifier. This role will define all the permissions that the provider must have on the managed application's container resource group. This role definition cannot have permission to delete the resource group." + } + }, + "required": [ + "principalId", + "roleDefinitionId" + ], + "description": "The managed application provider authorization." + }, + "Identity": { + "type": "object", + "properties": { + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "SystemAssigned" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The identity type." + } + }, + "description": "Identity for the resource." + }, + "Plan": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The plan name." + }, + "product": { + "type": "string", + "description": "The product code." + }, + "promotionCode": { + "type": "string", + "description": "The promotion code." + }, + "publisher": { + "type": "string", + "description": "The publisher ID." + }, + "version": { + "type": "string", + "description": "The plan's version." + } + }, + "required": [ + "name", + "product", + "publisher", + "version" + ], + "description": "Plan for the managed application." + }, + "Sku": { + "type": "object", + "properties": { + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The SKU capacity." + }, + "family": { + "type": "string", + "description": "The SKU family." + }, + "model": { + "type": "string", + "description": "The SKU model." + }, + "name": { + "type": "string", + "description": "The SKU name." + }, + "size": { + "type": "string", + "description": "The SKU size." + }, + "tier": { + "type": "string", + "description": "The SKU tier." + } + }, + "required": [ + "name" + ], + "description": "SKU for the resource." + } + } +} diff --git a/schemas/2018-02-01/Microsoft.Resources.json b/schemas/2018-02-01/Microsoft.Resources.json index 7ba72fdd5a..359bd1a589 100644 --- a/schemas/2018-02-01/Microsoft.Resources.json +++ b/schemas/2018-02-01/Microsoft.Resources.json @@ -43,12 +43,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -207,4 +201,4 @@ "description": "Entity representing the reference to the template." } } -} \ No newline at end of file +} diff --git a/schemas/2018-03-01/Microsoft.Authorization.json b/schemas/2018-03-01/Microsoft.Authorization.json index 1a244a42ab..99aadbe8a0 100644 --- a/schemas/2018-03-01/Microsoft.Authorization.json +++ b/schemas/2018-03-01/Microsoft.Authorization.json @@ -3,74 +3,101 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "Microsoft.Authorization", "description": "Microsoft Authorization Resource Types", - "resourceDefinitions": { - "policyAssignments": { + "resourceDefinitions": {}, + "subscription_resourceDefinitions": { + "policyDefinitions": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Authorization/policyAssignments" - ] - }, "apiVersion": { "type": "string", "enum": [ "2018-03-01" ] }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, "properties": { "oneOf": [ { - "$ref": "#/definitions/PolicyAssignmentProperties" + "$ref": "#/definitions/PolicyDefinitionProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Properties for the policy assignment." + "description": "The policy definition properties." }, - "sku": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyDefinitions" + }, + "policySetDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-03-01" + ] + }, + "name": { + "type": "string", + "description": "The name of the policy set definition to create." + }, + "properties": { "oneOf": [ { - "$ref": "#/definitions/PolicySku" + "$ref": "#/definitions/PolicySetDefinitionProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The policy sku. This property is optional, obsolete, and will be ignored." + "description": "The policy set definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policySetDefinitions" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], - "description": "Microsoft.Authorization/policyAssignments" - }, + "description": "Microsoft.Authorization/policySetDefinitions" + } + }, + "managementGroup_resourceDefinitions": { "policyDefinitions": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Authorization/policyDefinitions" - ] - }, "apiVersion": { "type": "string", "enum": [ "2018-03-01" ] }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, "properties": { "oneOf": [ { @@ -81,70 +108,130 @@ } ], "description": "The policy definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyDefinitions" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], "description": "Microsoft.Authorization/policyDefinitions" }, "policySetDefinitions": { "type": "object", "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-03-01" + ] + }, "name": { - "type": "string" + "type": "string", + "description": "The name of the policy set definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySetDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy set definition properties." }, "type": { "type": "string", "enum": [ "Microsoft.Authorization/policySetDefinitions" ] - }, + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policySetDefinitions" + } + }, + "unknown_resourceDefinitions": { + "policyAssignments": { + "type": "object", + "properties": { "apiVersion": { "type": "string", "enum": [ "2018-03-01" ] }, + "name": { + "type": "string", + "description": "The name of the policy assignment." + }, "properties": { "oneOf": [ { - "$ref": "#/definitions/PolicySetDefinitionProperties" + "$ref": "#/definitions/PolicyAssignmentProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The policy definition properties." + "description": "The policy assignment properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy sku. This property is optional, obsolete, and will be ignored." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyAssignments" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], - "description": "Microsoft.Authorization/policySetDefinitions" + "description": "Microsoft.Authorization/policyAssignments" } }, "definitions": { "PolicyAssignmentProperties": { "type": "object", "properties": { - "displayName": { + "description": { "type": "string", - "description": "The display name of the policy assignment." + "description": "This message will be part of response in case of policy violation." }, - "policyDefinitionId": { + "displayName": { "type": "string", - "description": "The ID of the policy definition or policy set definition being assigned." + "description": "The display name of the policy assignment." }, - "scope": { - "type": "string", - "description": "The scope for the policy assignment." + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy assignment metadata." }, "notScopes": { "oneOf": [ @@ -161,14 +248,17 @@ "description": "The policy's excluded scopes." }, "parameters": { + "type": "object", + "properties": {}, "description": "Required if a parameter is used in policy rule." }, - "description": { + "policyDefinitionId": { "type": "string", - "description": "This message will be part of response in case of policy violation." + "description": "The ID of the policy definition or policy set definition being assigned." }, - "metadata": { - "description": "The policy assignment metadata." + "scope": { + "type": "string", + "description": "The scope for the policy assignment." } }, "description": "The policy assignment properties." @@ -176,54 +266,60 @@ "PolicyDefinitionProperties": { "type": "object", "properties": { - "policyType": { + "description": { + "type": "string", + "description": "The policy definition description." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy definition." + }, + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy definition metadata." + }, + "mode": { "oneOf": [ { "type": "string", "enum": [ "NotSpecified", - "BuiltIn", - "Custom" + "Indexed", + "All" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." + "description": "The policy definition mode. Possible values are NotSpecified, Indexed, and All." }, - "mode": { + "parameters": { + "type": "object", + "properties": {}, + "description": "Required if a parameter is used in policy rule." + }, + "policyRule": { + "type": "object", + "properties": {}, + "description": "The policy rule." + }, + "policyType": { "oneOf": [ { "type": "string", "enum": [ "NotSpecified", - "Indexed", - "All" + "BuiltIn", + "Custom" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The policy definition mode. Possible values are NotSpecified, Indexed, and All." - }, - "displayName": { - "type": "string", - "description": "The display name of the policy definition." - }, - "description": { - "type": "string", - "description": "The policy definition description." - }, - "policyRule": { - "description": "The policy rule." - }, - "metadata": { - "description": "The policy definition metadata." - }, - "parameters": { - "description": "Required if a parameter is used in policy rule." + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." } }, "description": "The policy definition properties." @@ -231,12 +327,14 @@ "PolicyDefinitionReference": { "type": "object", "properties": { + "parameters": { + "type": "object", + "properties": {}, + "description": "Required if a parameter is used in policy rule." + }, "policyDefinitionId": { "type": "string", "description": "The ID of the policy definition or policy set definition." - }, - "parameters": { - "description": "Required if a parameter is used in policy rule." } }, "description": "The policy definition reference." @@ -244,34 +342,22 @@ "PolicySetDefinitionProperties": { "type": "object", "properties": { - "policyType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "NotSpecified", - "BuiltIn", - "Custom" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." + "description": { + "type": "string", + "description": "The policy set definition description." }, "displayName": { "type": "string", "description": "The display name of the policy set definition." }, - "description": { - "type": "string", - "description": "The policy set definition description." - }, "metadata": { + "type": "object", + "properties": {}, "description": "The policy set definition metadata." }, "parameters": { + "type": "object", + "properties": {}, "description": "The policy set definition parameters that can be used in policy definition references." }, "policyDefinitions": { @@ -287,6 +373,22 @@ } ], "description": "An array of policy definition references." + }, + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "BuiltIn", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." } }, "required": [ diff --git a/schemas/2018-05-01/Microsoft.Authorization.json b/schemas/2018-05-01/Microsoft.Authorization.json index 5bf6770ea9..3ce5cfb9a9 100644 --- a/schemas/2018-05-01/Microsoft.Authorization.json +++ b/schemas/2018-05-01/Microsoft.Authorization.json @@ -3,89 +3,101 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "Microsoft.Authorization", "description": "Microsoft Authorization Resource Types", - "resourceDefinitions": { - "policyAssignments": { + "resourceDefinitions": {}, + "subscription_resourceDefinitions": { + "policyDefinitions": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Authorization/policyAssignments" - ] - }, "apiVersion": { "type": "string", "enum": [ "2018-05-01" ] }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, "properties": { "oneOf": [ { - "$ref": "#/definitions/PolicyAssignmentProperties" + "$ref": "#/definitions/PolicyDefinitionProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Properties for the policy assignment." + "description": "The policy definition properties." }, - "sku": { - "oneOf": [ - { - "$ref": "#/definitions/PolicySku" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The policy sku. This property is optional, obsolete, and will be ignored." + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyDefinitions" + }, + "policySetDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-05-01" + ] }, - "location": { + "name": { "type": "string", - "description": "The location of the policy assignment. Only required when utilizing managed identity." + "description": "The name of the policy set definition to create." }, - "identity": { + "properties": { "oneOf": [ { - "$ref": "#/definitions/Identity" + "$ref": "#/definitions/PolicySetDefinitionProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The managed identity associated with the policy assignment." + "description": "The policy set definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policySetDefinitions" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], - "description": "Microsoft.Authorization/policyAssignments" - }, + "description": "Microsoft.Authorization/policySetDefinitions" + } + }, + "managementGroup_resourceDefinitions": { "policyDefinitions": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Authorization/policyDefinitions" - ] - }, "apiVersion": { "type": "string", "enum": [ "2018-05-01" ] }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, "properties": { "oneOf": [ { @@ -96,53 +108,127 @@ } ], "description": "The policy definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyDefinitions" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], "description": "Microsoft.Authorization/policyDefinitions" }, "policySetDefinitions": { "type": "object", "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-05-01" + ] + }, "name": { - "type": "string" + "type": "string", + "description": "The name of the policy set definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySetDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy set definition properties." }, "type": { "type": "string", "enum": [ "Microsoft.Authorization/policySetDefinitions" ] - }, + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policySetDefinitions" + } + }, + "unknown_resourceDefinitions": { + "policyAssignments": { + "type": "object", + "properties": { "apiVersion": { "type": "string", "enum": [ "2018-05-01" ] }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Identity for the resource." + }, + "location": { + "type": "string", + "description": "The location of the policy assignment. Only required when utilizing managed identity." + }, + "name": { + "type": "string", + "description": "The name of the policy assignment." + }, "properties": { "oneOf": [ { - "$ref": "#/definitions/PolicySetDefinitionProperties" + "$ref": "#/definitions/PolicyAssignmentProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The policy definition properties." + "description": "The policy assignment properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy sku. This property is optional, obsolete, and will be ignored." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyAssignments" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], - "description": "Microsoft.Authorization/policySetDefinitions" + "description": "Microsoft.Authorization/policyAssignments" } }, "definitions": { @@ -150,10 +236,17 @@ "type": "object", "properties": { "type": { - "type": "string", - "enum": [ - "SystemAssigned", - "None" + "oneOf": [ + { + "type": "string", + "enum": [ + "SystemAssigned", + "None" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } ], "description": "The identity type." } @@ -163,17 +256,18 @@ "PolicyAssignmentProperties": { "type": "object", "properties": { - "displayName": { + "description": { "type": "string", - "description": "The display name of the policy assignment." + "description": "This message will be part of response in case of policy violation." }, - "policyDefinitionId": { + "displayName": { "type": "string", - "description": "The ID of the policy definition or policy set definition being assigned." + "description": "The display name of the policy assignment." }, - "scope": { - "type": "string", - "description": "The scope for the policy assignment." + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy assignment metadata." }, "notScopes": { "oneOf": [ @@ -190,14 +284,17 @@ "description": "The policy's excluded scopes." }, "parameters": { + "type": "object", + "properties": {}, "description": "Required if a parameter is used in policy rule." }, - "description": { + "policyDefinitionId": { "type": "string", - "description": "This message will be part of response in case of policy violation." + "description": "The ID of the policy definition or policy set definition being assigned." }, - "metadata": { - "description": "The policy assignment metadata." + "scope": { + "type": "string", + "description": "The scope for the policy assignment." } }, "description": "The policy assignment properties." @@ -205,54 +302,60 @@ "PolicyDefinitionProperties": { "type": "object", "properties": { - "policyType": { + "description": { + "type": "string", + "description": "The policy definition description." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy definition." + }, + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy definition metadata." + }, + "mode": { "oneOf": [ { "type": "string", "enum": [ "NotSpecified", - "BuiltIn", - "Custom" + "Indexed", + "All" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." + "description": "The policy definition mode. Possible values are NotSpecified, Indexed, and All." }, - "mode": { + "parameters": { + "type": "object", + "properties": {}, + "description": "Required if a parameter is used in policy rule." + }, + "policyRule": { + "type": "object", + "properties": {}, + "description": "The policy rule." + }, + "policyType": { "oneOf": [ { "type": "string", "enum": [ "NotSpecified", - "Indexed", - "All" + "BuiltIn", + "Custom" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The policy definition mode. Possible values are NotSpecified, Indexed, and All." - }, - "displayName": { - "type": "string", - "description": "The display name of the policy definition." - }, - "description": { - "type": "string", - "description": "The policy definition description." - }, - "policyRule": { - "description": "The policy rule." - }, - "metadata": { - "description": "The policy definition metadata." - }, - "parameters": { - "description": "Required if a parameter is used in policy rule." + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." } }, "description": "The policy definition properties." @@ -260,12 +363,14 @@ "PolicyDefinitionReference": { "type": "object", "properties": { + "parameters": { + "type": "object", + "properties": {}, + "description": "Required if a parameter is used in policy rule." + }, "policyDefinitionId": { "type": "string", "description": "The ID of the policy definition or policy set definition." - }, - "parameters": { - "description": "Required if a parameter is used in policy rule." } }, "description": "The policy definition reference." @@ -273,34 +378,22 @@ "PolicySetDefinitionProperties": { "type": "object", "properties": { - "policyType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "NotSpecified", - "BuiltIn", - "Custom" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." + "description": { + "type": "string", + "description": "The policy set definition description." }, "displayName": { "type": "string", "description": "The display name of the policy set definition." }, - "description": { - "type": "string", - "description": "The policy set definition description." - }, "metadata": { + "type": "object", + "properties": {}, "description": "The policy set definition metadata." }, "parameters": { + "type": "object", + "properties": {}, "description": "The policy set definition parameters that can be used in policy definition references." }, "policyDefinitions": { @@ -316,6 +409,22 @@ } ], "description": "An array of policy definition references." + }, + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "BuiltIn", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." } }, "required": [ diff --git a/schemas/2018-05-01/Microsoft.Resources.json b/schemas/2018-05-01/Microsoft.Resources.json index 128c265d07..e7f091d50e 100644 --- a/schemas/2018-05-01/Microsoft.Resources.json +++ b/schemas/2018-05-01/Microsoft.Resources.json @@ -47,16 +47,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -112,12 +102,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -127,61 +111,6 @@ "type" ], "description": "Microsoft.Resources/deployments" - }, - "resourceGroups": { - "type": "object", - "properties": { - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90, - "description": "the resource group name" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Resources/resourceGroups" - ] - }, - "apiVersion": { - "type": "string", - "enum": [ - "2018-05-01" - ] - }, - "location": { - "type": "string", - "description": "the resource group location" - }, - "tags": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The resource group tags." - } - }, - "required": [ - "name", - "type", - "apiVersion", - "location" - ], - "description": "Microsoft.Resources/resourceGroups" } }, "definitions": { @@ -331,4 +260,4 @@ "description": "Entity representing the reference to the template." } } -} \ No newline at end of file +} diff --git a/schemas/2018-06-01/Microsoft.Solutions.json b/schemas/2018-06-01/Microsoft.Solutions.json new file mode 100644 index 0000000000..f36f703b0c --- /dev/null +++ b/schemas/2018-06-01/Microsoft.Solutions.json @@ -0,0 +1,447 @@ +{ + "id": "https://schema.management.azure.com/schemas/2018-06-01/Microsoft.Solutions.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Solutions", + "description": "Microsoft Solutions Resource Types", + "resourceDefinitions": { + "applicationDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-06-01" + ] + }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Identity for the resource." + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "managedBy": { + "type": "string", + "description": "ID of the resource that manages this resource." + }, + "name": { + "type": "string", + "minLength": 3, + "maxLength": 64, + "description": "The name of the managed application definition." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application definition properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/Sku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SKU for the resource." + }, + "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.Solutions/applicationDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Solutions/applicationDefinitions" + }, + "applications": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-06-01" + ] + }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Identity for the resource." + }, + "kind": { + "oneOf": [ + { + "type": "string", + "pattern": "^[-\\w\\._,\\(\\)]+$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The kind of the managed application. Allowed values are MarketPlace and ServiceCatalog." + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "managedBy": { + "type": "string", + "description": "ID of the resource that manages this resource." + }, + "name": { + "type": "string", + "minLength": 3, + "maxLength": 64, + "description": "The name of the managed application." + }, + "plan": { + "oneOf": [ + { + "$ref": "#/definitions/Plan" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Plan for the managed application." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/Sku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SKU for the resource." + }, + "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.Solutions/applications" + ] + } + }, + "required": [ + "apiVersion", + "kind", + "name", + "properties", + "type" + ], + "description": "Microsoft.Solutions/applications" + } + }, + "definitions": { + "ApplicationArtifact": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The managed application artifact name." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Template", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application artifact type." + }, + "uri": { + "type": "string", + "description": "The managed application artifact blob uri." + } + }, + "description": "Managed application artifact." + }, + "ApplicationDefinitionProperties": { + "type": "object", + "properties": { + "artifacts": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationArtifact" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The collection of managed application artifacts. The portal will use the files specified as artifacts to construct the user experience of creating a managed application from a managed application definition." + }, + "authorizations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationProviderAuthorization" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application provider authorizations." + }, + "createUiDefinition": { + "type": "object", + "properties": {}, + "description": "The createUiDefinition json for the backing template with Microsoft.Solutions/applications resource. It can be a JObject or well-formed JSON string." + }, + "description": { + "type": "string", + "description": "The managed application definition description." + }, + "displayName": { + "type": "string", + "description": "The managed application definition display name." + }, + "isEnabled": { + "type": "string", + "description": "A value indicating whether the package is enabled or not." + }, + "lockLevel": { + "oneOf": [ + { + "type": "string", + "enum": [ + "CanNotDelete", + "ReadOnly", + "None" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application lock level." + }, + "mainTemplate": { + "type": "object", + "properties": {}, + "description": "The inline main template json which has resources to be provisioned. It can be a JObject or well-formed JSON string." + }, + "packageFileUri": { + "type": "string", + "description": "The managed application definition package file Uri. Use this element" + } + }, + "required": [ + "authorizations", + "lockLevel" + ], + "description": "The managed application definition properties." + }, + "ApplicationProperties": { + "type": "object", + "properties": { + "applicationDefinitionId": { + "type": "string", + "description": "The fully qualified path of managed application definition Id." + }, + "managedResourceGroupId": { + "type": "string", + "description": "The managed resource group Id." + }, + "parameters": { + "type": "object", + "properties": {}, + "description": "Name and value pairs that define the managed application parameters. It can be a JObject or a well formed JSON string." + } + }, + "required": [ + "managedResourceGroupId" + ], + "description": "The managed application properties." + }, + "ApplicationProviderAuthorization": { + "type": "object", + "properties": { + "principalId": { + "type": "string", + "description": "The provider's principal identifier. This is the identity that the provider will use to call ARM to manage the managed application resources." + }, + "roleDefinitionId": { + "type": "string", + "description": "The provider's role definition identifier. This role will define all the permissions that the provider must have on the managed application's container resource group. This role definition cannot have permission to delete the resource group." + } + }, + "required": [ + "principalId", + "roleDefinitionId" + ], + "description": "The managed application provider authorization." + }, + "Identity": { + "type": "object", + "properties": { + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "SystemAssigned" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The identity type." + } + }, + "description": "Identity for the resource." + }, + "Plan": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The plan name." + }, + "product": { + "type": "string", + "description": "The product code." + }, + "promotionCode": { + "type": "string", + "description": "The promotion code." + }, + "publisher": { + "type": "string", + "description": "The publisher ID." + }, + "version": { + "type": "string", + "description": "The plan's version." + } + }, + "required": [ + "name", + "product", + "publisher", + "version" + ], + "description": "Plan for the managed application." + }, + "Sku": { + "type": "object", + "properties": { + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The SKU capacity." + }, + "family": { + "type": "string", + "description": "The SKU family." + }, + "model": { + "type": "string", + "description": "The SKU model." + }, + "name": { + "type": "string", + "description": "The SKU name." + }, + "size": { + "type": "string", + "description": "The SKU size." + }, + "tier": { + "type": "string", + "description": "The SKU tier." + } + }, + "required": [ + "name" + ], + "description": "SKU for the resource." + } + } +} diff --git a/schemas/2019-01-01/Microsoft.Authorization.json b/schemas/2019-01-01/Microsoft.Authorization.json index d0b21e61ed..f1a0cad0b4 100644 --- a/schemas/2019-01-01/Microsoft.Authorization.json +++ b/schemas/2019-01-01/Microsoft.Authorization.json @@ -3,89 +3,101 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "Microsoft.Authorization", "description": "Microsoft Authorization Resource Types", - "resourceDefinitions": { - "policyAssignments": { + "resourceDefinitions": {}, + "subscription_resourceDefinitions": { + "policyDefinitions": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Authorization/policyAssignments" - ] - }, "apiVersion": { "type": "string", "enum": [ "2019-01-01" ] }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, "properties": { "oneOf": [ { - "$ref": "#/definitions/PolicyAssignmentProperties" + "$ref": "#/definitions/PolicyDefinitionProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Properties for the policy assignment." + "description": "The policy definition properties." }, - "sku": { - "oneOf": [ - { - "$ref": "#/definitions/PolicySku" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The policy sku. This property is optional, obsolete, and will be ignored." + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyDefinitions" + }, + "policySetDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-01-01" + ] }, - "location": { + "name": { "type": "string", - "description": "The location of the policy assignment. Only required when utilizing managed identity." + "description": "The name of the policy set definition to create." }, - "identity": { + "properties": { "oneOf": [ { - "$ref": "#/definitions/Identity" + "$ref": "#/definitions/PolicySetDefinitionProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The managed identity associated with the policy assignment." + "description": "The policy set definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policySetDefinitions" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], - "description": "Microsoft.Authorization/policyAssignments" - }, + "description": "Microsoft.Authorization/policySetDefinitions" + } + }, + "managementGroup_resourceDefinitions": { "policyDefinitions": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Authorization/policyDefinitions" - ] - }, "apiVersion": { "type": "string", "enum": [ "2019-01-01" ] }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, "properties": { "oneOf": [ { @@ -96,53 +108,127 @@ } ], "description": "The policy definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyDefinitions" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], "description": "Microsoft.Authorization/policyDefinitions" }, "policySetDefinitions": { "type": "object", "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-01-01" + ] + }, "name": { - "type": "string" + "type": "string", + "description": "The name of the policy set definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySetDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy set definition properties." }, "type": { "type": "string", "enum": [ "Microsoft.Authorization/policySetDefinitions" ] - }, + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policySetDefinitions" + } + }, + "unknown_resourceDefinitions": { + "policyAssignments": { + "type": "object", + "properties": { "apiVersion": { "type": "string", "enum": [ "2019-01-01" ] }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Identity for the resource." + }, + "location": { + "type": "string", + "description": "The location of the policy assignment. Only required when utilizing managed identity." + }, + "name": { + "type": "string", + "description": "The name of the policy assignment." + }, "properties": { "oneOf": [ { - "$ref": "#/definitions/PolicySetDefinitionProperties" + "$ref": "#/definitions/PolicyAssignmentProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The policy definition properties." + "description": "The policy assignment properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy sku. This property is optional, obsolete, and will be ignored." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyAssignments" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], - "description": "Microsoft.Authorization/policySetDefinitions" + "description": "Microsoft.Authorization/policyAssignments" } }, "definitions": { @@ -150,10 +236,17 @@ "type": "object", "properties": { "type": { - "type": "string", - "enum": [ - "SystemAssigned", - "None" + "oneOf": [ + { + "type": "string", + "enum": [ + "SystemAssigned", + "None" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } ], "description": "The identity type." } @@ -163,17 +256,18 @@ "PolicyAssignmentProperties": { "type": "object", "properties": { - "displayName": { + "description": { "type": "string", - "description": "The display name of the policy assignment." + "description": "This message will be part of response in case of policy violation." }, - "policyDefinitionId": { + "displayName": { "type": "string", - "description": "The ID of the policy definition or policy set definition being assigned." + "description": "The display name of the policy assignment." }, - "scope": { - "type": "string", - "description": "The scope for the policy assignment." + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy assignment metadata." }, "notScopes": { "oneOf": [ @@ -190,14 +284,17 @@ "description": "The policy's excluded scopes." }, "parameters": { + "type": "object", + "properties": {}, "description": "Required if a parameter is used in policy rule." }, - "description": { + "policyDefinitionId": { "type": "string", - "description": "This message will be part of response in case of policy violation." + "description": "The ID of the policy definition or policy set definition being assigned." }, - "metadata": { - "description": "The policy assignment metadata." + "scope": { + "type": "string", + "description": "The scope for the policy assignment." } }, "description": "The policy assignment properties." @@ -205,6 +302,33 @@ "PolicyDefinitionProperties": { "type": "object", "properties": { + "description": { + "type": "string", + "description": "The policy definition description." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy definition." + }, + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy definition metadata." + }, + "mode": { + "type": "string", + "description": "The policy definition mode. Some examples are All, Indexed, Microsoft.KeyVault.Data." + }, + "parameters": { + "type": "object", + "properties": {}, + "description": "Required if a parameter is used in policy rule." + }, + "policyRule": { + "type": "object", + "properties": {}, + "description": "The policy rule." + }, "policyType": { "oneOf": [ { @@ -220,41 +344,21 @@ } ], "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." - }, - "mode": { - "type": "string", - "description": "The policy definition mode. Some examples are All, Indexed, Microsoft.KeyVault.Data." - }, - "displayName": { - "type": "string", - "description": "The display name of the policy definition." - }, - "description": { - "type": "string", - "description": "The policy definition description." - }, - "policyRule": { - "description": "The policy rule." - }, - "metadata": { - "description": "The policy definition metadata." - }, - "parameters": { - "description": "Required if a parameter is used in policy rule." } }, - "required": [ "policyRule" ], "description": "The policy definition properties." }, "PolicyDefinitionReference": { "type": "object", "properties": { + "parameters": { + "type": "object", + "properties": {}, + "description": "Required if a parameter is used in policy rule." + }, "policyDefinitionId": { "type": "string", "description": "The ID of the policy definition or policy set definition." - }, - "parameters": { - "description": "Required if a parameter is used in policy rule." } }, "description": "The policy definition reference." @@ -262,34 +366,22 @@ "PolicySetDefinitionProperties": { "type": "object", "properties": { - "policyType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "NotSpecified", - "BuiltIn", - "Custom" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." + "description": { + "type": "string", + "description": "The policy set definition description." }, "displayName": { "type": "string", "description": "The display name of the policy set definition." }, - "description": { - "type": "string", - "description": "The policy set definition description." - }, "metadata": { + "type": "object", + "properties": {}, "description": "The policy set definition metadata." }, "parameters": { + "type": "object", + "properties": {}, "description": "The policy set definition parameters that can be used in policy definition references." }, "policyDefinitions": { @@ -305,6 +397,22 @@ } ], "description": "An array of policy definition references." + }, + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "BuiltIn", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." } }, "required": [ diff --git a/schemas/2019-03-01/Microsoft.Resources.json b/schemas/2019-03-01/Microsoft.Resources.json index 1b58f7648c..5275ab9d48 100644 --- a/schemas/2019-03-01/Microsoft.Resources.json +++ b/schemas/2019-03-01/Microsoft.Resources.json @@ -47,16 +47,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -112,12 +102,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -127,61 +111,6 @@ "type" ], "description": "Microsoft.Resources/deployments" - }, - "resourceGroups": { - "type": "object", - "properties": { - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90, - "description": "the resource group name" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Resources/resourceGroups" - ] - }, - "apiVersion": { - "type": "string", - "enum": [ - "2019-03-01" - ] - }, - "location": { - "type": "string", - "description": "the resource group location" - }, - "tags": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The resource group tags." - } - }, - "required": [ - "name", - "type", - "apiVersion", - "location" - ], - "description": "Microsoft.Resources/resourceGroups" } }, "definitions": { @@ -331,4 +260,4 @@ "description": "Entity representing the reference to the template." } } -} \ No newline at end of file +} diff --git a/schemas/2019-05-01/Microsoft.Resources.json b/schemas/2019-05-01/Microsoft.Resources.json index 274e122a63..28caae97e8 100644 --- a/schemas/2019-05-01/Microsoft.Resources.json +++ b/schemas/2019-05-01/Microsoft.Resources.json @@ -47,16 +47,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -112,12 +102,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -127,61 +111,6 @@ "type" ], "description": "Microsoft.Resources/deployments" - }, - "resourceGroups": { - "type": "object", - "properties": { - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90, - "description": "the resource group name" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Resources/resourceGroups" - ] - }, - "apiVersion": { - "type": "string", - "enum": [ - "2019-05-01" - ] - }, - "location": { - "type": "string", - "description": "the resource group location" - }, - "tags": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The resource group tags." - } - }, - "required": [ - "name", - "type", - "apiVersion", - "location" - ], - "description": "Microsoft.Resources/resourceGroups" } }, "managementGroup_resourceDefinitions": { @@ -228,10 +157,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" } }, "required": [ @@ -392,4 +317,4 @@ "description": "Entity representing the reference to the template." } } -} \ No newline at end of file +} diff --git a/schemas/2019-05-10/Microsoft.Resources.json b/schemas/2019-05-10/Microsoft.Resources.json index 2a40e6ae10..2292a5f74f 100644 --- a/schemas/2019-05-10/Microsoft.Resources.json +++ b/schemas/2019-05-10/Microsoft.Resources.json @@ -47,16 +47,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -112,12 +102,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -127,61 +111,6 @@ "type" ], "description": "Microsoft.Resources/deployments" - }, - "resourceGroups": { - "type": "object", - "properties": { - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90, - "description": "the resource group name" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Resources/resourceGroups" - ] - }, - "apiVersion": { - "type": "string", - "enum": [ - "2019-05-10" - ] - }, - "location": { - "type": "string", - "description": "the resource group location" - }, - "tags": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The resource group tags." - } - }, - "required": [ - "name", - "type", - "apiVersion", - "location" - ], - "description": "Microsoft.Resources/resourceGroups" } }, "managementGroup_resourceDefinitions": { @@ -228,10 +157,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" } }, "required": [ @@ -392,4 +317,4 @@ "description": "Entity representing the reference to the template." } } -} \ No newline at end of file +} diff --git a/schemas/2019-06-01-preview/Microsoft.Resources.json b/schemas/2019-06-01-preview/Microsoft.Resources.json index 6ff3304078..908cb75a09 100644 --- a/schemas/2019-06-01-preview/Microsoft.Resources.json +++ b/schemas/2019-06-01-preview/Microsoft.Resources.json @@ -308,62 +308,5 @@ }, "description": "Template Spec Version properties." } - }, - "subscription_resourceDefinitions": { - "resourceGroups": { - "type": "object", - "properties": { - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90, - "description": "the resource group name" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Resources/resourceGroups" - ] - }, - "apiVersion": { - "type": "string", - "enum": [ - "2019-06-01-preview" - ] - }, - "location": { - "type": "string", - "description": "the resource group location" - }, - "tags": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The resource group tags." - } - }, - "required": [ - "name", - "type", - "apiVersion", - "location" - ], - "description": "Microsoft.Resources/resourceGroups" - } } -} \ No newline at end of file +} diff --git a/schemas/2019-06-01/Microsoft.Authorization.json b/schemas/2019-06-01/Microsoft.Authorization.json index 10870d69a0..a4e6ad0c3e 100644 --- a/schemas/2019-06-01/Microsoft.Authorization.json +++ b/schemas/2019-06-01/Microsoft.Authorization.json @@ -3,89 +3,101 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "Microsoft.Authorization", "description": "Microsoft Authorization Resource Types", - "resourceDefinitions": { - "policyAssignments": { + "resourceDefinitions": {}, + "subscription_resourceDefinitions": { + "policyDefinitions": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Authorization/policyAssignments" - ] - }, "apiVersion": { "type": "string", "enum": [ "2019-06-01" ] }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, "properties": { "oneOf": [ { - "$ref": "#/definitions/PolicyAssignmentProperties" + "$ref": "#/definitions/PolicyDefinitionProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Properties for the policy assignment." + "description": "The policy definition properties." }, - "sku": { - "oneOf": [ - { - "$ref": "#/definitions/PolicySku" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The policy sku. This property is optional, obsolete, and will be ignored." + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyDefinitions" + }, + "policySetDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-06-01" + ] }, - "location": { + "name": { "type": "string", - "description": "The location of the policy assignment. Only required when utilizing managed identity." + "description": "The name of the policy set definition to create." }, - "identity": { + "properties": { "oneOf": [ { - "$ref": "#/definitions/Identity" + "$ref": "#/definitions/PolicySetDefinitionProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The managed identity associated with the policy assignment." + "description": "The policy set definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policySetDefinitions" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], - "description": "Microsoft.Authorization/policyAssignments" - }, + "description": "Microsoft.Authorization/policySetDefinitions" + } + }, + "managementGroup_resourceDefinitions": { "policyDefinitions": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Authorization/policyDefinitions" - ] - }, "apiVersion": { "type": "string", "enum": [ "2019-06-01" ] }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, "properties": { "oneOf": [ { @@ -96,53 +108,127 @@ } ], "description": "The policy definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyDefinitions" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], "description": "Microsoft.Authorization/policyDefinitions" }, "policySetDefinitions": { "type": "object", "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-06-01" + ] + }, "name": { - "type": "string" + "type": "string", + "description": "The name of the policy set definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySetDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy set definition properties." }, "type": { "type": "string", "enum": [ "Microsoft.Authorization/policySetDefinitions" ] - }, + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policySetDefinitions" + } + }, + "unknown_resourceDefinitions": { + "policyAssignments": { + "type": "object", + "properties": { "apiVersion": { "type": "string", "enum": [ "2019-06-01" ] }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Identity for the resource." + }, + "location": { + "type": "string", + "description": "The location of the policy assignment. Only required when utilizing managed identity." + }, + "name": { + "type": "string", + "description": "The name of the policy assignment." + }, "properties": { "oneOf": [ { - "$ref": "#/definitions/PolicySetDefinitionProperties" + "$ref": "#/definitions/PolicyAssignmentProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The policy definition properties." + "description": "The policy assignment properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy sku. This property is optional, obsolete, and will be ignored." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyAssignments" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], - "description": "Microsoft.Authorization/policySetDefinitions" + "description": "Microsoft.Authorization/policyAssignments" } }, "definitions": { @@ -150,10 +236,17 @@ "type": "object", "properties": { "type": { - "type": "string", - "enum": [ - "SystemAssigned", - "None" + "oneOf": [ + { + "type": "string", + "enum": [ + "SystemAssigned", + "None" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } ], "description": "The identity type." } @@ -163,17 +256,33 @@ "PolicyAssignmentProperties": { "type": "object", "properties": { + "description": { + "type": "string", + "description": "This message will be part of response in case of policy violation." + }, "displayName": { "type": "string", "description": "The display name of the policy assignment." }, - "policyDefinitionId": { - "type": "string", - "description": "The ID of the policy definition or policy set definition being assigned." + "enforcementMode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Default", + "DoNotEnforce" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy assignment enforcement mode. Possible values are Default and DoNotEnforce." }, - "scope": { - "type": "string", - "description": "The scope for the policy assignment." + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy assignment metadata." }, "notScopes": { "oneOf": [ @@ -190,29 +299,17 @@ "description": "The policy's excluded scopes." }, "parameters": { + "type": "object", + "properties": {}, "description": "Required if a parameter is used in policy rule." }, - "description": { + "policyDefinitionId": { "type": "string", - "description": "This message will be part of response in case of policy violation." - }, - "metadata": { - "description": "The policy assignment metadata." + "description": "The ID of the policy definition or policy set definition being assigned." }, - "enforcementMode": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Default", - "DoNotEnforce" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The policy assignment enforcement mode. Possible values are Default and DoNotEnforce. DoNotEnforce indicates that the policy should evaluate but not take action (i.e. not deny or append)." + "scope": { + "type": "string", + "description": "The scope for the policy assignment." } }, "description": "The policy assignment properties." @@ -220,6 +317,33 @@ "PolicyDefinitionProperties": { "type": "object", "properties": { + "description": { + "type": "string", + "description": "The policy definition description." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy definition." + }, + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy definition metadata." + }, + "mode": { + "type": "string", + "description": "The policy definition mode. Some examples are All, Indexed, Microsoft.KeyVault.Data." + }, + "parameters": { + "type": "object", + "properties": {}, + "description": "Required if a parameter is used in policy rule." + }, + "policyRule": { + "type": "object", + "properties": {}, + "description": "The policy rule." + }, "policyType": { "oneOf": [ { @@ -235,41 +359,21 @@ } ], "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." - }, - "mode": { - "type": "string", - "description": "The policy definition mode. Some examples are All, Indexed, Microsoft.KeyVault.Data." - }, - "displayName": { - "type": "string", - "description": "The display name of the policy definition." - }, - "description": { - "type": "string", - "description": "The policy definition description." - }, - "policyRule": { - "description": "The policy rule." - }, - "metadata": { - "description": "The policy definition metadata." - }, - "parameters": { - "description": "Required if a parameter is used in policy rule." } }, - "required": [ "policyRule" ], "description": "The policy definition properties." }, "PolicyDefinitionReference": { "type": "object", "properties": { + "parameters": { + "type": "object", + "properties": {}, + "description": "Required if a parameter is used in policy rule." + }, "policyDefinitionId": { "type": "string", "description": "The ID of the policy definition or policy set definition." - }, - "parameters": { - "description": "Required if a parameter is used in policy rule." } }, "description": "The policy definition reference." @@ -277,34 +381,22 @@ "PolicySetDefinitionProperties": { "type": "object", "properties": { - "policyType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "NotSpecified", - "BuiltIn", - "Custom" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." + "description": { + "type": "string", + "description": "The policy set definition description." }, "displayName": { "type": "string", "description": "The display name of the policy set definition." }, - "description": { - "type": "string", - "description": "The policy set definition description." - }, "metadata": { + "type": "object", + "properties": {}, "description": "The policy set definition metadata." }, "parameters": { + "type": "object", + "properties": {}, "description": "The policy set definition parameters that can be used in policy definition references." }, "policyDefinitions": { @@ -320,6 +412,22 @@ } ], "description": "An array of policy definition references." + }, + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "BuiltIn", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, and Custom." } }, "required": [ diff --git a/schemas/2019-07-01/Microsoft.Resources.json b/schemas/2019-07-01/Microsoft.Resources.json index 09e3eaef86..727e39db91 100644 --- a/schemas/2019-07-01/Microsoft.Resources.json +++ b/schemas/2019-07-01/Microsoft.Resources.json @@ -47,16 +47,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -112,12 +102,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -127,61 +111,6 @@ "type" ], "description": "Microsoft.Resources/deployments" - }, - "resourceGroups": { - "type": "object", - "properties": { - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90, - "description": "the resource group name" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Resources/resourceGroups" - ] - }, - "apiVersion": { - "type": "string", - "enum": [ - "2019-07-01" - ] - }, - "location": { - "type": "string", - "description": "the resource group location" - }, - "tags": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The resource group tags." - } - }, - "required": [ - "name", - "type", - "apiVersion", - "location" - ], - "description": "Microsoft.Resources/resourceGroups" } }, "managementGroup_resourceDefinitions": { @@ -228,10 +157,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" } }, "required": [ @@ -287,10 +212,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" } }, "required": [ @@ -506,4 +427,4 @@ "description": "Entity representing the reference to the template." } } -} \ No newline at end of file +} diff --git a/schemas/2019-07-01/Microsoft.Solutions.json b/schemas/2019-07-01/Microsoft.Solutions.json new file mode 100644 index 0000000000..e5ab3ef9df --- /dev/null +++ b/schemas/2019-07-01/Microsoft.Solutions.json @@ -0,0 +1,909 @@ +{ + "id": "https://schema.management.azure.com/schemas/2019-07-01/Microsoft.Solutions.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Solutions", + "description": "Microsoft Solutions Resource Types", + "resourceDefinitions": { + "applicationDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-07-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "managedBy": { + "type": "string", + "description": "ID of the resource that manages this resource." + }, + "name": { + "type": "string", + "minLength": 3, + "maxLength": 64, + "description": "The name of the managed application definition." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application definition properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/Sku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SKU for the resource." + }, + "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.Solutions/applicationDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Solutions/applicationDefinitions" + }, + "applications": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-07-01" + ] + }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Identity for the resource." + }, + "kind": { + "oneOf": [ + { + "type": "string", + "pattern": "^[-\\w\\._,\\(\\)]+$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The kind of the managed application. Allowed values are MarketPlace and ServiceCatalog." + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "managedBy": { + "type": "string", + "description": "ID of the resource that manages this resource." + }, + "name": { + "type": "string", + "minLength": 3, + "maxLength": 64, + "description": "The name of the managed application." + }, + "plan": { + "oneOf": [ + { + "$ref": "#/definitions/Plan" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Plan for the managed application." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/Sku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SKU for the resource." + }, + "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.Solutions/applications" + ] + } + }, + "required": [ + "apiVersion", + "kind", + "name", + "properties", + "type" + ], + "description": "Microsoft.Solutions/applications" + }, + "jitRequests": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-07-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "name": { + "type": "string", + "description": "The name of the JIT request." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/JitRequestProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Information about JIT request properties" + }, + "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.Solutions/jitRequests" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Solutions/jitRequests" + } + }, + "definitions": { + "ApplicationAuthorization": { + "type": "object", + "properties": { + "principalId": { + "type": "string", + "description": "The provider's principal identifier. This is the identity that the provider will use to call ARM to manage the managed application resources." + }, + "roleDefinitionId": { + "type": "string", + "description": "The provider's role definition identifier. This role will define all the permissions that the provider must have on the managed application's container resource group. This role definition cannot have permission to delete the resource group." + } + }, + "required": [ + "principalId", + "roleDefinitionId" + ], + "description": "The managed application provider authorization." + }, + "ApplicationDefinitionArtifact": { + "type": "object", + "properties": { + "name": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "ApplicationResourceTemplate", + "CreateUiDefinition", + "MainTemplateParameters" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application definition artifact name." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "Template", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application definition artifact type." + }, + "uri": { + "type": "string", + "description": "The managed application definition artifact blob uri." + } + }, + "required": [ + "name", + "type", + "uri" + ], + "description": "Application definition artifact." + }, + "ApplicationDefinitionProperties": { + "type": "object", + "properties": { + "artifacts": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDefinitionArtifact" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The collection of managed application artifacts. The portal will use the files specified as artifacts to construct the user experience of creating a managed application from a managed application definition." + }, + "authorizations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationAuthorization" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application provider authorizations." + }, + "createUiDefinition": { + "type": "object", + "properties": {}, + "description": "The createUiDefinition json for the backing template with Microsoft.Solutions/applications resource. It can be a JObject or well-formed JSON string." + }, + "deploymentPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationDeploymentPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Managed application deployment policy." + }, + "description": { + "type": "string", + "description": "The managed application definition description." + }, + "displayName": { + "type": "string", + "description": "The managed application definition display name." + }, + "isEnabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A value indicating whether the package is enabled or not." + }, + "lockingPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationPackageLockingPolicyDefinition" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Managed application locking policy." + }, + "lockLevel": { + "oneOf": [ + { + "type": "string", + "enum": [ + "CanNotDelete", + "ReadOnly", + "None" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application lock level." + }, + "mainTemplate": { + "type": "object", + "properties": {}, + "description": "The inline main template json which has resources to be provisioned. It can be a JObject or well-formed JSON string." + }, + "managementPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationManagementPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Managed application management policy." + }, + "notificationPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationNotificationPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Managed application notification policy." + }, + "packageFileUri": { + "type": "string", + "description": "The managed application definition package file Uri. Use this element" + }, + "policies": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationPolicy" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application provider policies." + } + }, + "required": [ + "lockLevel" + ], + "description": "The managed application definition properties." + }, + "ApplicationDeploymentPolicy": { + "type": "object", + "properties": { + "deploymentMode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "Incremental", + "Complete" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application deployment mode." + } + }, + "required": [ + "deploymentMode" + ], + "description": "Managed application deployment policy." + }, + "ApplicationJitAccessPolicy": { + "type": "object", + "properties": { + "jitAccessEnabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether the JIT access is enabled." + }, + "jitApprovalMode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "AutoApprove", + "ManualApprove" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "JIT approval mode." + }, + "jitApprovers": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/JitApproverDefinition" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JIT approvers" + }, + "maximumJitAccessDuration": { + "type": "string", + "description": "The maximum duration JIT access is granted. This is an ISO8601 time period value." + } + }, + "required": [ + "jitAccessEnabled" + ], + "description": "Managed application Jit access policy." + }, + "ApplicationManagementPolicy": { + "type": "object", + "properties": { + "mode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "Unmanaged", + "Managed" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application management mode." + } + }, + "description": "Managed application management policy." + }, + "ApplicationNotificationEndpoint": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "The managed application notification endpoint uri." + } + }, + "required": [ + "uri" + ], + "description": "Managed application notification endpoint." + }, + "ApplicationNotificationPolicy": { + "type": "object", + "properties": { + "notificationEndpoints": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationNotificationEndpoint" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application notification endpoint." + } + }, + "required": [ + "notificationEndpoints" + ], + "description": "Managed application notification policy." + }, + "ApplicationPackageLockingPolicyDefinition": { + "type": "object", + "properties": { + "allowedActions": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The deny assignment excluded actions." + } + }, + "description": "Managed application locking policy." + }, + "ApplicationPolicy": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The policy name" + }, + "parameters": { + "type": "string", + "description": "The policy parameters." + }, + "policyDefinitionId": { + "type": "string", + "description": "The policy definition Id." + } + }, + "description": "Managed application policy." + }, + "ApplicationProperties": { + "type": "object", + "properties": { + "applicationDefinitionId": { + "type": "string", + "description": "The fully qualified path of managed application definition Id." + }, + "jitAccessPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationJitAccessPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Managed application Jit access policy." + }, + "managedResourceGroupId": { + "type": "string", + "description": "The managed resource group Id." + }, + "parameters": { + "type": "object", + "properties": {}, + "description": "Name and value pairs that define the managed application parameters. It can be a JObject or a well formed JSON string." + } + }, + "description": "The managed application properties." + }, + "Identity": { + "type": "object", + "properties": { + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "SystemAssigned", + "UserAssigned", + "SystemAssigned, UserAssigned", + "None" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The identity type." + }, + "userAssignedIdentities": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedResourceIdentity" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The list of user identities associated with the resource. The user identity dictionary key references will be resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'." + } + }, + "description": "Identity for the resource." + }, + "JitApproverDefinition": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The approver display name." + }, + "id": { + "type": "string", + "description": "The approver service principal Id." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "user", + "group" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The approver type." + } + }, + "required": [ + "id" + ], + "description": "JIT approver definition." + }, + "JitAuthorizationPolicies": { + "type": "object", + "properties": { + "principalId": { + "type": "string", + "description": "The the principal id that will be granted JIT access." + }, + "roleDefinitionId": { + "type": "string", + "description": "The role definition id that will be granted to the Principal." + } + }, + "required": [ + "principalId", + "roleDefinitionId" + ], + "description": "The JIT authorization policies." + }, + "JitRequestProperties": { + "type": "object", + "properties": { + "applicationResourceId": { + "type": "string", + "description": "The parent application id." + }, + "jitAuthorizationPolicies": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/JitAuthorizationPolicies" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JIT authorization policies." + }, + "jitSchedulingPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/JitSchedulingPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JIT scheduling policies." + } + }, + "required": [ + "applicationResourceId", + "jitAuthorizationPolicies", + "jitSchedulingPolicy" + ], + "description": "Information about JIT request properties" + }, + "JitSchedulingPolicy": { + "type": "object", + "properties": { + "duration": { + "type": "string", + "format": "duration" + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the request." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "Once", + "Recurring" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of JIT schedule." + } + }, + "required": [ + "duration", + "startTime", + "type" + ], + "description": "The JIT scheduling policies." + }, + "Plan": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The plan name." + }, + "product": { + "type": "string", + "description": "The product code." + }, + "promotionCode": { + "type": "string", + "description": "The promotion code." + }, + "publisher": { + "type": "string", + "description": "The publisher ID." + }, + "version": { + "type": "string", + "description": "The plan's version." + } + }, + "required": [ + "name", + "product", + "publisher", + "version" + ], + "description": "Plan for the managed application." + }, + "Sku": { + "type": "object", + "properties": { + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The SKU capacity." + }, + "family": { + "type": "string", + "description": "The SKU family." + }, + "model": { + "type": "string", + "description": "The SKU model." + }, + "name": { + "type": "string", + "description": "The SKU name." + }, + "size": { + "type": "string", + "description": "The SKU size." + }, + "tier": { + "type": "string", + "description": "The SKU tier." + } + }, + "required": [ + "name" + ], + "description": "SKU for the resource." + }, + "UserAssignedResourceIdentity": { + "type": "object", + "properties": {}, + "description": "Represents the user assigned identity that is contained within the UserAssignedIdentities dictionary on ResourceIdentity" + } + } +} diff --git a/schemas/2019-08-01/Microsoft.Resources.json b/schemas/2019-08-01/Microsoft.Resources.json index 52066bc23a..cdfabdc3a2 100644 --- a/schemas/2019-08-01/Microsoft.Resources.json +++ b/schemas/2019-08-01/Microsoft.Resources.json @@ -47,16 +47,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -112,12 +102,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -127,61 +111,6 @@ "type" ], "description": "Microsoft.Resources/deployments" - }, - "resourceGroups": { - "type": "object", - "properties": { - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90, - "description": "the resource group name" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Resources/resourceGroups" - ] - }, - "apiVersion": { - "type": "string", - "enum": [ - "2019-08-01" - ] - }, - "location": { - "type": "string", - "description": "the resource group location" - }, - "tags": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The resource group tags." - } - }, - "required": [ - "name", - "type", - "apiVersion", - "location" - ], - "description": "Microsoft.Resources/resourceGroups" } }, "managementGroup_resourceDefinitions": { @@ -228,10 +157,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" } }, "required": [ @@ -288,10 +213,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" } }, "required": [ @@ -508,4 +429,4 @@ "description": "Entity representing the reference to the template." } } -} \ No newline at end of file +} diff --git a/schemas/2019-09-01/Microsoft.Authorization.json b/schemas/2019-09-01/Microsoft.Authorization.json index 5b40f803b4..2fe3acd28f 100644 --- a/schemas/2019-09-01/Microsoft.Authorization.json +++ b/schemas/2019-09-01/Microsoft.Authorization.json @@ -3,89 +3,101 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "Microsoft.Authorization", "description": "Microsoft Authorization Resource Types", - "resourceDefinitions": { - "policyAssignments": { + "resourceDefinitions": {}, + "subscription_resourceDefinitions": { + "policyDefinitions": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Authorization/policyAssignments" - ] - }, "apiVersion": { "type": "string", "enum": [ "2019-09-01" ] }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, "properties": { "oneOf": [ { - "$ref": "#/definitions/PolicyAssignmentProperties" + "$ref": "#/definitions/PolicyDefinitionProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Properties for the policy assignment." + "description": "The policy definition properties." }, - "sku": { - "oneOf": [ - { - "$ref": "#/definitions/PolicySku" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The policy sku. This property is optional, obsolete, and will be ignored." + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyDefinitions" + }, + "policySetDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-09-01" + ] }, - "location": { + "name": { "type": "string", - "description": "The location of the policy assignment. Only required when utilizing managed identity." + "description": "The name of the policy set definition to create." }, - "identity": { + "properties": { "oneOf": [ { - "$ref": "#/definitions/Identity" + "$ref": "#/definitions/PolicySetDefinitionProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The managed identity associated with the policy assignment." + "description": "The policy set definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policySetDefinitions" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], - "description": "Microsoft.Authorization/policyAssignments" - }, + "description": "Microsoft.Authorization/policySetDefinitions" + } + }, + "managementGroup_resourceDefinitions": { "policyDefinitions": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Authorization/policyDefinitions" - ] - }, "apiVersion": { "type": "string", "enum": [ "2019-09-01" ] }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, "properties": { "oneOf": [ { @@ -96,53 +108,127 @@ } ], "description": "The policy definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyDefinitions" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], "description": "Microsoft.Authorization/policyDefinitions" }, "policySetDefinitions": { "type": "object", "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-09-01" + ] + }, "name": { - "type": "string" + "type": "string", + "description": "The name of the policy set definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySetDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy set definition properties." }, "type": { "type": "string", "enum": [ "Microsoft.Authorization/policySetDefinitions" ] - }, + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policySetDefinitions" + } + }, + "unknown_resourceDefinitions": { + "policyAssignments": { + "type": "object", + "properties": { "apiVersion": { "type": "string", "enum": [ "2019-09-01" ] }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Identity for the resource." + }, + "location": { + "type": "string", + "description": "The location of the policy assignment. Only required when utilizing managed identity." + }, + "name": { + "type": "string", + "description": "The name of the policy assignment." + }, "properties": { "oneOf": [ { - "$ref": "#/definitions/PolicySetDefinitionProperties" + "$ref": "#/definitions/PolicyAssignmentProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The policy definition properties." + "description": "The policy assignment properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy sku. This property is optional, obsolete, and will be ignored." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyAssignments" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], - "description": "Microsoft.Authorization/policySetDefinitions" + "description": "Microsoft.Authorization/policyAssignments" } }, "definitions": { @@ -150,133 +236,153 @@ "type": "object", "properties": { "type": { - "type": "string", - "enum": [ - "SystemAssigned", - "None" + "oneOf": [ + { + "type": "string", + "enum": [ + "SystemAssigned", + "None" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } ], - "description": "The identity type." + "description": "The identity type. This is the only required field when adding a system assigned identity to a resource." } }, "description": "Identity for the resource." }, - "PolicyAssignmentProperties": { + "ParameterDefinitionsValue": { "type": "object", "properties": { - "displayName": { - "type": "string", - "description": "The display name of the policy assignment." - }, - "policyDefinitionId": { - "type": "string", - "description": "The ID of the policy definition or policy set definition being assigned." - }, - "scope": { - "type": "string", - "description": "The scope for the policy assignment." - }, - "notScopes": { + "allowedValues": { "oneOf": [ { "type": "array", "items": { - "type": "string" + "type": "object", + "properties": {} } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The policy's excluded scopes." + "description": "The allowed values for the parameter." }, - "parameters": { - "description": "Required if a parameter is used in policy rule." - }, - "description": { - "type": "string", - "description": "This message will be part of response in case of policy violation." + "defaultValue": { + "type": "object", + "properties": {}, + "description": "The default value for the parameter if no value is provided." }, "metadata": { - "description": "The policy assignment metadata." + "oneOf": [ + { + "$ref": "#/definitions/ParameterDefinitionsValueMetadata" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "General metadata for the parameter." }, - "enforcementMode": { + "type": { "oneOf": [ { "type": "string", "enum": [ - "Default", - "DoNotEnforce" + "String", + "Array", + "Object", + "Boolean", + "Integer", + "Float", + "DateTime" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The policy assignment enforcement mode. Possible values are Default and DoNotEnforce. DoNotEnforce indicates that the policy should evaluate but not take action (i.e. not deny or append)." + "description": "The data type of the parameter." } }, - "description": "The policy assignment properties." + "description": "The definition of a parameter that can be provided to the policy." }, - "PolicyDefinitionProperties": { + "ParameterDefinitionsValueMetadata": { "type": "object", "properties": { - "policyType": { + "additionalProperties": { "oneOf": [ { - "type": "string", - "enum": [ - "NotSpecified", - "BuiltIn", - "Custom", - "Static" - ] + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + }, + "properties": {} }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static." + "description": "Unmatched properties from the message are deserialized this collection" }, - "mode": { + "description": { "type": "string", - "description": "The policy definition mode. Some examples are All, Indexed, Microsoft.KeyVault.Data." + "description": "The description of the parameter." }, "displayName": { "type": "string", - "description": "The display name of the policy definition." - }, - "description": { - "type": "string", - "description": "The policy definition description." - }, - "policyRule": { - "description": "The policy rule." - }, - "metadata": { - "description": "The policy definition metadata." - }, - "parameters": { - "description": "Required if a parameter is used in policy rule." + "description": "The display name for the parameter." } }, - "required": [ "policyRule" ], - "description": "The policy definition properties." + "description": "General metadata for the parameter." }, - "PolicyDefinitionReference": { + "ParameterValuesValue": { "type": "object", "properties": { - "policyDefinitionId": { + "value": { + "type": "object", + "properties": {}, + "description": "The value of the parameter." + } + }, + "description": "The value of a parameter." + }, + "PolicyAssignmentProperties": { + "type": "object", + "properties": { + "description": { "type": "string", - "description": "The ID of the policy definition or policy set definition." - }, - "parameters": { - "description": "Required if a parameter is used in policy rule." + "description": "This message will be part of response in case of policy violation." }, - "policyDefinitionReferenceId": { + "displayName": { "type": "string", - "description": "The ID that uniquely represents this policy definition reference within this policy set definition." + "description": "The display name of the policy assignment." }, - "groupNames": { + "enforcementMode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Default", + "DoNotEnforce" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy assignment enforcement mode. Possible values are Default and DoNotEnforce." + }, + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy assignment metadata. Metadata is an open ended object and is typically a collection of key value pairs." + }, + "notScopes": { "oneOf": [ { "type": "array", @@ -288,17 +394,103 @@ "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The groups that this policy definition reference belongs to." + "description": "The policy's excluded scopes." + }, + "parameters": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ParameterValuesValue" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The parameter values for the policy rule. The keys are the parameter names." + }, + "policyDefinitionId": { + "type": "string", + "description": "The ID of the policy definition or policy set definition being assigned." + }, + "scope": { + "type": "string", + "description": "The scope for the policy assignment." + } + }, + "description": "The policy assignment properties." + }, + "PolicyDefinitionGroup": { + "type": "object", + "properties": { + "additionalMetadataId": { + "type": "string", + "description": "A resource ID of a resource that contains additional metadata about the group." + }, + "category": { + "type": "string", + "description": "The group's category." + }, + "description": { + "type": "string", + "description": "The group's description." + }, + "displayName": { + "type": "string", + "description": "The group's display name." + }, + "name": { + "type": "string", + "description": "The name of the group." } }, "required": [ - "policyDefinitionId" + "name" ], - "description": "The policy definition reference." + "description": "The policy definition group." }, - "PolicySetDefinitionProperties": { + "PolicyDefinitionProperties": { "type": "object", "properties": { + "description": { + "type": "string", + "description": "The policy definition description." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy definition." + }, + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy definition metadata. Metadata is an open ended object and is typically a collection of key value pairs." + }, + "mode": { + "type": "string", + "description": "The policy definition mode. Some examples are All, Indexed, Microsoft.KeyVault.Data." + }, + "parameters": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ParameterDefinitionsValue" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The parameter definitions for parameters used in the policy. The keys are the parameter names." + }, + "policyRule": { + "type": "object", + "properties": {}, + "description": "The policy rule." + }, "policyType": { "oneOf": [ { @@ -315,48 +507,131 @@ } ], "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static." + } + }, + "description": "The policy definition properties." + }, + "PolicyDefinitionReference": { + "type": "object", + "properties": { + "groupNames": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The name of the groups that this policy definition reference belongs to." }, - "displayName": { + "parameters": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ParameterValuesValue" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The parameter values for the policy rule. The keys are the parameter names." + }, + "policyDefinitionId": { "type": "string", - "description": "The display name of the policy set definition." + "description": "The ID of the policy definition or policy set definition." }, + "policyDefinitionReferenceId": { + "type": "string", + "description": "A unique id (within the policy set definition) for this policy definition reference." + } + }, + "required": [ + "policyDefinitionId" + ], + "description": "The policy definition reference." + }, + "PolicySetDefinitionProperties": { + "type": "object", + "properties": { "description": { "type": "string", "description": "The policy set definition description." }, + "displayName": { + "type": "string", + "description": "The display name of the policy set definition." + }, "metadata": { - "description": "The policy set definition metadata." + "type": "object", + "properties": {}, + "description": "The policy set definition metadata. Metadata is an open ended object and is typically a collection of key value pairs." }, "parameters": { - "description": "The policy set definition parameters that can be used in policy definition references." + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ParameterDefinitionsValue" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The parameter definitions for parameters used in the policy. The keys are the parameter names." }, - "policyDefinitions": { + "policyDefinitionGroups": { "oneOf": [ { "type": "array", "items": { - "$ref": "#/definitions/PolicyDefinitionReference" + "$ref": "#/definitions/PolicyDefinitionGroup" } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "An array of policy definition references." + "description": "The metadata describing groups of policy definition references within the policy set definition." }, - "policyDefinitionGroups": { + "policyDefinitions": { "oneOf": [ { "type": "array", "items": { - "$ref": "#/definitions/PolicyDefinitionGroup" + "$ref": "#/definitions/PolicyDefinitionReference" } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "An array of groups that policy definitions within this policy set definition can reside in. These groups can be used when aggregating compliance results for this policy set definition." + "description": "An array of policy definition references." + }, + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "BuiltIn", + "Custom", + "Static" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static." } }, "required": [ @@ -364,35 +639,6 @@ ], "description": "The policy set definition properties." }, - "PolicyDefinitionGroup": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the group." - }, - "category": { - "type": "string", - "description": "The group's category." - }, - "displayName": { - "type": "string", - "description": "The group's display name." - }, - "description": { - "type": "string", - "description": "A description of the group." - }, - "additionalMetadataId": { - "type": "string", - "description": "A resource ID of a resource that contains additional metadata about the group." - } - }, - "required": [ - "name" - ], - "description": "A group that policy definitions within the policy set definition can reside in. These groups can be used when aggregating compliance results for this policy set definition." - }, "PolicySku": { "type": "object", "properties": { diff --git a/schemas/2019-10-01-preview/Microsoft.Resources.json b/schemas/2019-10-01-preview/Microsoft.Resources.json index d963ef0138..75ba76bd53 100644 --- a/schemas/2019-10-01-preview/Microsoft.Resources.json +++ b/schemas/2019-10-01-preview/Microsoft.Resources.json @@ -439,62 +439,5 @@ }, "description": "User-assigned managed identity." } - }, - "subscription_resourceDefinitions": { - "resourceGroups": { - "type": "object", - "properties": { - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90, - "description": "the resource group name" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Resources/resourceGroups" - ] - }, - "apiVersion": { - "type": "string", - "enum": [ - "2019-10-01-preview" - ] - }, - "location": { - "type": "string", - "description": "the resource group location" - }, - "tags": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The resource group tags." - } - }, - "required": [ - "name", - "type", - "apiVersion", - "location" - ], - "description": "Microsoft.Resources/resourceGroups" - } } -} \ No newline at end of file +} diff --git a/schemas/2019-10-01/Microsoft.Resources.json b/schemas/2019-10-01/Microsoft.Resources.json index 4828bdda88..3240e3e688 100644 --- a/schemas/2019-10-01/Microsoft.Resources.json +++ b/schemas/2019-10-01/Microsoft.Resources.json @@ -62,16 +62,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -142,12 +132,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -157,61 +141,6 @@ "type" ], "description": "Microsoft.Resources/deployments" - }, - "resourceGroups": { - "type": "object", - "properties": { - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90, - "description": "the resource group name" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Resources/resourceGroups" - ] - }, - "apiVersion": { - "type": "string", - "enum": [ - "2019-10-01" - ] - }, - "location": { - "type": "string", - "description": "the resource group location" - }, - "tags": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The resource group tags." - } - }, - "required": [ - "name", - "type", - "apiVersion", - "location" - ], - "description": "Microsoft.Resources/resourceGroups" } }, "managementGroup_resourceDefinitions": { @@ -273,10 +202,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" } }, "required": [ @@ -348,10 +273,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" } }, "required": [ @@ -644,4 +565,4 @@ "description": "Entity representing the reference to the template." } } -} \ No newline at end of file +} diff --git a/schemas/2020-03-01/Microsoft.Authorization.json b/schemas/2020-03-01/Microsoft.Authorization.json new file mode 100644 index 0000000000..ce8884aaff --- /dev/null +++ b/schemas/2020-03-01/Microsoft.Authorization.json @@ -0,0 +1,660 @@ +{ + "id": "https://schema.management.azure.com/schemas/2020-03-01/Microsoft.Authorization.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Authorization", + "description": "Microsoft Authorization Resource Types", + "resourceDefinitions": {}, + "subscription_resourceDefinitions": { + "policyDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-03-01" + ] + }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyDefinitions" + }, + "policySetDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-03-01" + ] + }, + "name": { + "type": "string", + "description": "The name of the policy set definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySetDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy set definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policySetDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policySetDefinitions" + } + }, + "managementGroup_resourceDefinitions": { + "policyDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-03-01" + ] + }, + "name": { + "type": "string", + "description": "The name of the policy definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyDefinitions" + }, + "policySetDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-03-01" + ] + }, + "name": { + "type": "string", + "description": "The name of the policy set definition to create." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySetDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy set definition properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policySetDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policySetDefinitions" + } + }, + "unknown_resourceDefinitions": { + "policyAssignments": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-03-01" + ] + }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Identity for the resource." + }, + "location": { + "type": "string", + "description": "The location of the policy assignment. Only required when utilizing managed identity." + }, + "name": { + "type": "string", + "description": "The name of the policy assignment." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyAssignmentProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy assignment properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy sku. This property is optional, obsolete, and will be ignored." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyAssignments" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyAssignments" + } + }, + "definitions": { + "Identity": { + "type": "object", + "properties": { + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "SystemAssigned", + "None" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The identity type. This is the only required field when adding a system assigned identity to a resource." + } + }, + "description": "Identity for the resource." + }, + "ParameterDefinitionsValue": { + "type": "object", + "properties": { + "allowedValues": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "object", + "properties": {} + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The allowed values for the parameter." + }, + "defaultValue": { + "type": "object", + "properties": {}, + "description": "The default value for the parameter if no value is provided." + }, + "metadata": { + "oneOf": [ + { + "$ref": "#/definitions/ParameterDefinitionsValueMetadata" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "General metadata for the parameter." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "String", + "Array", + "Object", + "Boolean", + "Integer", + "Float", + "DateTime" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The data type of the parameter." + } + }, + "description": "The definition of a parameter that can be provided to the policy." + }, + "ParameterDefinitionsValueMetadata": { + "type": "object", + "properties": { + "additionalProperties": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Unmatched properties from the message are deserialized this collection" + }, + "description": { + "type": "string", + "description": "The description of the parameter." + }, + "displayName": { + "type": "string", + "description": "The display name for the parameter." + } + }, + "description": "General metadata for the parameter." + }, + "ParameterValuesValue": { + "type": "object", + "properties": { + "value": { + "type": "object", + "properties": {}, + "description": "The value of the parameter." + } + }, + "description": "The value of a parameter." + }, + "PolicyAssignmentProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "This message will be part of response in case of policy violation." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy assignment." + }, + "enforcementMode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Default", + "DoNotEnforce" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy assignment enforcement mode. Possible values are Default and DoNotEnforce." + }, + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy assignment metadata. Metadata is an open ended object and is typically a collection of key value pairs." + }, + "notScopes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy's excluded scopes." + }, + "parameters": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ParameterValuesValue" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The parameter values for the policy rule. The keys are the parameter names." + }, + "policyDefinitionId": { + "type": "string", + "description": "The ID of the policy definition or policy set definition being assigned." + }, + "scope": { + "type": "string", + "description": "The scope for the policy assignment." + } + }, + "description": "The policy assignment properties." + }, + "PolicyDefinitionGroup": { + "type": "object", + "properties": { + "additionalMetadataId": { + "type": "string", + "description": "A resource ID of a resource that contains additional metadata about the group." + }, + "category": { + "type": "string", + "description": "The group's category." + }, + "description": { + "type": "string", + "description": "The group's description." + }, + "displayName": { + "type": "string", + "description": "The group's display name." + }, + "name": { + "type": "string", + "description": "The name of the group." + } + }, + "required": [ + "name" + ], + "description": "The policy definition group." + }, + "PolicyDefinitionProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The policy definition description." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy definition." + }, + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy definition metadata. Metadata is an open ended object and is typically a collection of key value pairs." + }, + "mode": { + "type": "string", + "description": "The policy definition mode. Some examples are All, Indexed, Microsoft.KeyVault.Data." + }, + "parameters": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ParameterDefinitionsValue" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The parameter definitions for parameters used in the policy. The keys are the parameter names." + }, + "policyRule": { + "type": "object", + "properties": {}, + "description": "The policy rule." + }, + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "BuiltIn", + "Custom", + "Static" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static." + } + }, + "description": "The policy definition properties." + }, + "PolicyDefinitionReference": { + "type": "object", + "properties": { + "groupNames": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The name of the groups that this policy definition reference belongs to." + }, + "parameters": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ParameterValuesValue" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The parameter values for the policy rule. The keys are the parameter names." + }, + "policyDefinitionId": { + "type": "string", + "description": "The ID of the policy definition or policy set definition." + }, + "policyDefinitionReferenceId": { + "type": "string", + "description": "A unique id (within the policy set definition) for this policy definition reference." + } + }, + "required": [ + "policyDefinitionId" + ], + "description": "The policy definition reference." + }, + "PolicySetDefinitionProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The policy set definition description." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy set definition." + }, + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy set definition metadata. Metadata is an open ended object and is typically a collection of key value pairs." + }, + "parameters": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ParameterDefinitionsValue" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The parameter definitions for parameters used in the policy. The keys are the parameter names." + }, + "policyDefinitionGroups": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/PolicyDefinitionGroup" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The metadata describing groups of policy definition references within the policy set definition." + }, + "policyDefinitions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/PolicyDefinitionReference" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "An array of policy definition references." + }, + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "BuiltIn", + "Custom", + "Static" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static." + } + }, + "required": [ + "policyDefinitions" + ], + "description": "The policy set definition properties." + }, + "PolicySku": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the policy sku. Possible values are A0 and A1." + }, + "tier": { + "type": "string", + "description": "The policy sku tier. Possible values are Free and Standard." + } + }, + "required": [ + "name" + ], + "description": "The policy sku. This property is optional, obsolete, and will be ignored." + } + } +} diff --git a/schemas/2020-06-01/Microsoft.Resources.json b/schemas/2020-06-01/Microsoft.Resources.json index 1b883277d2..426edbc675 100644 --- a/schemas/2020-06-01/Microsoft.Resources.json +++ b/schemas/2020-06-01/Microsoft.Resources.json @@ -62,16 +62,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -142,12 +132,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "resourceGroup": { - "type": "string", - "description": "The resource group to deploy to", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90 } }, "required": [ @@ -157,61 +141,6 @@ "type" ], "description": "Microsoft.Resources/deployments" - }, - "resourceGroups": { - "type": "object", - "properties": { - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[-\\w\\._\\(\\)]+$", - "maxLength": 90, - "description": "the resource group name" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Resources/resourceGroups" - ] - }, - "apiVersion": { - "type": "string", - "enum": [ - "2020-06-01" - ] - }, - "location": { - "type": "string", - "description": "the resource group location" - }, - "tags": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The resource group tags." - } - }, - "required": [ - "name", - "type", - "apiVersion", - "location" - ], - "description": "Microsoft.Resources/resourceGroups" } }, "managementGroup_resourceDefinitions": { @@ -273,10 +202,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" } }, "required": [ @@ -348,10 +273,6 @@ "enum": [ "Microsoft.Resources/deployments" ] - }, - "subscriptionId": { - "type": "string", - "description": "The subscription to deploy to" } }, "required": [ @@ -649,4 +570,4 @@ "description": "Entity representing the reference to the template." } } -} \ No newline at end of file +} diff --git a/schemas/2020-08-21-preview/Microsoft.Solutions.json b/schemas/2020-08-21-preview/Microsoft.Solutions.json new file mode 100644 index 0000000000..7ebd2db287 --- /dev/null +++ b/schemas/2020-08-21-preview/Microsoft.Solutions.json @@ -0,0 +1,913 @@ +{ + "id": "https://schema.management.azure.com/schemas/2020-08-21-preview/Microsoft.Solutions.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Solutions", + "description": "Microsoft Solutions Resource Types", + "resourceDefinitions": { + "applicationDefinitions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-08-21-preview" + ] + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "managedBy": { + "type": "string", + "description": "ID of the resource that manages this resource." + }, + "name": { + "type": "string", + "minLength": 3, + "maxLength": 64, + "description": "The name of the managed application definition." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationDefinitionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application definition properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/Sku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SKU for the resource." + }, + "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.Solutions/applicationDefinitions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Solutions/applicationDefinitions" + }, + "applications": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-08-21-preview" + ] + }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Identity for the resource." + }, + "kind": { + "oneOf": [ + { + "type": "string", + "pattern": "^[-\\w\\._,\\(\\)]+$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The kind of the managed application. Allowed values are MarketPlace and ServiceCatalog." + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "managedBy": { + "type": "string", + "description": "ID of the resource that manages this resource." + }, + "name": { + "type": "string", + "minLength": 3, + "maxLength": 64, + "description": "The name of the managed application." + }, + "plan": { + "oneOf": [ + { + "$ref": "#/definitions/Plan" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Plan for the managed application." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application properties." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/Sku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SKU for the resource." + }, + "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.Solutions/applications" + ] + } + }, + "required": [ + "apiVersion", + "kind", + "name", + "properties", + "type" + ], + "description": "Microsoft.Solutions/applications" + }, + "jitRequests": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-08-21-preview" + ] + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "name": { + "type": "string", + "description": "The name of the JIT request." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/JitRequestProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Information about JIT request properties" + }, + "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.Solutions/jitRequests" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Solutions/jitRequests" + } + }, + "definitions": { + "ApplicationAuthorization": { + "type": "object", + "properties": { + "principalId": { + "type": "string", + "description": "The provider's principal identifier. This is the identity that the provider will use to call ARM to manage the managed application resources." + }, + "roleDefinitionId": { + "type": "string", + "description": "The provider's role definition identifier. This role will define all the permissions that the provider must have on the managed application's container resource group. This role definition cannot have permission to delete the resource group." + } + }, + "required": [ + "principalId", + "roleDefinitionId" + ], + "description": "The managed application provider authorization." + }, + "ApplicationDefinitionArtifact": { + "type": "object", + "properties": { + "name": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "ApplicationResourceTemplate", + "CreateUiDefinition", + "MainTemplateParameters" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application definition artifact name." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "Template", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application definition artifact type." + }, + "uri": { + "type": "string", + "description": "The managed application definition artifact blob uri." + } + }, + "required": [ + "name", + "type", + "uri" + ], + "description": "Application definition artifact." + }, + "ApplicationDefinitionProperties": { + "type": "object", + "properties": { + "artifacts": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDefinitionArtifact" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The collection of managed application artifacts. The portal will use the files specified as artifacts to construct the user experience of creating a managed application from a managed application definition." + }, + "authorizations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationAuthorization" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application provider authorizations." + }, + "createUiDefinition": { + "type": "object", + "properties": {}, + "description": "The createUiDefinition json for the backing template with Microsoft.Solutions/applications resource. It can be a JObject or well-formed JSON string." + }, + "deploymentPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationDeploymentPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Managed application deployment policy." + }, + "description": { + "type": "string", + "description": "The managed application definition description." + }, + "displayName": { + "type": "string", + "description": "The managed application definition display name." + }, + "isEnabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A value indicating whether the package is enabled or not." + }, + "lockingPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationPackageLockingPolicyDefinition" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Managed application locking policy." + }, + "lockLevel": { + "oneOf": [ + { + "type": "string", + "enum": [ + "CanNotDelete", + "ReadOnly", + "None" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application lock level." + }, + "mainTemplate": { + "type": "object", + "properties": {}, + "description": "The inline main template json which has resources to be provisioned. It can be a JObject or well-formed JSON string." + }, + "managementPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationManagementPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Managed application management policy." + }, + "notificationPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationNotificationPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Managed application notification policy." + }, + "packageFileUri": { + "type": "string", + "description": "The managed application definition package file Uri. Use this element" + }, + "policies": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationPolicy" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application provider policies." + }, + "storageAccountId": { + "type": "string", + "description": "The storage account id for bring your own storage scenario." + } + }, + "required": [ + "lockLevel" + ], + "description": "The managed application definition properties." + }, + "ApplicationDeploymentPolicy": { + "type": "object", + "properties": { + "deploymentMode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "Incremental", + "Complete" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application deployment mode." + } + }, + "required": [ + "deploymentMode" + ], + "description": "Managed application deployment policy." + }, + "ApplicationJitAccessPolicy": { + "type": "object", + "properties": { + "jitAccessEnabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether the JIT access is enabled." + }, + "jitApprovalMode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "AutoApprove", + "ManualApprove" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "JIT approval mode." + }, + "jitApprovers": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/JitApproverDefinition" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JIT approvers" + }, + "maximumJitAccessDuration": { + "type": "string", + "description": "The maximum duration JIT access is granted. This is an ISO8601 time period value." + } + }, + "required": [ + "jitAccessEnabled" + ], + "description": "Managed application Jit access policy." + }, + "ApplicationManagementPolicy": { + "type": "object", + "properties": { + "mode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "Unmanaged", + "Managed" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application management mode." + } + }, + "description": "Managed application management policy." + }, + "ApplicationNotificationEndpoint": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "The managed application notification endpoint uri." + } + }, + "required": [ + "uri" + ], + "description": "Managed application notification endpoint." + }, + "ApplicationNotificationPolicy": { + "type": "object", + "properties": { + "notificationEndpoints": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationNotificationEndpoint" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The managed application notification endpoint." + } + }, + "required": [ + "notificationEndpoints" + ], + "description": "Managed application notification policy." + }, + "ApplicationPackageLockingPolicyDefinition": { + "type": "object", + "properties": { + "allowedActions": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The deny assignment excluded actions." + } + }, + "description": "Managed application locking policy." + }, + "ApplicationPolicy": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The policy name" + }, + "parameters": { + "type": "string", + "description": "The policy parameters." + }, + "policyDefinitionId": { + "type": "string", + "description": "The policy definition Id." + } + }, + "description": "Managed application policy." + }, + "ApplicationProperties": { + "type": "object", + "properties": { + "applicationDefinitionId": { + "type": "string", + "description": "The fully qualified path of managed application definition Id." + }, + "jitAccessPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationJitAccessPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Managed application Jit access policy." + }, + "managedResourceGroupId": { + "type": "string", + "description": "The managed resource group Id." + }, + "parameters": { + "type": "object", + "properties": {}, + "description": "Name and value pairs that define the managed application parameters. It can be a JObject or a well formed JSON string." + } + }, + "description": "The managed application properties." + }, + "Identity": { + "type": "object", + "properties": { + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "SystemAssigned", + "UserAssigned", + "SystemAssigned, UserAssigned", + "None" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The identity type." + }, + "userAssignedIdentities": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedResourceIdentity" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The list of user identities associated with the resource. The user identity dictionary key references will be resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'." + } + }, + "description": "Identity for the resource." + }, + "JitApproverDefinition": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The approver display name." + }, + "id": { + "type": "string", + "description": "The approver service principal Id." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "user", + "group" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The approver type." + } + }, + "required": [ + "id" + ], + "description": "JIT approver definition." + }, + "JitAuthorizationPolicies": { + "type": "object", + "properties": { + "principalId": { + "type": "string", + "description": "The the principal id that will be granted JIT access." + }, + "roleDefinitionId": { + "type": "string", + "description": "The role definition id that will be granted to the Principal." + } + }, + "required": [ + "principalId", + "roleDefinitionId" + ], + "description": "The JIT authorization policies." + }, + "JitRequestProperties": { + "type": "object", + "properties": { + "applicationResourceId": { + "type": "string", + "description": "The parent application id." + }, + "jitAuthorizationPolicies": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/JitAuthorizationPolicies" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JIT authorization policies." + }, + "jitSchedulingPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/JitSchedulingPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JIT scheduling policies." + } + }, + "required": [ + "applicationResourceId", + "jitAuthorizationPolicies", + "jitSchedulingPolicy" + ], + "description": "Information about JIT request properties" + }, + "JitSchedulingPolicy": { + "type": "object", + "properties": { + "duration": { + "type": "string", + "format": "duration" + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the request." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotSpecified", + "Once", + "Recurring" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of JIT schedule." + } + }, + "required": [ + "duration", + "startTime", + "type" + ], + "description": "The JIT scheduling policies." + }, + "Plan": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The plan name." + }, + "product": { + "type": "string", + "description": "The product code." + }, + "promotionCode": { + "type": "string", + "description": "The promotion code." + }, + "publisher": { + "type": "string", + "description": "The publisher ID." + }, + "version": { + "type": "string", + "description": "The plan's version." + } + }, + "required": [ + "name", + "product", + "publisher", + "version" + ], + "description": "Plan for the managed application." + }, + "Sku": { + "type": "object", + "properties": { + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The SKU capacity." + }, + "family": { + "type": "string", + "description": "The SKU family." + }, + "model": { + "type": "string", + "description": "The SKU model." + }, + "name": { + "type": "string", + "description": "The SKU name." + }, + "size": { + "type": "string", + "description": "The SKU size." + }, + "tier": { + "type": "string", + "description": "The SKU tier." + } + }, + "required": [ + "name" + ], + "description": "SKU for the resource." + }, + "UserAssignedResourceIdentity": { + "type": "object", + "properties": {}, + "description": "Represents the user assigned identity that is contained within the UserAssignedIdentities dictionary on ResourceIdentity" + } + } +}