diff --git a/schemas/2014-04-01-preview/deploymentTemplate.json b/schemas/2014-04-01-preview/deploymentTemplate.json index f49832eb06..25d9ead9b3 100644 --- a/schemas/2014-04-01-preview/deploymentTemplate.json +++ b/schemas/2014-04-01-preview/deploymentTemplate.json @@ -550,6 +550,10 @@ { "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.BatchAI.json#/resourceDefinitions/fileServers" }, { "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.BatchAI.json#/resourceDefinitions/jobs" }, { "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.Insights.json#resourceDefinitions/metricAlerts" }, + { "$ref": "https://schema.management.azure.com/schemas/2016-12-01/Microsoft.RecoveryServices.json#/resourceDefinitions/vaults_backupFabrics_protectionContainers" }, + { "$ref": "https://schema.management.azure.com/schemas/2016-12-01/Microsoft.RecoveryServices.json#/resourceDefinitions/vaults_backupFabrics_protectionContainers_protectedItems" }, + { "$ref": "https://schema.management.azure.com/schemas/2016-12-01/Microsoft.RecoveryServices.json#/resourceDefinitions/vaults_backupPolicies" }, + { "$ref": "https://schema.management.azure.com/schemas/2017-07-01/Microsoft.RecoveryServices.json#/resourceDefinitions/vaults_backupFabrics_backupProtectionIntent" }, { "$ref": "#/definitions/resourceGeneric" } ] } diff --git a/schemas/2015-01-01/deploymentTemplate.json b/schemas/2015-01-01/deploymentTemplate.json index f7422f8676..a1c3e58aec 100644 --- a/schemas/2015-01-01/deploymentTemplate.json +++ b/schemas/2015-01-01/deploymentTemplate.json @@ -554,7 +554,11 @@ { "$ref": "https://schema.management.azure.com/schemas/2018-01-01/Microsoft.EventGrid.json#/resourceDefinitions/topics" }, { "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.BatchAI.json#/resourceDefinitions/clusters" }, { "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.BatchAI.json#/resourceDefinitions/fileServers" }, - { "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.BatchAI.json#/resourceDefinitions/jobs" } + { "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.BatchAI.json#/resourceDefinitions/jobs" }, + { "$ref": "https://schema.management.azure.com/schemas/2016-12-01/Microsoft.RecoveryServices.json#/resourceDefinitions/vaults_backupFabrics_protectionContainers" }, + { "$ref": "https://schema.management.azure.com/schemas/2016-12-01/Microsoft.RecoveryServices.json#/resourceDefinitions/vaults_backupFabrics_protectionContainers_protectedItems" }, + { "$ref": "https://schema.management.azure.com/schemas/2016-12-01/Microsoft.RecoveryServices.json#/resourceDefinitions/vaults_backupPolicies" }, + { "$ref": "https://schema.management.azure.com/schemas/2017-07-01/Microsoft.RecoveryServices.json#/resourceDefinitions/vaults_backupFabrics_backupProtectionIntent" } ] } ] diff --git a/schemas/2016-12-01/Microsoft.RecoveryServices.json b/schemas/2016-12-01/Microsoft.RecoveryServices.json new file mode 100644 index 0000000000..6e90972e39 --- /dev/null +++ b/schemas/2016-12-01/Microsoft.RecoveryServices.json @@ -0,0 +1,4282 @@ +{ + "id": "https://schema.management.azure.com/schemas/2016-12-01/Microsoft.RecoveryServices.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.RecoveryServices", + "description": "Microsoft RecoveryServices Resource Types", + "resourceDefinitions": { + "vaults_backupFabrics_protectionContainers": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-12-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProtectionContainer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "ProtectionContainerResource properties" + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/vaults_backupFabrics_protectionContainers_protectedItems_childResource" + } + ] + } + } + }, + "required": [ + "name", + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers" + }, + "vaults_backupFabrics_protectionContainers_protectedItems": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-12-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProtectedItem" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "ProtectedItemResource properties" + } + }, + "required": [ + "name", + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems" + }, + "vaults_backupPolicies": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupPolicies" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-12-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProtectionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "ProtectionPolicyResource properties" + } + }, + "required": [ + "name", + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.RecoveryServices/vaults/backupPolicies" + } + }, + "definitions": { + "AzureBackupServerContainer": { + "type": "object", + "oneOf": [ + { + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureBackupServerContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "canReRegister": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Specifies whether the container is re-registrable." + }, + "containerId": { + "type": "string", + "description": "ID of container." + }, + "protectedItemCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Number of protected items in the BackupEngine" + }, + "dpmAgentVersion": { + "type": "string", + "description": "Backup engine Agent version" + }, + "dpmServers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of BackupEngines protecting the container" + }, + "upgradeAvailable": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "To check if upgrade available" + }, + "protectionStatus": { + "type": "string", + "description": "Protection status of the container." + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/DPMContainerExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Extended Info of the container." + }, + "containerType": { + "type": "string" + } + }, + "required": [ + "containerType" + ], + "description": "AzureBackupServer (DPMVenus) workload-specific protection container." + }, + "AzureFileshareProtectedItem": { + "type": "object", + "oneOf": [ + { + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureFileShareProtectedItem" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "friendlyName": { + "type": "string", + "description": "Friendly name of the fileshare represented by this backup item." + }, + "protectionStatus": { + "type": "string", + "description": "Backup status of this backup item." + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "healthStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Passed", + "ActionRequired", + "ActionSuggested", + "Invalid" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "backups running status for this backup item." + }, + "lastBackupStatus": { + "type": "string", + "description": "Last backup operation status. Possible values: Healthy, Unhealthy." + }, + "lastBackupTime": { + "type": "string", + "format": "date-time", + "description": "Timestamp of the last backup operation on this backup item." + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureFileshareProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Additional information with this backup item." + }, + "protectedItemType": { + "type": "string" + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure File Share workload-specific backup item." + }, + "AzureFileshareProtectedItemExtendedInfo": { + "type": "object", + "properties": { + "oldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "The oldest backup copy available for this item in the service." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Number of available backup copies associated with this backup item." + }, + "policyState": { + "type": "string", + "description": "Indicates consistency of policy object and policy applied to this backup item." + } + }, + "description": "Additional information about Azure File Share backup item." + }, + "AzureFileShareProtectionPolicy": { + "type": "object", + "oneOf": [ + { + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureStorage" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "workLoadType": { + "type": "string", + "description": "Type of workload for the backup management" + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Backup schedule specified as part of backup policy." + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention policy with the details on backup copy retention ranges." + }, + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." + }, + "backupManagementType": { + "type": "string" + } + }, + "required": [ + "backupManagementType" + ], + "description": "AzureStorage backup policy." + }, + "AzureIaaSClassicComputeVMContainer": { + "type": "object", + "oneOf": [ + { + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Microsoft.ClassicCompute/virtualMachines" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "containerType": { + "type": "string" + } + }, + "required": [ + "containerType" + ], + "description": "IaaS VM workload-specific backup item representing a classic virtual machine." + }, + "AzureIaaSClassicComputeVMProtectedItem": { + "type": "object", + "oneOf": [ + { + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Microsoft.ClassicCompute/virtualMachines" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "protectedItemType": { + "type": "string" + } + }, + "required": [ + "protectedItemType" + ], + "description": "IaaS VM workload-specific backup item representing the Classic Compute VM." + }, + "AzureIaaSComputeVMContainer": { + "type": "object", + "oneOf": [ + { + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Microsoft.Compute/virtualMachines" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "containerType": { + "type": "string" + } + }, + "required": [ + "containerType" + ], + "description": "IaaS VM workload-specific backup item representing an Azure Resource Manager virtual machine." + }, + "AzureIaaSComputeVMProtectedItem": { + "type": "object", + "oneOf": [ + { + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Microsoft.Compute/virtualMachines" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "protectedItemType": { + "type": "string" + } + }, + "required": [ + "protectedItemType" + ], + "description": "IaaS VM workload-specific backup item representing the Azure Resource Manager VM." + }, + "AzureIaaSVMHealthDetails": { + "type": "object", + "properties": { + "code": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Health Code" + }, + "title": { + "type": "string", + "description": "Health Title" + }, + "message": { + "type": "string", + "description": "Health Message" + }, + "recommendations": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Health Recommended Actions" + } + }, + "description": "Azure IaaS VM workload-specific Health Details." + }, + "AzureIaaSVMProtectedItem": { + "type": "object", + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/AzureIaaSClassicComputeVMProtectedItem" + } + ], + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Microsoft.ClassicCompute/virtualMachines" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/AzureIaaSComputeVMProtectedItem" + } + ], + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Microsoft.Compute/virtualMachines" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureIaaSVMProtectedItem" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "friendlyName": { + "type": "string", + "description": "Friendly name of the VM represented by this backup item." + }, + "virtualMachineId": { + "type": "string", + "description": "Fully qualified ARM ID of the virtual machine represented by this item." + }, + "protectionStatus": { + "type": "string", + "description": "Backup status of this backup item." + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "healthStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Passed", + "ActionRequired", + "ActionSuggested", + "Invalid" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Health status of protected item." + }, + "healthDetails": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/AzureIaaSVMHealthDetails" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Health details on this backup item." + }, + "lastBackupStatus": { + "type": "string", + "description": "Last backup operation status." + }, + "lastBackupTime": { + "type": "string", + "format": "date-time", + "description": "Timestamp of the last backup operation on this backup item." + }, + "protectedItemDataId": { + "type": "string", + "description": "Data ID of the protected item." + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureIaaSVMProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Additional information for this backup item." + }, + "protectedItemType": { + "type": "string" + } + }, + "required": [ + "protectedItemType" + ], + "description": "IaaS VM workload-specific backup item." + }, + "AzureIaaSVMProtectedItemExtendedInfo": { + "type": "object", + "properties": { + "oldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "The oldest backup copy available for this backup item." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Number of backup copies available for this backup item." + }, + "policyInconsistent": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Specifies if backup policy associated with the backup item is inconsistent." + } + }, + "description": "Additional information on Azure IaaS VM specific backup item." + }, + "AzureIaaSVMProtectionPolicy": { + "type": "object", + "oneOf": [ + { + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureIaasVM" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Backup schedule specified as part of backup policy." + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention policy with the details on backup copy retention ranges." + }, + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." + }, + "backupManagementType": { + "type": "string" + } + }, + "required": [ + "backupManagementType" + ], + "description": "IaaS VM workload-specific backup policy." + }, + "AzureSQLAGWorkloadContainerProtectionContainer": { + "type": "object", + "oneOf": [ + { + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "SQLAGWorkLoadContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "containerType": { + "type": "string" + } + }, + "required": [ + "containerType" + ], + "description": "Container for SQL workloads under SQL Availability Group." + }, + "AzureSqlContainer": { + "type": "object", + "oneOf": [ + { + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureSqlContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "containerType": { + "type": "string" + } + }, + "required": [ + "containerType" + ], + "description": "Azure Sql workload-specific container." + }, + "AzureSqlProtectedItem": { + "type": "object", + "oneOf": [ + { + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Microsoft.Sql/servers/databases" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "protectedItemDataId": { + "type": "string", + "description": "Internal ID of a backup item. Used by Azure SQL Backup engine to contact Recovery Services." + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Backup state of the backed up item." + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureSqlProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Additional information for this backup item." + }, + "protectedItemType": { + "type": "string" + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure SQL workload-specific backup item." + }, + "AzureSqlProtectedItemExtendedInfo": { + "type": "object", + "properties": { + "oldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "The oldest backup copy available for this item in the service." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Number of available backup copies associated with this backup item." + }, + "policyState": { + "type": "string", + "description": "State of the backup policy associated with this backup item." + } + }, + "description": "Additional information on Azure Sql specific protected item." + }, + "AzureSqlProtectionPolicy": { + "type": "object", + "oneOf": [ + { + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureSql" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention policy details." + }, + "backupManagementType": { + "type": "string" + } + }, + "required": [ + "backupManagementType" + ], + "description": "Azure SQL workload-specific backup policy." + }, + "AzureStorageContainer": { + "type": "object", + "oneOf": [ + { + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "StorageContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "sourceResourceId": { + "type": "string", + "description": "Fully qualified ARM url." + }, + "storageAccountVersion": { + "type": "string", + "description": "Storage account version." + }, + "resourceGroup": { + "type": "string", + "description": "Resource group name of Recovery Services Vault." + }, + "protectedItemCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Number of items backed up in this container." + }, + "containerType": { + "type": "string" + } + }, + "required": [ + "containerType" + ], + "description": "Azure Storage Account workload-specific container." + }, + "AzureVMAppContainerProtectionContainer": { + "type": "object", + "oneOf": [ + { + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "VMAppContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "containerType": { + "type": "string" + } + }, + "required": [ + "containerType" + ], + "description": "Container for SQL workloads under Azure Virtual Machines." + }, + "AzureVmWorkloadProtectedItemExtendedInfo": { + "type": "object", + "properties": { + "oldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "The oldest backup copy available for this backup item." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Number of backup copies available for this backup item." + }, + "policyState": { + "type": "string", + "description": "Indicates consistency of policy object and policy applied to this backup item." + } + }, + "description": "Additional information on Azure Workload for SQL specific backup item." + }, + "AzureVmWorkloadProtectionPolicy": { + "type": "object", + "oneOf": [ + { + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureWorkload" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "workLoadType": { + "type": "string", + "description": "Type of workload for the backup management" + }, + "settings": { + "oneOf": [ + { + "$ref": "#/definitions/Settings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Common settings for the backup management" + }, + "subProtectionPolicy": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubProtectionPolicy" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of sub-protection policies which includes schedule and retention" + }, + "backupManagementType": { + "type": "string" + } + }, + "required": [ + "backupManagementType" + ], + "description": "Azure VM (Mercury) workload-specific backup policy." + }, + "AzureVmWorkloadSQLDatabaseProtectedItem": { + "type": "object", + "oneOf": [ + { + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureVmWorkloadSQLDatabase" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "friendlyName": { + "type": "string", + "description": "Friendly name of the DB represented by this backup item." + }, + "serverName": { + "type": "string", + "description": "Host/Cluster Name for instance or AG" + }, + "parentName": { + "type": "string", + "description": "Parent name of the DB such as Instance or Availability Group." + }, + "parentType": { + "type": "string", + "description": "Parent type of DB, SQLAG or StandAlone" + }, + "protectionStatus": { + "type": "string", + "description": "Backup status of this backup item." + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "lastBackupStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Healthy", + "Unhealthy", + "IRPending" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Last backup operation status. Possible values: Healthy, Unhealthy." + }, + "lastBackupTime": { + "type": "string", + "format": "date-time", + "description": "Timestamp of the last backup operation on this backup item." + }, + "lastBackupErrorDetail": { + "oneOf": [ + { + "$ref": "#/definitions/ErrorDetail" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Error details in last backup" + }, + "protectedItemDataSourceId": { + "type": "string", + "description": "Data ID of the protected item." + }, + "protectedItemHealthStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Healthy", + "Unhealthy", + "NotReachable", + "IRPending" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Health status of the backup item, evaluated based on last heartbeat received." + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Additional information for this backup item." + }, + "protectedItemType": { + "type": "string" + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure VM workload-specific protected item representing SQL Database." + }, + "AzureWorkloadContainer": { + "type": "object", + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/AzureSQLAGWorkloadContainerProtectionContainer" + } + ], + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "SQLAGWorkLoadContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/AzureVMAppContainerProtectionContainer" + } + ], + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "VMAppContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureWorkloadContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "sourceResourceId": { + "type": "string", + "description": "ARM ID of the virtual machine represented by this Azure Workload Container" + }, + "lastUpdatedTime": { + "type": "string", + "format": "date-time", + "description": "Time stamp when this container was updated." + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureWorkloadContainerExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Additional details of a workload container." + }, + "containerType": { + "type": "string" + } + }, + "required": [ + "containerType" + ], + "description": "Container for the workloads running inside Azure Compute or Classic Compute." + }, + "AzureWorkloadContainerExtendedInfo": { + "type": "object", + "properties": { + "hostServerName": { + "type": "string", + "description": "Host Os Name in case of Stand Alone and \r\n Cluster Name in case of distributed container." + }, + "inquiryInfo": { + "oneOf": [ + { + "$ref": "#/definitions/InquiryInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Inquiry Status for the container." + }, + "nodesList": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/DistributedNodesInfo" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of the nodes in case of distributed container." + } + }, + "description": "Extended information of the container." + }, + "ContainerIdentityInfo": { + "type": "object", + "properties": { + "uniqueName": { + "type": "string", + "description": "Unique name of the container" + }, + "aadTenantId": { + "type": "string", + "description": "Protection container identity - AAD Tenant" + }, + "servicePrincipalClientId": { + "type": "string", + "description": "Protection container identity - AAD Service Principal" + }, + "audience": { + "type": "string", + "description": "Protection container identity - Audience" + } + }, + "description": "Container identity information" + }, + "DailyRetentionFormat": { + "type": "object", + "properties": { + "daysOfTheMonth": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Day" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of days of the month." + } + }, + "description": "Daily retention format." + }, + "DailyRetentionSchedule": { + "type": "object", + "properties": { + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + }, + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention duration of retention Policy." + } + }, + "description": "Daily retention schedule." + }, + "Day": { + "type": "object", + "properties": { + "date": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Date of the month" + }, + "isLast": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Whether Date is last date of month" + } + }, + "description": "Day of the week." + }, + "DistributedNodesInfo": { + "type": "object", + "properties": { + "nodeName": { + "type": "string", + "description": "Name of the node under a distributed container." + }, + "status": { + "type": "string", + "description": "Status of this Node.\r\n Failed | Succeeded" + }, + "errorDetail": { + "oneOf": [ + { + "$ref": "#/definitions/ErrorDetail" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Error Details if the Status is non-success." + } + }, + "description": "This is used to represent the various nodes of the distributed container." + }, + "DpmContainer": { + "type": "object", + "oneOf": [ + { + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "DPMContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "canReRegister": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Specifies whether the container is re-registrable." + }, + "containerId": { + "type": "string", + "description": "ID of container." + }, + "protectedItemCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Number of protected items in the BackupEngine" + }, + "dpmAgentVersion": { + "type": "string", + "description": "Backup engine Agent version" + }, + "dpmServers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of BackupEngines protecting the container" + }, + "upgradeAvailable": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "To check if upgrade available" + }, + "protectionStatus": { + "type": "string", + "description": "Protection status of the container." + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/DPMContainerExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Extended Info of the container." + }, + "containerType": { + "type": "string" + } + }, + "required": [ + "containerType" + ], + "description": "DPM workload-specific protection container." + }, + "DPMContainerExtendedInfo": { + "type": "object", + "properties": { + "lastRefreshedAt": { + "type": "string", + "format": "date-time", + "description": "Last refresh time of the DPMContainer." + } + }, + "description": "Additional information of the DPMContainer." + }, + "DPMProtectedItem": { + "type": "object", + "oneOf": [ + { + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "DPMProtectedItem" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "friendlyName": { + "type": "string", + "description": "Friendly name of the managed item" + }, + "backupEngineName": { + "type": "string", + "description": "Backup Management server protecting this backup item" + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Protection state of the backupengine." + }, + "isScheduledForDeferredDelete": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "To check if backup item is scheduled for deferred delete" + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/DPMProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Extended info of the backup item." + }, + "protectedItemType": { + "type": "string" + } + }, + "required": [ + "protectedItemType" + ], + "description": "Additional information on Backup engine specific backup item." + }, + "DPMProtectedItemExtendedInfo": { + "type": "object", + "properties": { + "protectableObjectLoadPath": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Attribute to provide information on various DBs." + }, + "protected": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "To check if backup item is disk protected." + }, + "isPresentOnCloud": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "To check if backup item is cloud protected." + }, + "lastBackupStatus": { + "type": "string", + "description": "Last backup status information on backup item." + }, + "lastRefreshedAt": { + "type": "string", + "format": "date-time", + "description": "Last refresh time on backup item." + }, + "oldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "Oldest cloud recovery point time." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "cloud recovery point count." + }, + "onPremiseOldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "Oldest disk recovery point time." + }, + "onPremiseLatestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "latest disk recovery point time." + }, + "onPremiseRecoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "disk recovery point count." + }, + "isCollocated": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "To check if backup item is collocated." + }, + "protectionGroupName": { + "type": "string", + "description": "Protection group name of the backup item." + }, + "diskStorageUsedInBytes": { + "type": "string", + "description": "Used Disk storage in bytes." + }, + "totalDiskStorageSizeInBytes": { + "type": "string", + "description": "total Disk storage in bytes." + } + }, + "description": "Additional information of DPM Protected item." + }, + "ErrorDetail": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error code." + }, + "message": { + "type": "string", + "description": "Error Message related to the Code." + }, + "recommendations": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of recommendation strings." + } + }, + "description": "Error Detail class which encapsulates Code, Message and Recommendations." + }, + "GenericContainer": { + "type": "object", + "oneOf": [ + { + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "GenericContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "fabricName": { + "type": "string", + "description": "Name of the container's fabric" + }, + "extendedInformation": { + "oneOf": [ + { + "$ref": "#/definitions/GenericContainerExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Extended information (not returned in List container API calls)" + }, + "containerType": { + "type": "string" + } + }, + "required": [ + "containerType" + ], + "description": "Base class for generic container of backup items" + }, + "GenericContainerExtendedInfo": { + "type": "object", + "properties": { + "rawCertData": { + "type": "string", + "description": "Public key of container cert" + }, + "containerIdentityInfo": { + "oneOf": [ + { + "$ref": "#/definitions/ContainerIdentityInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Container identity information" + }, + "serviceEndpoints": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Azure Backup Service Endpoints for the container" + } + }, + "description": "Container extended information" + }, + "GenericProtectedItem": { + "type": "object", + "oneOf": [ + { + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "GenericProtectedItem" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "friendlyName": { + "type": "string", + "description": "Friendly name of the container." + }, + "policyState": { + "type": "string", + "description": "Indicates consistency of policy object and policy applied to this backup item." + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "protectedItemId": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Data Plane Service ID of the protected item." + }, + "sourceAssociations": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Loosely coupled (type, value) associations (example - parent of a protected item)" + }, + "fabricName": { + "type": "string", + "description": "Name of this backup item's fabric." + }, + "protectedItemType": { + "type": "string" + } + }, + "required": [ + "protectedItemType" + ], + "description": "Base class for backup items." + }, + "GenericProtectionPolicy": { + "type": "object", + "oneOf": [ + { + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "GenericProtectionPolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "subProtectionPolicy": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubProtectionPolicy" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of sub-protection policies which includes schedule and retention" + }, + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." + }, + "fabricName": { + "type": "string", + "description": "Name of this policy's fabric." + }, + "backupManagementType": { + "type": "string" + } + }, + "required": [ + "backupManagementType" + ], + "description": "Azure VM (Mercury) workload-specific backup policy." + }, + "IaaSVMContainer": { + "type": "object", + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/AzureIaaSClassicComputeVMContainer" + } + ], + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Microsoft.ClassicCompute/virtualMachines" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/AzureIaaSComputeVMContainer" + } + ], + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Microsoft.Compute/virtualMachines" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "IaaSVMContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "virtualMachineId": { + "type": "string", + "description": "Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container." + }, + "virtualMachineVersion": { + "type": "string", + "description": "Specifies whether the container represents a Classic or an Azure Resource Manager VM." + }, + "resourceGroup": { + "type": "string", + "description": "Resource group name of Recovery Services Vault." + }, + "containerType": { + "type": "string" + } + }, + "required": [ + "containerType" + ], + "description": "IaaS VM workload-specific container." + }, + "InquiryInfo": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Inquiry Status for this container such as \r\n InProgress | Failed | Succeeded" + }, + "errorDetail": { + "oneOf": [ + { + "$ref": "#/definitions/ErrorDetail" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Error Details if the Status is non-success." + }, + "inquiryDetails": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/WorkloadInquiryDetails" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Inquiry Details which will have workload specific details. \r\n For e.g. - For SQL and oracle this will contain different details." + } + }, + "description": "Details about inquired protectable items under a given container." + }, + "InquiryValidation": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Status for the Inquiry Validation." + }, + "errorDetail": { + "oneOf": [ + { + "$ref": "#/definitions/ErrorDetail" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Error Detail in case the status is non-success." + } + }, + "description": "Validation for inquired protectable items under a given container." + }, + "LogSchedulePolicy": { + "type": "object", + "oneOf": [ + { + "properties": { + "schedulePolicyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "LogSchedulePolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "scheduleFrequencyInMins": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Frequency of the log schedule operation of this policy in minutes." + }, + "schedulePolicyType": { + "type": "string" + } + }, + "required": [ + "schedulePolicyType" + ], + "description": "Log policy schedule." + }, + "LongTermRetentionPolicy": { + "type": "object", + "oneOf": [ + { + "properties": { + "retentionPolicyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "LongTermRetentionPolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "dailySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Daily retention schedule of the protection policy." + }, + "weeklySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/WeeklyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Weekly retention schedule of the protection policy." + }, + "monthlySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/MonthlyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Monthly retention schedule of the protection policy." + }, + "yearlySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/YearlyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Yearly retention schedule of the protection policy." + }, + "retentionPolicyType": { + "type": "string" + } + }, + "required": [ + "retentionPolicyType" + ], + "description": "Long term retention policy." + }, + "LongTermSchedulePolicy": { + "type": "object", + "oneOf": [ + { + "properties": { + "schedulePolicyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "LongTermSchedulePolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "schedulePolicyType": { + "type": "string" + } + }, + "required": [ + "schedulePolicyType" + ], + "description": "Long term policy schedule." + }, + "MabContainer": { + "type": "object", + "oneOf": [ + { + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "MABWindowsContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "canReRegister": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Can the container be registered one more time." + }, + "containerId": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "ContainerID represents the container." + }, + "protectedItemCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Number of items backed up in this container." + }, + "agentVersion": { + "type": "string", + "description": "Agent version of this container." + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/MabContainerExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Additional information for this container" + }, + "mabContainerHealthDetails": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/MABContainerHealthDetails" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Health details on this mab container." + }, + "containerHealthState": { + "type": "string", + "description": "Health state of mab container." + }, + "containerType": { + "type": "string" + } + }, + "required": [ + "containerType" + ], + "description": "Container with items backed up using MAB backup engine." + }, + "MabContainerExtendedInfo": { + "type": "object", + "properties": { + "lastRefreshedAt": { + "type": "string", + "format": "date-time", + "description": "Time stamp when this container was refreshed." + }, + "backupItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Type of backup items associated with this container." + }, + "backupItems": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of backup items associated with this container." + }, + "policyName": { + "type": "string", + "description": "Backup policy associated with this container." + }, + "lastBackupStatus": { + "type": "string", + "description": "Latest backup status of this container." + } + }, + "description": "Additional information of the container." + }, + "MABContainerHealthDetails": { + "type": "object", + "properties": { + "code": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Health Code" + }, + "title": { + "type": "string", + "description": "Health Title" + }, + "message": { + "type": "string", + "description": "Health Message" + }, + "recommendations": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Health Recommended Actions" + } + }, + "description": "MAB workload-specific Health Details." + }, + "MabFileFolderProtectedItem": { + "type": "object", + "oneOf": [ + { + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "MabFileFolderProtectedItem" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "friendlyName": { + "type": "string", + "description": "Friendly name of this backup item." + }, + "computerName": { + "type": "string", + "description": "Name of the computer associated with this backup item." + }, + "lastBackupStatus": { + "type": "string", + "description": "Status of last backup operation." + }, + "protectionState": { + "type": "string", + "description": "Protected, ProtectionStopped, IRPending or ProtectionError" + }, + "isScheduledForDeferredDelete": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Specifies if the item is scheduled for deferred deletion." + }, + "deferredDeleteSyncTimeInUTC": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Sync time for deferred deletion." + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/MabFileFolderProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Additional information with this backup item." + }, + "protectedItemType": { + "type": "string" + } + }, + "required": [ + "protectedItemType" + ], + "description": "MAB workload-specific backup item." + }, + "MabFileFolderProtectedItemExtendedInfo": { + "type": "object", + "properties": { + "lastRefreshedAt": { + "type": "string", + "format": "date-time", + "description": "Last time when the agent data synced to service." + }, + "oldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "The oldest backup copy available." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Number of backup copies associated with the backup item." + } + }, + "description": "Additional information on the backed up item." + }, + "MabProtectionPolicy": { + "type": "object", + "oneOf": [ + { + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "MAB" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Backup schedule of backup policy." + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention policy details." + }, + "backupManagementType": { + "type": "string" + } + }, + "required": [ + "backupManagementType" + ], + "description": "Mab container-specific backup policy." + }, + "MonthlyRetentionSchedule": { + "type": "object", + "properties": { + "retentionScheduleFormatType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention schedule format type for monthly retention policy." + }, + "retentionScheduleDaily": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Daily retention format for monthly retention policy." + }, + "retentionScheduleWeekly": { + "oneOf": [ + { + "$ref": "#/definitions/WeeklyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Weekly retention format for monthly retention policy." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + }, + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention duration of retention Policy." + } + }, + "description": "Monthly retention schedule." + }, + "ProtectedItem": { + "type": "object", + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/AzureFileshareProtectedItem" + } + ], + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureFileShareProtectedItem" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/AzureIaaSVMProtectedItem" + } + ], + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureIaaSVMProtectedItem" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/AzureSqlProtectedItem" + } + ], + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Microsoft.Sql/servers/databases" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadSQLDatabaseProtectedItem" + } + ], + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureVmWorkloadSQLDatabase" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/DPMProtectedItem" + } + ], + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "DPMProtectedItem" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/GenericProtectedItem" + } + ], + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "GenericProtectedItem" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/MabFileFolderProtectedItem" + } + ], + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "MabFileFolderProtectedItem" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "properties": { + "protectedItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "ProtectedItem" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "AzureIaasVM", + "MAB", + "DPM", + "AzureBackupServer", + "AzureSql", + "AzureStorage", + "AzureWorkload", + "DefaultBackup" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Type of backup managemenent for the backed up item." + }, + "workloadType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Type of workload this item represents." + }, + "containerName": { + "type": "string", + "description": "Unique name of container" + }, + "sourceResourceId": { + "type": "string", + "description": "ARM ID of the resource to be backed up." + }, + "policyId": { + "type": "string", + "description": "ID of the backup policy with which this item is backed up." + }, + "lastRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the last (latest) backup copy was created for this backup item." + }, + "backupSetName": { + "type": "string", + "description": "Name of the backup set the backup item belongs to" + }, + "protectedItemType": { + "type": "string" + } + }, + "required": [ + "protectedItemType" + ], + "description": "Base class for backup items." + }, + "ProtectionContainer": { + "type": "object", + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/AzureBackupServerContainer" + } + ], + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureBackupServerContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/AzureSqlContainer" + } + ], + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureSqlContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/AzureStorageContainer" + } + ], + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "StorageContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadContainer" + } + ], + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureWorkloadContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/DpmContainer" + } + ], + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "DPMContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/GenericContainer" + } + ], + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "GenericContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/IaaSVMContainer" + } + ], + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "IaaSVMContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/MabContainer" + } + ], + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "MABWindowsContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "properties": { + "containerType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "ProtectionContainer" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "friendlyName": { + "type": "string", + "description": "Friendly name of the container." + }, + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "AzureIaasVM", + "MAB", + "DPM", + "AzureBackupServer", + "AzureSql", + "AzureStorage", + "AzureWorkload", + "DefaultBackup" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Type of backup managemenent for the container." + }, + "registrationStatus": { + "type": "string", + "description": "Status of registration of the container with the Recovery Services Vault." + }, + "healthStatus": { + "type": "string", + "description": "Status of health of the container." + }, + "containerType": { + "type": "string" + } + }, + "required": [ + "containerType" + ], + "description": "Base class for container with backup items. Containers with specific workloads are derived from this class." + }, + "ProtectionPolicy": { + "type": "object", + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/AzureFileShareProtectionPolicy" + } + ], + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureStorage" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/AzureIaaSVMProtectionPolicy" + } + ], + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureIaasVM" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/AzureSqlProtectionPolicy" + } + ], + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureSql" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectionPolicy" + } + ], + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureWorkload" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/GenericProtectionPolicy" + } + ], + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "GenericProtectionPolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/MabProtectionPolicy" + } + ], + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "MAB" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "ProtectionPolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "protectedItemsCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Number of items associated with this policy." + }, + "backupManagementType": { + "type": "string" + } + }, + "required": [ + "backupManagementType" + ], + "description": "Base class for backup policy. Workload-specific backup policies are derived from this class." + }, + "RetentionDuration": { + "type": "object", + "properties": { + "count": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Count of duration types. Retention duration is obtained by the counting the duration type Count times.\r\n For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks." + }, + "durationType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Days", + "Weeks", + "Months", + "Years" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention duration type of retention policy." + } + }, + "description": "Retention duration." + }, + "RetentionPolicy": { + "type": "object", + "oneOf": [ + { + "properties": { + "retentionPolicyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "RetentionPolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/LongTermRetentionPolicy" + } + ], + "properties": { + "retentionPolicyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "LongTermRetentionPolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/SimpleRetentionPolicy" + } + ], + "properties": { + "retentionPolicyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "SimpleRetentionPolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "retentionPolicyType": { + "type": "string" + } + }, + "required": [ + "retentionPolicyType" + ], + "description": "Base class for retention policy." + }, + "SchedulePolicy": { + "type": "object", + "oneOf": [ + { + "properties": { + "schedulePolicyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "SchedulePolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/LogSchedulePolicy" + } + ], + "properties": { + "schedulePolicyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "LogSchedulePolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/LongTermSchedulePolicy" + } + ], + "properties": { + "schedulePolicyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "LongTermSchedulePolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/definitions/SimpleSchedulePolicy" + } + ], + "properties": { + "schedulePolicyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "SimpleSchedulePolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "schedulePolicyType": { + "type": "string" + } + }, + "required": [ + "schedulePolicyType" + ], + "description": "Base class for backup schedule." + }, + "Settings": { + "type": "object", + "properties": { + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." + }, + "issqlcompression": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "SQL compression flag" + } + }, + "description": "Common settings field for backup management" + }, + "SimpleRetentionPolicy": { + "type": "object", + "oneOf": [ + { + "properties": { + "retentionPolicyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "SimpleRetentionPolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention duration of the protection policy." + }, + "retentionPolicyType": { + "type": "string" + } + }, + "required": [ + "retentionPolicyType" + ], + "description": "Simple policy retention." + }, + "SimpleSchedulePolicy": { + "type": "object", + "oneOf": [ + { + "properties": { + "schedulePolicyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "SimpleSchedulePolicy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "scheduleRunFrequency": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Frequency of the schedule operation of this policy." + }, + "scheduleRunDays": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of days of week this schedule has to be run." + }, + "scheduleRunTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of times of day this schedule has to be run." + }, + "scheduleWeeklyFrequency": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "At every number weeks this schedule has to be run." + }, + "schedulePolicyType": { + "type": "string" + } + }, + "required": [ + "schedulePolicyType" + ], + "description": "Simple policy schedule." + }, + "SubProtectionPolicy": { + "type": "object", + "properties": { + "policyType": { + "type": "string", + "description": "Type of backup policy type" + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Backup schedule specified as part of backup policy." + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention policy with the details on backup copy retention ranges." + } + }, + "description": "Sub-protection policy which includes schedule and retention" + }, + "vaults_backupFabrics_protectionContainers_protectedItems_childResource": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "protectedItems" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-12-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProtectedItem" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "ProtectedItemResource properties" + } + }, + "required": [ + "name", + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems" + }, + "WeeklyRetentionFormat": { + "type": "object", + "properties": { + "daysOfTheWeek": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of days of the week." + }, + "weeksOfTheMonth": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "First", + "Second", + "Third", + "Fourth", + "Last" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of weeks of month." + } + }, + "description": "Weekly retention format." + }, + "WeeklyRetentionSchedule": { + "type": "object", + "properties": { + "daysOfTheWeek": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of days of week for weekly retention policy." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + }, + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention duration of retention Policy." + } + }, + "description": "Weekly retention schedule." + }, + "WorkloadInquiryDetails": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of the Workload such as SQL, Oracle etc." + }, + "itemCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Contains the protectable item Count inside this Container." + }, + "inquiryValidation": { + "oneOf": [ + { + "$ref": "#/definitions/InquiryValidation" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Inquiry validation such as permissions and other backup validations." + } + }, + "description": "Details of an inquired protectable item." + }, + "YearlyRetentionSchedule": { + "type": "object", + "properties": { + "retentionScheduleFormatType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention schedule format for yearly retention policy." + }, + "monthsOfYear": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Invalid", + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of months of year of yearly retention policy." + }, + "retentionScheduleDaily": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Daily retention format for yearly retention policy." + }, + "retentionScheduleWeekly": { + "oneOf": [ + { + "$ref": "#/definitions/WeeklyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Weekly retention format for yearly retention policy." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + }, + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Retention duration of retention Policy." + } + }, + "description": "Yearly retention schedule." + } + } +} diff --git a/schemas/2017-07-01/Microsoft.RecoveryServices.json b/schemas/2017-07-01/Microsoft.RecoveryServices.json new file mode 100644 index 0000000000..2808e6ebd5 --- /dev/null +++ b/schemas/2017-07-01/Microsoft.RecoveryServices.json @@ -0,0 +1,210 @@ +{ + "id": "https://schema.management.azure.com/schemas/2017-07-01/Microsoft.RecoveryServices.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.RecoveryServices", + "description": "Microsoft RecoveryServices Resource Types", + "resourceDefinitions": { + "vaults_backupFabrics_backupProtectionIntent": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupFabrics/backupProtectionIntent" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2017-07-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProtectionIntent" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "ProtectionIntentResource properties" + } + }, + "required": [ + "name", + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.RecoveryServices/vaults/backupFabrics/backupProtectionIntent" + } + }, + "definitions": { + "AzureResourceProtectionIntent": { + "type": "object", + "oneOf": [ + { + "properties": { + "protectionIntentItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureResourceItem" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "friendlyName": { + "type": "string", + "description": "Friendly name of the VM represented by this backup item." + }, + "protectionIntentItemType": { + "type": "string" + } + }, + "required": [ + "protectionIntentItemType" + ], + "description": "IaaS VM specific backup protection intent item." + }, + "ProtectionIntent": { + "type": "object", + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/AzureResourceProtectionIntent" + } + ], + "properties": { + "protectionIntentItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureResourceItem" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + }, + { + "properties": { + "protectionIntentItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "ProtectionIntent" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + } + } + ], + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "AzureIaasVM", + "MAB", + "DPM", + "AzureBackupServer", + "AzureSql", + "AzureStorage", + "AzureWorkload", + "DefaultBackup" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Type of backup managemenent for the backed up item." + }, + "sourceResourceId": { + "type": "string", + "description": "ARM ID of the resource to be backed up." + }, + "itemId": { + "type": "string", + "description": "ID of the item which is getting protected, In case of Azure Vm , it is ProtectedItemId" + }, + "policyId": { + "type": "string", + "description": "ID of the backup policy with which this item is backed up." + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "NotProtected", + "Protecting", + "Protected", + "ProtectionFailed" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "protectionIntentItemType": { + "type": "string" + } + }, + "required": [ + "protectionIntentItemType" + ], + "description": "Base class for backup ProtectionIntent." + } + } +} diff --git a/tests/2016-12-01/Microsoft.RecoveryServices.tests.json b/tests/2016-12-01/Microsoft.RecoveryServices.tests.json new file mode 100644 index 0000000000..0976051c13 --- /dev/null +++ b/tests/2016-12-01/Microsoft.RecoveryServices.tests.json @@ -0,0 +1,65 @@ +{ + "tests": [ + { + "name": "Register protection containers", + "definition": "https://schema.management.azure.com/schemas/2016-12-01/Microsoft.RecoveryServices.json#/resourceDefinitions/vaults_backupFabrics_protectionContainers", + "json": { + "name": "teststorage", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers", + "apiVersion": "2016-12-01", + "properties": { + "friendlyName": "teststorage", + "backupManagementType": "AzureStorage", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/teststorage", + "containerType": "StorageContainer" + } + } + }, + { + "name": "Enable Azure IaasVm Backup", + "definition": "https://schema.management.azure.com/schemas/2016-12-01/Microsoft.RecoveryServices.json#/resourceDefinitions/vaults_backupFabrics_protectionContainers_protectedItems", + "json": { + "name": "netvmtestv2vm1", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", + "apiVersion": "2016-12-01", + "properties": { + "protectedItemType": "AzureIaaSVMProtectedItem", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "policyId": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/DefaultPolicy" + } + } + }, + { + "name": "Create backup protection policy", + "definition": "https://schema.management.azure.com/schemas/2016-12-01/Microsoft.RecoveryServices.json#/resourceDefinitions/vaults_backupPolicies", + "json": { + "name": "SimpleDailyPolicy", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "apiVersion": "2016-12-01", + "properties": { + "backupManagementType": "AzureIaasVM", + "timeZone": "Pacific Standard Time", + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicy": { + "retentionPolicyType": "LongTermRetentionPolicy", + "dailySchedule": { + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ], + "retentionDuration": { + "count": 1, + "durationType": "Days" + } + } + } + } + } + } + ] +} diff --git a/tests/2017-07-01/Microsoft.RecoveryServices.tests.json b/tests/2017-07-01/Microsoft.RecoveryServices.tests.json new file mode 100644 index 0000000000..5c4809bec9 --- /dev/null +++ b/tests/2017-07-01/Microsoft.RecoveryServices.tests.json @@ -0,0 +1,20 @@ +{ + "tests": [ + { + "name": "Create or Update Azure Vm protection intent", + "definition": "https://schema.management.azure.com/schemas/2017-07-01/Microsoft.RecoveryServices.json#/resourceDefinitions/vaults_backupFabrics_backupProtectionIntent", + "json": { + "name": "vm;iaasvmcontainerv2;chamsrgtest;chamscandel", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/backupProtectionIntent", + "apiVersion": "2017-07-01", + "location": "southeastasia", + "properties": { + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/chamsrgtest/providers/Microsoft.Compute/virtualMachines/chamscandel", + "protectionIntentItemType": "AzureResourceItem", + "friendlyName": "oneboxTestVmIntent", + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy" + } + } + } + ] +}