diff --git a/schemas/2015-01-01/Microsoft.Authorization.json b/schemas/2015-01-01/Microsoft.Authorization.json index 947bc3d42a..d3c8942b2b 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..f0e1e0b8db --- /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." + } + } +} \ No newline at end of file diff --git a/schemas/2015-11-01/Microsoft.Authorization.json b/schemas/2015-11-01/Microsoft.Authorization.json new file mode 100644 index 0000000000..5322fc3406 --- /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." + } + } +} \ 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..346ff995c8 --- /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." + } + } +} \ 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..2b57c01865 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." } } -} +} \ No newline at end of file diff --git a/schemas/2016-09-01/Microsoft.Authorization.json b/schemas/2016-09-01/Microsoft.Authorization.json index 654927786b..5d6ccf5524 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." } } -} +} \ 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..ee204f19c1 --- /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." + } + } +} \ 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..9d2dd5b742 --- /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." + } + } +} \ No newline at end of file diff --git a/schemas/2017-09-01/Microsoft.Solutions.json b/schemas/2017-09-01/Microsoft.Solutions.json new file mode 100644 index 0000000000..8a7899d632 --- /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." + } + } +} \ 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..c4736924be 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": [ @@ -312,4 +414,4 @@ "description": "The policy sku. This property is optional, obsolete, and will be ignored." } } -} +} \ No newline at end of file diff --git a/schemas/2018-05-01/Microsoft.Authorization.json b/schemas/2018-05-01/Microsoft.Authorization.json index 5bf6770ea9..df09396ffa 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": [ @@ -341,4 +450,4 @@ "description": "The policy sku. This property is optional, obsolete, and will be ignored." } } -} +} \ No newline at end of file diff --git a/schemas/2018-05-01/subscriptionDeploymentTemplate.json b/schemas/2018-05-01/subscriptionDeploymentTemplate.json index 707a51bb79..e8f57db067 100644 --- a/schemas/2018-05-01/subscriptionDeploymentTemplate.json +++ b/schemas/2018-05-01/subscriptionDeploymentTemplate.json @@ -64,6 +64,27 @@ { "$ref": "https://schema.management.azure.com/schemas/2020-01-01/Microsoft.Advisor.json#/subscription_resourceDefinitions/configurations" }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/locks" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-10-01-preview/Microsoft.Authorization.json#/subscription_resourceDefinitions/policydefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-11-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policydefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2016-04-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policydefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2016-09-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/locks" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2016-12-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policyDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2017-06-01-preview/Microsoft.Authorization.json#/subscription_resourceDefinitions/policySetDefinitions" + }, { "$ref": "https://schema.management.azure.com/schemas/2017-09-01/Microsoft.Authorization.json#/resourceDefinitions/roleAssignments" }, @@ -79,6 +100,12 @@ { "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.Authorization.json#/resourceDefinitions/policySetDefinitions" }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policyDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policySetDefinitions" + }, { "$ref": "https://schema.management.azure.com/schemas/2018-05-01/Microsoft.Authorization.json#/resourceDefinitions/policyAssignments" }, @@ -88,6 +115,12 @@ { "$ref": "https://schema.management.azure.com/schemas/2018-05-01/Microsoft.Authorization.json#/resourceDefinitions/policySetDefinitions" }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-05-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policyDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-05-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policySetDefinitions" + }, { "$ref": "https://schema.management.azure.com/schemas/2019-01-01/Microsoft.Authorization.json#/resourceDefinitions/policyAssignments" }, @@ -97,6 +130,12 @@ { "$ref": "https://schema.management.azure.com/schemas/2019-01-01/Microsoft.Authorization.json#/resourceDefinitions/policySetDefinitions" }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-01-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policyDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-01-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policySetDefinitions" + }, { "$ref": "https://schema.management.azure.com/schemas/2019-06-01/Microsoft.Authorization.json#/resourceDefinitions/policyAssignments" }, @@ -106,6 +145,12 @@ { "$ref": "https://schema.management.azure.com/schemas/2019-06-01/Microsoft.Authorization.json#/resourceDefinitions/policySetDefinitions" }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-06-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policyDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-06-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policySetDefinitions" + }, { "$ref": "https://schema.management.azure.com/schemas/2019-09-01/Microsoft.Authorization.json#/resourceDefinitions/policyAssignments" }, @@ -115,6 +160,18 @@ { "$ref": "https://schema.management.azure.com/schemas/2019-09-01/Microsoft.Authorization.json#/resourceDefinitions/policySetDefinitions" }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-09-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policyDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-09-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policySetDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-03-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policyDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-03-01/Microsoft.Authorization.json#/subscription_resourceDefinitions/policySetDefinitions" + }, { "$ref": "https://schema.management.azure.com/schemas/2018-11-01-preview/Microsoft.Billing.json#/subscription_resourceDefinitions/billingAccounts_lineOfCredit" }, diff --git a/schemas/2018-06-01/Microsoft.Solutions.json b/schemas/2018-06-01/Microsoft.Solutions.json new file mode 100644 index 0000000000..921655c03a --- /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." + } + } +} \ No newline at end of file diff --git a/schemas/2019-01-01/Microsoft.Authorization.json b/schemas/2019-01-01/Microsoft.Authorization.json index d0b21e61ed..414d2298e6 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": [ @@ -330,4 +438,4 @@ "description": "The policy sku. This property is optional, obsolete, and will be ignored." } } -} +} \ 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..28393d6a82 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": [ @@ -345,4 +453,4 @@ "description": "The policy sku. This property is optional, obsolete, and will be ignored." } } -} +} \ 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..8f5f33160b --- /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" + } + } +} \ No newline at end of file diff --git a/schemas/2019-08-01/managementGroupDeploymentTemplate.json b/schemas/2019-08-01/managementGroupDeploymentTemplate.json index a064324e7e..34223e77e0 100644 --- a/schemas/2019-08-01/managementGroupDeploymentTemplate.json +++ b/schemas/2019-08-01/managementGroupDeploymentTemplate.json @@ -52,12 +52,24 @@ }, { "oneOf": [ + { + "$ref": "https://schema.management.azure.com/schemas/2016-12-01/Microsoft.Authorization.json#/managementGroup_resourceDefinitions/policyDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2017-06-01-preview/Microsoft.Authorization.json#/managementGroup_resourceDefinitions/policySetDefinitions" + }, { "$ref": "https://schema.management.azure.com/schemas/2017-09-01/Microsoft.Authorization.json#/resourceDefinitions/roleAssignments" }, { "$ref": "https://schema.management.azure.com/schemas/2017-09-01/Microsoft.Authorization.json#/resourceDefinitions/roleDefinitions" }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.Authorization.json#/managementGroup_resourceDefinitions/policyDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.Authorization.json#/managementGroup_resourceDefinitions/policySetDefinitions" + }, { "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.Authorization.json#/resourceDefinitions/policyAssignments" }, @@ -67,6 +79,12 @@ { "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.Authorization.json#/resourceDefinitions/policySetDefinitions" }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-05-01/Microsoft.Authorization.json#/managementGroup_resourceDefinitions/policyDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-05-01/Microsoft.Authorization.json#/managementGroup_resourceDefinitions/policySetDefinitions" + }, { "$ref": "https://schema.management.azure.com/schemas/2018-05-01/Microsoft.Authorization.json#/resourceDefinitions/policyAssignments" }, @@ -76,6 +94,12 @@ { "$ref": "https://schema.management.azure.com/schemas/2018-05-01/Microsoft.Authorization.json#/resourceDefinitions/policySetDefinitions" }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-01-01/Microsoft.Authorization.json#/managementGroup_resourceDefinitions/policyDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-01-01/Microsoft.Authorization.json#/managementGroup_resourceDefinitions/policySetDefinitions" + }, { "$ref": "https://schema.management.azure.com/schemas/2019-01-01/Microsoft.Authorization.json#/resourceDefinitions/policyAssignments" }, @@ -85,6 +109,12 @@ { "$ref": "https://schema.management.azure.com/schemas/2019-01-01/Microsoft.Authorization.json#/resourceDefinitions/policySetDefinitions" }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-06-01/Microsoft.Authorization.json#/managementGroup_resourceDefinitions/policyDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-06-01/Microsoft.Authorization.json#/managementGroup_resourceDefinitions/policySetDefinitions" + }, { "$ref": "https://schema.management.azure.com/schemas/2019-06-01/Microsoft.Authorization.json#/resourceDefinitions/policyAssignments" }, @@ -94,6 +124,12 @@ { "$ref": "https://schema.management.azure.com/schemas/2019-06-01/Microsoft.Authorization.json#/resourceDefinitions/policySetDefinitions" }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-09-01/Microsoft.Authorization.json#/managementGroup_resourceDefinitions/policyDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-09-01/Microsoft.Authorization.json#/managementGroup_resourceDefinitions/policySetDefinitions" + }, { "$ref": "https://schema.management.azure.com/schemas/2019-09-01/Microsoft.Authorization.json#/resourceDefinitions/policyAssignments" }, @@ -103,6 +139,12 @@ { "$ref": "https://schema.management.azure.com/schemas/2019-09-01/Microsoft.Authorization.json#/resourceDefinitions/policySetDefinitions" }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-03-01/Microsoft.Authorization.json#/managementGroup_resourceDefinitions/policyDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-03-01/Microsoft.Authorization.json#/managementGroup_resourceDefinitions/policySetDefinitions" + }, { "$ref": "https://schema.management.azure.com/schemas/2017-11-11-preview/Microsoft.Blueprint.json#/managementGroup_resourceDefinitions/blueprints" }, diff --git a/schemas/2019-09-01/Microsoft.Authorization.json b/schemas/2019-09-01/Microsoft.Authorization.json index 5b40f803b4..4b630ed47c 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": { @@ -411,4 +657,4 @@ "description": "The policy sku. This property is optional, obsolete, and will be ignored." } } -} +} \ 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..da26835210 --- /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." + } + } +} \ No newline at end of file diff --git a/schemas/2020-07-01-preview/Microsoft.Authorization.json b/schemas/2020-07-01-preview/Microsoft.Authorization.json new file mode 100644 index 0000000000..aacbebb9fe --- /dev/null +++ b/schemas/2020-07-01-preview/Microsoft.Authorization.json @@ -0,0 +1,111 @@ +{ + "id": "https://schema.management.azure.com/schemas/2020-07-01-preview/Microsoft.Authorization.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Authorization", + "description": "Microsoft Authorization Resource Types", + "resourceDefinitions": {}, + "unknown_resourceDefinitions": { + "policyExemptions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-07-01-preview" + ] + }, + "name": { + "type": "string", + "description": "The name of the policy exemption to delete." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyExemptionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy exemption properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Authorization/policyExemptions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Authorization/policyExemptions" + } + }, + "definitions": { + "PolicyExemptionProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The description of the policy exemption." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy exemption." + }, + "exemptionCategory": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Waiver", + "Mitigated" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy exemption category. Possible values are Waiver and Mitigated." + }, + "expiresOn": { + "type": "string", + "format": "date-time", + "description": "The expiration date and time (in UTC ISO 8601 format yyyy-MM-ddTHH:mm:ssZ) of the policy exemption." + }, + "metadata": { + "type": "object", + "properties": {}, + "description": "The policy exemption metadata. Metadata is an open ended object and is typically a collection of key value pairs." + }, + "policyAssignmentId": { + "type": "string", + "description": "The ID of the policy assignment that is being exempted." + }, + "policyDefinitionReferenceIds": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The policy definition reference ID list when the associated policy assignment is an assignment of a policy set definition." + } + }, + "required": [ + "exemptionCategory", + "policyAssignmentId" + ], + "description": "The policy exemption properties." + } + } +} \ 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..aaaa4ac791 --- /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" + } + } +} \ No newline at end of file diff --git a/schemas/common/autogeneratedResources.json b/schemas/common/autogeneratedResources.json index c21887ae4a..967e72ed92 100644 --- a/schemas/common/autogeneratedResources.json +++ b/schemas/common/autogeneratedResources.json @@ -979,6 +979,12 @@ { "$ref": "https://schema.management.azure.com/schemas/2018-09-01-preview/Microsoft.Attestation.json#/resourceDefinitions/attestationProviders" }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/Microsoft.Authorization.json#/resourceDefinitions/locks" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2016-09-01/Microsoft.Authorization.json#/resourceDefinitions/locks" + }, { "$ref": "https://schema.management.azure.com/schemas/2015-10-31/Microsoft.Automation.json#/resourceDefinitions/automationAccounts" }, @@ -4453,6 +4459,42 @@ { "$ref": "https://schema.management.azure.com/schemas/2020-07-01-preview/Microsoft.SignalRService.json#/resourceDefinitions/signalR_privateEndpointConnections" }, + { + "$ref": "https://schema.management.azure.com/schemas/2016-09-01-preview/Microsoft.Solutions.json#/resourceDefinitions/applianceDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2016-09-01-preview/Microsoft.Solutions.json#/resourceDefinitions/appliances" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2017-09-01/Microsoft.Solutions.json#/resourceDefinitions/applicationDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2017-09-01/Microsoft.Solutions.json#/resourceDefinitions/applications" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-06-01/Microsoft.Solutions.json#/resourceDefinitions/applicationDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-06-01/Microsoft.Solutions.json#/resourceDefinitions/applications" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-07-01/Microsoft.Solutions.json#/resourceDefinitions/applicationDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-07-01/Microsoft.Solutions.json#/resourceDefinitions/applications" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-07-01/Microsoft.Solutions.json#/resourceDefinitions/jitRequests" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-08-21-preview/Microsoft.Solutions.json#/resourceDefinitions/applicationDefinitions" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-08-21-preview/Microsoft.Solutions.json#/resourceDefinitions/applications" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-08-21-preview/Microsoft.Solutions.json#/resourceDefinitions/jitRequests" + }, { "$ref": "https://schema.management.azure.com/schemas/2014-04-01/Microsoft.Sql.json#/resourceDefinitions/servers" },