diff --git a/schemas/2016-06-01/Microsoft.RecoveryServices.json b/schemas/2016-06-01/Microsoft.RecoveryServices.json index da66a10272..0872e7de0a 100644 --- a/schemas/2016-06-01/Microsoft.RecoveryServices.json +++ b/schemas/2016-06-01/Microsoft.RecoveryServices.json @@ -4,7 +4,7 @@ "title": "Microsoft.RecoveryServices", "description": "Microsoft RecoveryServices Resource Types", "resourceDefinitions": { - "vaults": { + "vaults_backupFabrics_protectionContainers_protectedItems": { "type": "object", "properties": { "apiVersion": { @@ -17,16 +17,9 @@ "type": "string", "description": "Optional ETag." }, - "identity": { - "oneOf": [ - { - "$ref": "#/definitions/IdentityData" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Identity for the resource." + "id": { + "type": "string", + "description": "Resource ID represents the complete path to the resource." }, "location": { "type": "string", @@ -34,42 +27,18 @@ }, "name": { "type": "string", - "description": "The name of the recovery services vault." + "description": "The name of the backup item." }, "properties": { "oneOf": [ { - "$ref": "#/definitions/VaultProperties" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Properties of the vault." - }, - "resources": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "#/definitions/vaults_certificates_childResource" - }, - { - "$ref": "#/definitions/vaults_extendedInformation_childResource" - } - ] - } - }, - "sku": { - "oneOf": [ - { - "$ref": "#/definitions/Sku" + "$ref": "#/definitions/ProtectedItem" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Identifies the unique system identifier for each Azure resource." + "description": "The base class for backup items." }, "tags": { "oneOf": [ @@ -89,20 +58,19 @@ "type": { "type": "string", "enum": [ - "Microsoft.RecoveryServices/vaults" + "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems" ] } }, "required": [ "apiVersion", - "location", "name", "properties", "type" ], - "description": "Microsoft.RecoveryServices/vaults" + "description": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems" }, - "vaults_certificates": { + "vaults_backupPolicies": { "type": "object", "properties": { "apiVersion": { @@ -111,25 +79,52 @@ "2016-06-01" ] }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "id": { + "type": "string", + "description": "Resource ID represents the complete path to the resource." + }, + "location": { + "type": "string", + "description": "Resource location." + }, "name": { "type": "string", - "description": "Certificate friendly name." + "description": "The backup policy to be created." }, "properties": { "oneOf": [ { - "$ref": "#/definitions/RawCertificateData" + "$ref": "#/definitions/ProtectionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The base class for a backup policy. Workload-specific backup policies are derived from this class." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Raw certificate data." + "description": "Resource tags." }, "type": { "type": "string", "enum": [ - "Microsoft.RecoveryServices/vaults/certificates" + "Microsoft.RecoveryServices/vaults/backupPolicies" ] } }, @@ -139,271 +134,1086 @@ "properties", "type" ], - "description": "Microsoft.RecoveryServices/vaults/certificates" - }, - "vaults_extendedInformation": { + "description": "Microsoft.RecoveryServices/vaults/backupPolicies" + } + }, + "definitions": { + "AzureIaaSClassicComputeVMProtectedItem": { "type": "object", "properties": { - "apiVersion": { + "protectedItemType": { "type": "string", "enum": [ - "2016-06-01" + "Microsoft.ClassicCompute/virtualMachines" ] - }, - "eTag": { + } + }, + "required": [ + "protectedItemType" + ], + "description": "IaaS VM workload-specific backup item representing the classic VM." + }, + "AzureIaaSComputeVMProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { "type": "string", - "description": "Optional ETag." + "enum": [ + "Microsoft.Compute/virtualMachines" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "IaaS VM workload-specific backup item representing the Resource Manager VM." + }, + "AzureIaaSVMProtectedItem": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureIaaSComputeVMProtectedItem" }, - "name": { + { + "$ref": "#/definitions/AzureIaaSClassicComputeVMProtectedItem" + } + ], + "properties": { + "extendedInfo": { "oneOf": [ { - "type": "string", - "pattern": "^.*/vaultExtendedInfo$" + "$ref": "#/definitions/AzureIaaSVMProtectedItemExtendedInfo" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } + ], + "description": "Additional information for the Azure VM (also known as IaaS VM)-specific backup item." + }, + "friendlyName": { + "type": "string", + "description": "The friendly name of the VM represented by this backup item." + }, + "lastBackupStatus": { + "type": "string", + "description": "The last backup operation status. The possible values are: Healthy or Unhealthy." + }, + "lastBackupTime": { + "type": "string", + "format": "date-time", + "description": "The timestamp of the last backup operation for this backup item." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "AzureIaaSVMProtectedItem" ] }, - "properties": { + "protectionState": { "oneOf": [ { - "$ref": "#/definitions/VaultExtendedInfo" + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Vault extended information." + "description": "The backup state of this backup item." }, - "type": { + "protectionStatus": { "type": "string", - "enum": [ - "Microsoft.RecoveryServices/vaults/extendedInformation" - ] + "description": "The backup status of this backup item." + }, + "virtualMachineId": { + "type": "string", + "description": "The fully qualified Resource Manager ID of the virtual machine represented by this item." } }, "required": [ - "apiVersion", - "name", - "properties", - "type" + "protectedItemType" ], - "description": "Microsoft.RecoveryServices/vaults/extendedInformation" - } - }, - "definitions": { - "IdentityData": { + "description": "This Azure VM workload-specific (also known as IaaS VM workload-specific) backup item has been backed up." + }, + "AzureIaaSVMProtectedItemExtendedInfo": { "type": "object", "properties": { - "type": { + "oldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "The oldest backup copy available for this backup item." + }, + "policyInconsistent": { "oneOf": [ { - "type": "string", - "enum": [ - "SystemAssigned", - "None" - ] + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies if the backup policy associated with the backup item is inconsistent." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The identity type." + "description": "The number of backup copies available for this backup item." } }, - "required": [ - "type" - ], - "description": "Identity for the resource." + "description": "Additional information for the Azure VM (also known as IaaS VM)-specific backup item." }, - "RawCertificateData": { + "AzureIaaSVMProtectionPolicy": { "type": "object", "properties": { - "authType": { + "backupManagementType": { + "type": "string", + "enum": [ + "AzureIaasVM" + ] + }, + "retentionPolicy": { "oneOf": [ { - "type": "string", - "enum": [ - "Invalid", - "ACS", - "AAD", - "AccessControlService", - "AzureActiveDirectory" - ] + "$ref": "#/definitions/RetentionPolicy" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Specifies the authentication type." + "description": "The base class for retention policy." }, - "certificate": { + "schedulePolicy": { "oneOf": [ { - "type": "string", - "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$" + "$ref": "#/definitions/SchedulePolicy" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The base64 encoded certificate raw data string" + "description": "The base class for backup schedules." } }, - "description": "Raw certificate data." + "required": [ + "backupManagementType" + ], + "description": "Azure VM (also known as IaaS VM) workload-specific backup policy." }, - "Sku": { + "AzureSqlProtectedItem": { "type": "object", "properties": { - "name": { + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureSqlProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information for the Azure SQL specific backup item." + }, + "protectedItemDataId": { + "type": "string", + "description": "The internal ID of a backup item. The internal ID is used by the Azure SQL Backup engine to contact Recovery Services." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "Microsoft.Sql/servers/databases" + ] + }, + "protectionState": { "oneOf": [ { "type": "string", "enum": [ - "Standard", - "RS0" + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The Sku name." + "description": "The backup state of the backup item." } }, "required": [ - "name" + "protectedItemType" ], - "description": "Identifies the unique system identifier for each Azure resource." - }, - "UpgradeDetails": { - "type": "object", - "properties": {}, - "description": "Details for upgrading vault." + "description": "This is an Azure SQL workload-specific backup item." }, - "VaultExtendedInfo": { + "AzureSqlProtectedItemExtendedInfo": { "type": "object", "properties": { - "algorithm": { + "oldestRecoveryPoint": { "type": "string", - "description": "Algorithm for Vault ExtendedInfo" + "format": "date-time", + "description": "The oldest backup copy available for this item in the service." }, - "encryptionKey": { + "policyState": { "type": "string", - "description": "Encryption key." + "description": "The state of the backup policy associated with this backup item." }, - "encryptionKeyThumbprint": { + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of available backup copies for this backup item." + } + }, + "description": "Additional information for the Azure SQL specific backup item." + }, + "AzureSqlProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { "type": "string", - "description": "Encryption key thumbprint." + "enum": [ + "AzureSql" + ] }, - "integrityKey": { - "type": "string", - "description": "Integrity key." + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The base class for retention policy." } }, - "description": "Vault extended information." + "required": [ + "backupManagementType" + ], + "description": " The Azure SQL workload-specific backup policy." }, - "VaultProperties": { + "DailyRetentionFormat": { "type": "object", "properties": { - "upgradeDetails": { + "daysOfTheMonth": { "oneOf": [ { - "$ref": "#/definitions/UpgradeDetails" + "type": "array", + "items": { + "$ref": "#/definitions/Day" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Details for upgrading vault." + "description": "List of days of the month." } }, - "description": "Properties of the vault." + "description": "Daily retention format." }, - "vaults_certificates_childResource": { + "DailyRetentionSchedule": { "type": "object", "properties": { - "apiVersion": { - "type": "string", - "enum": [ - "2016-06-01" - ] - }, - "name": { - "type": "string", - "description": "Certificate friendly name." + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." }, - "properties": { + "retentionTimes": { "oneOf": [ { - "$ref": "#/definitions/RawCertificateData" + "type": "array", + "items": { + "type": "string" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Raw certificate data." + "description": "The retention times of retention policy." + } + }, + "description": "Daily retention schedule." + }, + "Day": { + "type": "object", + "properties": { + "date": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] }, - "type": { - "type": "string", - "enum": [ - "certificates" + "isLast": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } ] } }, - "required": [ - "apiVersion", - "name", - "properties", - "type" - ], - "description": "Microsoft.RecoveryServices/vaults/certificates" + "description": "Day of the week." }, - "vaults_extendedInformation_childResource": { + "LongTermRetentionPolicy": { "type": "object", "properties": { - "apiVersion": { - "type": "string", - "enum": [ - "2016-06-01" - ] + "dailySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Daily retention schedule." }, - "eTag": { - "type": "string", - "description": "Optional ETag." + "monthlySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/MonthlyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The monthly retention schedule." }, - "name": { + "retentionPolicyType": { "type": "string", "enum": [ - "vaultExtendedInfo" + "LongTermRetentionPolicy" ] }, - "properties": { + "weeklySchedule": { "oneOf": [ { - "$ref": "#/definitions/VaultExtendedInfo" + "$ref": "#/definitions/WeeklyRetentionSchedule" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Vault extended information." + "description": "Weekly retention schedule." }, - "type": { - "type": "string", - "enum": [ - "extendedInformation" - ] + "yearlySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/YearlyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Yearly retention schedule." } }, "required": [ - "apiVersion", - "name", - "properties", - "type" + "retentionPolicyType" + ], + "description": "Long-term retention policy." + }, + "LongTermSchedulePolicy": { + "type": "object", + "properties": { + "schedulePolicyType": { + "type": "string", + "enum": [ + "LongTermSchedulePolicy" + ] + } + }, + "required": [ + "schedulePolicyType" + ], + "description": "Long-term policy schedule." + }, + "MabFileFolderProtectedItem": { + "type": "object", + "properties": { + "computerName": { + "type": "string", + "description": "The name of the computer associated with this backup item." + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/MabFileFolderProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information for the backup item." + }, + "friendlyName": { + "type": "string", + "description": "The friendly name of this backup item." + }, + "isScheduledForDeferredDelete": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "lastBackupStatus": { + "type": "string", + "description": "The status of last backup operation." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "MabFileFolderProtectedItem" + ] + }, + "protectionState": { + "type": "string", + "description": "The states for this property are: Protected, ProtectionStopped, IRPending, or ProtectionError." + } + }, + "required": [ + "protectedItemType" + ], + "description": "This is a file or folder workload-specific backup item." + }, + "MabFileFolderProtectedItemExtendedInfo": { + "type": "object", + "properties": { + "lastRefreshedAt": { + "type": "string", + "format": "date-time", + "description": "The last day and time the agent synced with the service." + }, + "oldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "The oldest backup copy available." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of backup copies associated with the backup item." + } + }, + "description": "Additional information for the backup item." + }, + "MabProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "MAB" + ] + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The base class for retention policy." + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The base class for backup schedules." + } + }, + "required": [ + "backupManagementType" + ], + "description": "The backup policy for the file or folder container." + }, + "MonthlyRetentionSchedule": { + "type": "object", + "properties": { + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionScheduleDaily": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Daily retention format." + }, + "retentionScheduleFormatType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention schedule format type for monthly retention policy." + }, + "retentionScheduleWeekly": { + "oneOf": [ + { + "$ref": "#/definitions/WeeklyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Weekly retention format." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times of the retention policy." + } + }, + "description": "The monthly retention schedule." + }, + "ProtectedItem": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureIaaSVMProtectedItem" + }, + { + "$ref": "#/definitions/MabFileFolderProtectedItem" + }, + { + "$ref": "#/definitions/AzureSqlProtectedItem" + } + ], + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "AzureIaasVM", + "MAB", + "DPM", + "AzureBackupServer", + "AzureSql" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The backup management type associated with the backup item." + }, + "lastRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the most recent backup copy was created for this backup item." + }, + "policyId": { + "type": "string", + "description": "The ID of the backup policy associated with this backup item." + }, + "sourceResourceId": { + "type": "string", + "description": "The ID of the resource to be backed up." + }, + "workloadType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "DPMUnknown" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The workload type for this item." + } + }, + "description": "The base class for backup items." + }, + "ProtectionPolicy": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureIaaSVMProtectionPolicy" + }, + { + "$ref": "#/definitions/MabProtectionPolicy" + }, + { + "$ref": "#/definitions/AzureSqlProtectionPolicy" + } + ], + "properties": { + "protectedItemsCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of items associated with this policy." + } + }, + "description": "The base class for a 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/common/definitions.json#/definitions/expression" + } + ], + "description": "Count of the duration types. Retention duration is determined by the combining the Count times and durationType. \r\n For example, if Count = 3 and durationType = Weeks, then the retention duration is three weeks." + }, + "durationType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Days", + "Weeks", + "Months", + "Years" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The retention duration type of the retention policy." + } + }, + "description": "Retention duration." + }, + "RetentionPolicy": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/SimpleRetentionPolicy" + }, + { + "$ref": "#/definitions/LongTermRetentionPolicy" + } + ], + "properties": {}, + "description": "The base class for retention policy." + }, + "SchedulePolicy": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/LongTermSchedulePolicy" + }, + { + "$ref": "#/definitions/SimpleSchedulePolicy" + } + ], + "properties": {}, + "description": "The base class for backup schedules." + }, + "SimpleRetentionPolicy": { + "type": "object", + "properties": { + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionPolicyType": { + "type": "string", + "enum": [ + "SimpleRetentionPolicy" + ] + } + }, + "required": [ + "retentionPolicyType" + ], + "description": "Simple policy retention." + }, + "SimpleSchedulePolicy": { + "type": "object", + "properties": { + "schedulePolicyType": { + "type": "string", + "enum": [ + "SimpleSchedulePolicy" + ] + }, + "scheduleRunDays": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "This list is the days of the week when the schedule runs." + }, + "scheduleRunFrequency": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the frequency interval (daily or weekly) for the schedule policy." + }, + "scheduleRunTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of times, during a day, when the schedule runs." + }, + "scheduleWeeklyFrequency": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of times per week the schedule runs." + } + }, + "required": [ + "schedulePolicyType" ], - "description": "Microsoft.RecoveryServices/vaults/extendedInformation" + "description": "Simple policy schedule." + }, + "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/common/definitions.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/common/definitions.json#/definitions/expression" + } + ], + "description": "List of weeks of the 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/common/definitions.json#/definitions/expression" + } + ], + "description": "List of the days of the week for the weekly retention policy." + }, + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times of the retention policy." + } + }, + "description": "Weekly retention schedule." + }, + "YearlyRetentionSchedule": { + "type": "object", + "properties": { + "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/common/definitions.json#/definitions/expression" + } + ], + "description": "List of the months of year for the yearly retention policy." + }, + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionScheduleDaily": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Daily retention format." + }, + "retentionScheduleFormatType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention schedule format for the yearly retention policy." + }, + "retentionScheduleWeekly": { + "oneOf": [ + { + "$ref": "#/definitions/WeeklyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Weekly retention format." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times for the retention policy." + } + }, + "description": "Yearly retention schedule." } } -} \ No newline at end of file +} diff --git a/schemas/2016-12-01/Microsoft.RecoveryServices.json b/schemas/2016-12-01/Microsoft.RecoveryServices.json index c7007db63f..3ccdffe86d 100644 --- a/schemas/2016-12-01/Microsoft.RecoveryServices.json +++ b/schemas/2016-12-01/Microsoft.RecoveryServices.json @@ -7,42 +7,23 @@ "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" ] }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, "location": { "type": "string", "description": "Resource location." }, - "tags": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Resource tags." - }, - "eTag": { + "name": { "type": "string", - "description": "Optional ETag." + "description": "Name of the container to be registered." }, "properties": { "oneOf": [ @@ -53,48 +34,7 @@ "$ref": "https://schema.management.azure.com/schemas/common/definitions.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." + "description": "Base class for container with backup items. Containers with specific workloads are derived from this class." }, "tags": { "oneOf": [ @@ -102,7 +42,8 @@ "type": "object", "additionalProperties": { "type": "string" - } + }, + "properties": {} }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" @@ -110,108 +51,59 @@ ], "description": "Resource tags." }, - "eTag": { + "type": { "type": "string", - "description": "Optional ETag." - }, - "properties": { - "oneOf": [ - { - "$ref": "#/definitions/ProtectedItem" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "ProtectedItemResource properties" + "enum": [ + "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], - "description": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems" + "description": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers" }, - "vaults_backupPolicies": { + "vaults_backupstorageconfig": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.RecoveryServices/vaults/backupPolicies" - ] - }, "apiVersion": { "type": "string", "enum": [ "2016-12-01" ] }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, "location": { "type": "string", "description": "Resource location." }, - "tags": { + "name": { "oneOf": [ { - "type": "object", - "additionalProperties": { - "type": "string" - } + "type": "string", + "pattern": "^.*/vaultstorageconfig$" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } - ], - "description": "Resource tags." - }, - "eTag": { - "type": "string", - "description": "Optional ETag." + ] }, "properties": { "oneOf": [ { - "$ref": "#/definitions/ProtectionPolicy" + "$ref": "#/definitions/BackupResourceConfig" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "ProtectionPolicyResource properties" - } - }, - "required": [ - "name", - "type", - "apiVersion", - "properties" - ], - "description": "Microsoft.RecoveryServices/vaults/backupPolicies" - }, - "vaults_backupstorageconfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "Microsoft.RecoveryServices/vaults/backupstorageconfig" - ] - }, - "apiVersion": { - "type": "string", - "enum": [ - "2016-12-01" - ] - }, - "location": { - "type": "string", - "description": "Resource location." + "description": "The resource storage details." }, "tags": { "oneOf": [ @@ -219,7 +111,8 @@ "type": "object", "additionalProperties": { "type": "string" - } + }, + "properties": {} }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" @@ -227,26 +120,18 @@ ], "description": "Resource tags." }, - "eTag": { + "type": { "type": "string", - "description": "Optional ETag." - }, - "properties": { - "oneOf": [ - { - "$ref": "#/definitions/BackupResourceConfig" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "BackupResourceConfigResource properties" + "enum": [ + "Microsoft.RecoveryServices/vaults/backupstorageconfig" + ] } }, "required": [ - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], "description": "Microsoft.RecoveryServices/vaults/backupstorageconfig" } @@ -254,28 +139,12 @@ "definitions": { "AzureBackupServerContainer": { "type": "object", - "oneOf": [ - { - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureBackupServerContainer" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], "properties": { "containerType": { - "type": "string" + "type": "string", + "enum": [ + "AzureBackupServerContainer" + ] } }, "required": [ @@ -283,110 +152,76 @@ ], "description": "AzureBackupServer (DPMVenus) workload-specific protection container." }, - "AzureFileshareProtectedItem": { + "AzureIaaSClassicComputeVMContainer": { "type": "object", - "oneOf": [ - { - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureFileShareProtectedItem" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } + "properties": { + "containerType": { + "type": "string", + "enum": [ + "Microsoft.ClassicCompute/virtualMachines" + ] } + }, + "required": [ + "containerType" ], + "description": "IaaS VM workload-specific backup item representing a classic virtual machine." + }, + "AzureIaaSComputeVMContainer": { + "type": "object", "properties": { - "friendlyName": { - "type": "string", - "description": "Friendly name of the fileshare represented by this backup item." - }, - "protectionStatus": { + "containerType": { "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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "backups running status for this backup item." - }, - "lastBackupStatus": { + "enum": [ + "Microsoft.Compute/virtualMachines" + ] + } + }, + "required": [ + "containerType" + ], + "description": "IaaS VM workload-specific backup item representing an Azure Resource Manager virtual machine." + }, + "AzureSQLAGWorkloadContainerProtectionContainer": { + "type": "object", + "properties": { + "containerType": { "type": "string", - "description": "Last backup operation status. Possible values: Healthy, Unhealthy." - }, - "lastBackupTime": { + "enum": [ + "SQLAGWorkLoadContainer" + ] + } + }, + "required": [ + "containerType" + ], + "description": "Container for SQL workloads under SQL Availability Group." + }, + "AzureSqlContainer": { + "type": "object", + "properties": { + "containerType": { "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/common/definitions.json#/definitions/expression" - } - ], - "description": "Additional information with this backup item." - }, - "protectedItemType": { - "type": "string" + "enum": [ + "AzureSqlContainer" + ] } }, "required": [ - "protectedItemType" + "containerType" ], - "description": "Azure File Share workload-specific backup item." + "description": "Azure Sql workload-specific container." }, - "AzureFileshareProtectedItemExtendedInfo": { + "AzureStorageContainer": { "type": "object", "properties": { - "oldestRecoveryPoint": { + "containerType": { "type": "string", - "format": "date-time", - "description": "The oldest backup copy available for this item in the service." + "enum": [ + "StorageContainer" + ] }, - "recoveryPointCount": { + "protectedItemCount": { "oneOf": [ { "type": "integer" @@ -395,3746 +230,338 @@ "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Number of available backup copies associated with this backup item." + "description": "Number of items backed up in this container." }, - "policyState": { + "resourceGroup": { "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/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "workLoadType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Type of workload for the backup management." - }, - "schedulePolicy": { - "oneOf": [ - { - "$ref": "#/definitions/SchedulePolicy" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Backup schedule specified as part of backup policy." - }, - "retentionPolicy": { - "oneOf": [ - { - "$ref": "#/definitions/RetentionPolicy" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Retention policy with the details on backup copy retention ranges." + "description": "Resource group name of Recovery Services Vault." }, - "timeZone": { + "sourceResourceId": { "type": "string", - "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." + "description": "Fully qualified ARM url." }, - "backupManagementType": { - "type": "string" + "storageAccountVersion": { + "type": "string", + "description": "Storage account version." } }, "required": [ - "backupManagementType" + "containerType" ], - "description": "AzureStorage backup policy." + "description": "Azure Storage Account workload-specific container." }, - "AzureIaaSClassicComputeVMContainer": { + "AzureVMAppContainerProtectionContainer": { "type": "object", - "oneOf": [ - { - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Microsoft.ClassicCompute/virtualMachines" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], "properties": { "containerType": { - "type": "string" + "type": "string", + "enum": [ + "VMAppContainer" + ] } }, "required": [ "containerType" ], - "description": "IaaS VM workload-specific backup item representing a classic virtual machine." + "description": "Container for SQL workloads under Azure Virtual Machines." }, - "AzureIaaSClassicComputeVMProtectedItem": { + "AzureWorkloadContainer": { "type": "object", "oneOf": [ { - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Microsoft.ClassicCompute/virtualMachines" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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": [ + "$ref": "#/definitions/AzureSQLAGWorkloadContainerProtectionContainer" + }, { - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Microsoft.Compute/virtualMachines" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } + "$ref": "#/definitions/AzureVMAppContainerProtectionContainer" } ], "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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Health Code" - }, - "title": { - "type": "string", - "description": "Health Title" - }, - "message": { "type": "string", - "description": "Health Message" + "enum": [ + "AzureWorkloadContainer" + ] }, - "recommendations": { + "extendedInfo": { "oneOf": [ { - "type": "array", - "items": { - "type": "string" - } + "$ref": "#/definitions/AzureWorkloadContainerExtendedInfo" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureIaaSComputeVMProtectedItem" - } - ], - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Microsoft.Compute/virtualMachines" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureIaaSVMProtectedItem" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "friendlyName": { - "type": "string", - "description": "Friendly name of the VM represented by this backup item." + "description": "Extended information of the container." }, - "virtualMachineId": { - "type": "string", - "description": "Fully qualified ARM ID of the virtual machine represented by this item." - }, - "protectionStatus": { + "lastUpdatedTime": { "type": "string", - "description": "Backup status of this backup item." + "format": "date-time", + "description": "Time stamp when this container was updated." }, - "protectionState": { + "operationType": { "oneOf": [ { "type": "string", "enum": [ "Invalid", - "IRPending", - "Protected", - "ProtectionError", - "ProtectionStopped", - "ProtectionPaused" + "Register", + "Reregister" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Backup state of this backup item." + "description": "Re-Do Operation." }, - "healthStatus": { + "sourceResourceId": { + "type": "string", + "description": "ARM ID of the virtual machine represented by this Azure Workload Container" + }, + "workloadType": { "oneOf": [ { "type": "string", "enum": [ - "Passed", - "ActionRequired", - "ActionSuggested", - "Invalid" + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Health status of protected item." - }, - "healthDetails": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/AzureIaaSVMHealthDetails" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Additional information for this backup item." - }, - "protectedItemType": { - "type": "string" + "description": "Workload type for which registration was sent." } }, "required": [ - "protectedItemType" + "containerType" ], - "description": "IaaS VM workload-specific backup item." + "description": "Container for the workloads running inside Azure Compute or Classic Compute." }, - "AzureIaaSVMProtectedItemExtendedInfo": { + "AzureWorkloadContainerExtendedInfo": { "type": "object", "properties": { - "oldestRecoveryPoint": { + "hostServerName": { "type": "string", - "format": "date-time", - "description": "The oldest backup copy available for this backup item." + "description": "Host Os Name in case of Stand Alone and Cluster Name in case of distributed container." }, - "recoveryPointCount": { + "inquiryInfo": { "oneOf": [ { - "type": "integer" + "$ref": "#/definitions/InquiryInfo" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Number of backup copies available for this backup item." + "description": "Details about inquired protectable items under a given container." }, - "policyInconsistent": { + "nodesList": { "oneOf": [ { - "type": "boolean" + "type": "array", + "items": { + "$ref": "#/definitions/DistributedNodesInfo" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Specifies if backup policy associated with the backup item is inconsistent." + "description": "List of the nodes in case of distributed container." } }, - "description": "Additional information on Azure IaaS VM specific backup item." + "description": "Extended information of the container." }, - "AzureIaaSVMProtectionPolicy": { + "BackupResourceConfig": { "type": "object", - "oneOf": [ - { - "properties": { - "backupManagementType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureIaasVM" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], "properties": { - "schedulePolicy": { - "oneOf": [ - { - "$ref": "#/definitions/SchedulePolicy" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Backup schedule specified as part of backup policy." - }, - "retentionPolicy": { - "oneOf": [ - { - "$ref": "#/definitions/RetentionPolicy" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Retention policy with the details on backup copy retention ranges." - }, - "instantRpRetentionRangeInDays": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Instant RP retention policy range in days" - }, - "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/common/definitions.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/common/definitions.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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Backup state of the backed up item." - }, - "extendedInfo": { - "oneOf": [ - { - "$ref": "#/definitions/AzureSqlProtectedItemExtendedInfo" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "retentionPolicy": { - "oneOf": [ - { - "$ref": "#/definitions/RetentionPolicy" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "containerType": { - "type": "string" - } - }, - "required": [ - "containerType" - ], - "description": "Container for SQL workloads under Azure Virtual Machines." - }, - "AzureVmWorkloadProtectedItem": { - "type": "object", - "oneOf": [ - { - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureVmWorkloadProtectedItem" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadSAPAseDatabaseProtectedItem" - } - ], - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureVmWorkloadSAPAseDatabase" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadSAPHanaDatabaseProtectedItem" - } - ], - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureVmWorkloadSAPHanaDatabase" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadSQLDatabaseProtectedItem" - } - ], - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureVmWorkloadSQLDatabase" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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 protected item, example: for a DB, standalone server or distributed" - }, - "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/common/definitions.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/common/definitions.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/common/definitions.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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Additional information for this backup item." - }, - "protectedItemType": { - "type": "string" - } - }, - "required": [ - "protectedItemType" - ], - "description": "Azure VM workload-specific protected item." - }, - "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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "workLoadType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Type of workload for the backup management." - }, - "settings": { - "oneOf": [ - { - "$ref": "#/definitions/Settings" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.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." - }, - "AzureVmWorkloadSAPAseDatabaseProtectedItem": { - "type": "object", - "oneOf": [ - { - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureVmWorkloadSAPAseDatabase" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "protectedItemType": { - "type": "string" - } - }, - "required": [ - "protectedItemType" - ], - "description": "Azure VM workload-specific protected item representing SAP ASE Database." - }, - "AzureVmWorkloadSAPHanaDatabaseProtectedItem": { - "type": "object", - "oneOf": [ - { - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureVmWorkloadSAPHanaDatabase" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "protectedItemType": { - "type": "string" - } - }, - "required": [ - "protectedItemType" - ], - "description": "Azure VM workload-specific protected item representing SAP HANA Database." - }, - "AzureVmWorkloadSQLDatabaseProtectedItem": { - "type": "object", - "oneOf": [ - { - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureVmWorkloadSQLDatabase" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "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/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureVMAppContainerProtectionContainer" - } - ], - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "VMAppContainer" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureWorkloadContainer" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Additional details of a workload container." - }, - "workloadType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Workload type for which registration was sent." - }, - "operationType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Invalid", - "Register", - "Reregister" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Re-Do Operation." - }, - "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 Cluster Name in case of distributed container." - }, - "inquiryInfo": { - "oneOf": [ - { - "$ref": "#/definitions/InquiryInfo" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Inquiry Status for the container." - }, - "nodesList": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/DistributedNodesInfo" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "List of the nodes in case of distributed container." - } - }, - "description": "Extended information of the container." - }, - "BackupResourceConfig": { - "type": "object", - "properties": { - "storageModelType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Invalid", - "GeoRedundant", - "LocallyRedundant" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Storage type." - }, - "storageType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Invalid", - "GeoRedundant", - "LocallyRedundant" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Storage type." - }, - "storageTypeState": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Invalid", - "Locked", - "Unlocked" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked." - } - }, - "description": "The resource storage details." - }, - "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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Retention times of retention policy." - }, - "retentionDuration": { - "oneOf": [ - { - "$ref": "#/definitions/RetentionDuration" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Date of the month" - }, - "isLast": { - "oneOf": [ - { - "type": "boolean" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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\nFailed | Succeeded" - }, - "errorDetail": { - "oneOf": [ - { - "$ref": "#/definitions/ErrorDetail" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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": [ - { - "allOf": [ - { - "$ref": "#/definitions/AzureBackupServerContainer" - } - ], - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureBackupServerContainer" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "DPMContainer" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "canReRegister": { - "oneOf": [ - { - "type": "boolean" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "List of BackupEngines protecting the container" - }, - "upgradeAvailable": { - "oneOf": [ - { - "type": "boolean" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Protection state of the backupengine." - }, - "isScheduledForDeferredDelete": { - "oneOf": [ - { - "type": "boolean" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Attribute to provide information on various DBs." - }, - "protected": { - "oneOf": [ - { - "type": "boolean" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "To check if backup item is disk protected." - }, - "isPresentOnCloud": { - "oneOf": [ - { - "type": "boolean" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "disk recovery point count." - }, - "isCollocated": { - "oneOf": [ - { - "type": "boolean" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.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/common/definitions.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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Container identity information" - }, - "serviceEndpoints": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Backup state of this backup item." - }, - "protectedItemId": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "subProtectionPolicy": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/SubProtectionPolicy" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureIaaSComputeVMContainer" - } - ], - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Microsoft.Compute/virtualMachines" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "IaaSVMContainer" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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\nInProgress | Failed | Succeeded" - }, - "errorDetail": { - "oneOf": [ - { - "$ref": "#/definitions/ErrorDetail" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Inquiry Details which will have workload specific details.\r\nFor 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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "scheduleFrequencyInMins": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "dailySchedule": { - "oneOf": [ - { - "$ref": "#/definitions/DailyRetentionSchedule" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Daily retention schedule of the protection policy." - }, - "weeklySchedule": { - "oneOf": [ - { - "$ref": "#/definitions/WeeklyRetentionSchedule" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Weekly retention schedule of the protection policy." - }, - "monthlySchedule": { - "oneOf": [ - { - "$ref": "#/definitions/MonthlyRetentionSchedule" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Monthly retention schedule of the protection policy." - }, - "yearlySchedule": { - "oneOf": [ - { - "$ref": "#/definitions/YearlyRetentionSchedule" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "schedulePolicyType": { - "type": "string" - } - }, - "required": [ - "schedulePolicyType" - ], - "description": "Long term policy schedule." - }, - "MabContainer": { - "type": "object", - "oneOf": [ - { - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Windows" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "canReRegister": { - "oneOf": [ - { - "type": "boolean" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Can the container be registered one more time." - }, - "containerId": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "ContainerID represents the container." - }, - "protectedItemCount": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Additional information for this container" - }, - "mabContainerHealthDetails": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/MABContainerHealthDetails" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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", - "SAPHanaDatabase", - "SAPAseDatabase" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.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/common/definitions.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/common/definitions.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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Specifies if the item is scheduled for deferred deletion." - }, - "deferredDeleteSyncTimeInUTC": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Sync time for deferred deletion." - }, - "extendedInfo": { - "oneOf": [ - { - "$ref": "#/definitions/MabFileFolderProtectedItemExtendedInfo" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.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/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "schedulePolicy": { - "oneOf": [ - { - "$ref": "#/definitions/SchedulePolicy" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Backup schedule of backup policy." - }, - "retentionPolicy": { - "oneOf": [ - { - "$ref": "#/definitions/RetentionPolicy" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Retention schedule format type for monthly retention policy." - }, - "retentionScheduleDaily": { - "oneOf": [ - { - "$ref": "#/definitions/DailyRetentionFormat" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Daily retention format for monthly retention policy." - }, - "retentionScheduleWeekly": { - "oneOf": [ - { - "$ref": "#/definitions/WeeklyRetentionFormat" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Retention times of retention policy." - }, - "retentionDuration": { - "oneOf": [ - { - "$ref": "#/definitions/RetentionDuration" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureIaaSVMProtectedItem" - } - ], - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureIaaSVMProtectedItem" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureSqlProtectedItem" - } - ], - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Microsoft.Sql/servers/databases" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadProtectedItem" - } - ], - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureVmWorkloadProtectedItem" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/DPMProtectedItem" - } - ], - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "DPMProtectedItem" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/GenericProtectedItem" - } - ], - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "GenericProtectedItem" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/MabFileFolderProtectedItem" - } - ], - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "MabFileFolderProtectedItem" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "properties": { - "protectedItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "ProtectedItem" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" - } - ], - "description": "Type of backup management for the backed up item." - }, - "workloadType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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" - }, - "createMode": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Invalid", - "Default", - "Recover" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Create mode to indicate recovery of existing soft deleted data source or creation of new data source." - }, - "protectedItemType": { - "type": "string" - } - }, - "required": [ - "protectedItemType" - ], - "description": "Base class for backup items." - }, - "ProtectionContainer": { - "type": "object", - "oneOf": [ - { - "allOf": [ - { - "$ref": "#/definitions/AzureSqlContainer" - } - ], - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureSqlContainer" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureStorageContainer" - } - ], - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "StorageContainer" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureWorkloadContainer" - } - ], - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureWorkloadContainer" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/DpmContainer" - } - ], - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "DPMContainer" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/GenericContainer" - } - ], - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "GenericContainer" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/IaaSVMContainer" - } - ], - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "IaaSVMContainer" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/MabContainer" - } - ], - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Windows" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "properties": { - "containerType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "ProtectionContainer" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "friendlyName": { - "type": "string", - "description": "Friendly name of the container." - }, - "backupManagementType": { + "storageModelType": { "oneOf": [ { "type": "string", "enum": [ "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Type of backup management 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/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureIaaSVMProtectionPolicy" - } - ], - "properties": { - "backupManagementType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureIaasVM" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureSqlProtectionPolicy" - } - ], - "properties": { - "backupManagementType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureSql" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadProtectionPolicy" - } - ], - "properties": { - "backupManagementType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureWorkload" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/GenericProtectionPolicy" - } - ], - "properties": { - "backupManagementType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "GenericProtectionPolicy" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/MabProtectionPolicy" - } - ], - "properties": { - "backupManagementType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "MAB" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "properties": { - "backupManagementType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "ProtectionPolicy" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "protectedItemsCount": { - "oneOf": [ - { - "type": "integer" + "GeoRedundant", + "LocallyRedundant" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Number of items associated with this policy." + "description": "Storage type." }, - "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": { + "storageType": { "oneOf": [ { - "type": "integer" + "type": "string", + "enum": [ + "Invalid", + "GeoRedundant", + "LocallyRedundant" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Count of duration types. Retention duration is obtained by the counting the duration type Count times.\r\nFor example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks." + "description": "Storage type." }, - "durationType": { + "storageTypeState": { "oneOf": [ { "type": "string", "enum": [ "Invalid", - "Days", - "Weeks", - "Months", - "Years" + "Locked", + "Unlocked" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Retention duration type of retention policy." + "description": "Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked." } }, - "description": "Retention duration." + "description": "The resource storage details." }, - "RetentionPolicy": { + "ContainerIdentityInfo": { "type": "object", - "oneOf": [ - { - "properties": { - "retentionPolicyType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "RetentionPolicy" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } + "properties": { + "aadTenantId": { + "type": "string", + "description": "Protection container identity - AAD Tenant" }, - { - "allOf": [ - { - "$ref": "#/definitions/LongTermRetentionPolicy" - } - ], - "properties": { - "retentionPolicyType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "LongTermRetentionPolicy" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } + "audience": { + "type": "string", + "description": "Protection container identity - Audience" }, - { - "allOf": [ + "servicePrincipalClientId": { + "type": "string", + "description": "Protection container identity - AAD Service Principal" + }, + "uniqueName": { + "type": "string", + "description": "Unique name of the container" + } + }, + "description": "Container identity information" + }, + "DistributedNodesInfo": { + "type": "object", + "properties": { + "errorDetail": { + "oneOf": [ + { + "$ref": "#/definitions/ErrorDetail" + }, { - "$ref": "#/definitions/SimpleRetentionPolicy" + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "properties": { - "retentionPolicyType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "SimpleRetentionPolicy" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], - "properties": { - "retentionPolicyType": { - "type": "string" + "description": "Error Detail class which encapsulates Code, Message and Recommendations." + }, + "nodeName": { + "type": "string", + "description": "Name of the node under a distributed container." + }, + "status": { + "type": "string", + "description": "Status of this Node.\r\nFailed | Succeeded" } }, - "required": [ - "retentionPolicyType" - ], - "description": "Base class for retention policy." + "description": "This is used to represent the various nodes of the distributed container." }, - "SchedulePolicy": { + "DpmContainer": { "type": "object", "oneOf": [ { - "properties": { - "schedulePolicyType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "SchedulePolicy" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ + "$ref": "#/definitions/AzureBackupServerContainer" + } + ], + "properties": { + "canReRegister": { + "oneOf": [ + { + "type": "boolean" + }, { - "$ref": "#/definitions/LogSchedulePolicy" + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "properties": { - "schedulePolicyType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "LogSchedulePolicy" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } + "description": "Specifies whether the container is re-registrable." }, - { - "allOf": [ + "containerId": { + "type": "string", + "description": "ID of container." + }, + "containerType": { + "type": "string", + "enum": [ + "DPMContainer" + ] + }, + "dpmAgentVersion": { + "type": "string", + "description": "Backup engine Agent version" + }, + "dpmServers": { + "oneOf": [ { - "$ref": "#/definitions/LongTermSchedulePolicy" + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "properties": { - "schedulePolicyType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "LongTermSchedulePolicy" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } + "description": "List of BackupEngines protecting the container" }, - { - "allOf": [ + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/DPMContainerExtendedInfo" + }, { - "$ref": "#/definitions/SimpleSchedulePolicy" + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "properties": { - "schedulePolicyType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "SimpleSchedulePolicy" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.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\"." + "description": "Additional information of the DPMContainer." }, - "issqlcompression": { + "protectedItemCount": { "oneOf": [ { - "type": "boolean" + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "SQL compression flag" + "description": "Number of protected items in the BackupEngine" + }, + "protectionStatus": { + "type": "string", + "description": "Protection status of the container." }, - "isCompression": { + "upgradeAvailable": { "oneOf": [ { "type": "boolean" @@ -4143,332 +570,272 @@ "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Workload compression flag. This has been added so that 'isSqlCompression'\r\nwill be deprecated once clients upgrade to consider this flag." + "description": "To check if upgrade available" } }, - "description": "Common settings field for backup management" + "required": [ + "containerType" + ], + "description": "DPM workload-specific protection container." }, - "SimpleRetentionPolicy": { + "DPMContainerExtendedInfo": { "type": "object", - "oneOf": [ - { - "properties": { - "retentionPolicyType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "SimpleRetentionPolicy" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } + "properties": { + "lastRefreshedAt": { + "type": "string", + "format": "date-time", + "description": "Last refresh time of the DPMContainer." } - ], + }, + "description": "Additional information of the DPMContainer." + }, + "ErrorDetail": { + "type": "object", + "properties": {}, + "description": "Error Detail class which encapsulates Code, Message and Recommendations." + }, + "GenericContainer": { + "type": "object", "properties": { - "retentionDuration": { + "containerType": { + "type": "string", + "enum": [ + "GenericContainer" + ] + }, + "extendedInformation": { "oneOf": [ { - "$ref": "#/definitions/RetentionDuration" + "$ref": "#/definitions/GenericContainerExtendedInfo" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Retention duration of the protection policy." + "description": "Container extended information" }, - "retentionPolicyType": { - "type": "string" + "fabricName": { + "type": "string", + "description": "Name of the container's fabric" } }, "required": [ - "retentionPolicyType" + "containerType" ], - "description": "Simple policy retention." + "description": "Base class for generic container of backup items" }, - "SimpleSchedulePolicy": { + "GenericContainerExtendedInfo": { "type": "object", - "oneOf": [ - { - "properties": { - "schedulePolicyType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "SimpleSchedulePolicy" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], "properties": { - "scheduleRunFrequency": { + "containerIdentityInfo": { "oneOf": [ { - "type": "string", - "enum": [ - "Invalid", - "Daily", - "Weekly" - ] + "$ref": "#/definitions/ContainerIdentityInfo" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Frequency of the schedule operation of this policy." + "description": "Container identity information" }, - "scheduleRunDays": { - "oneOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" - ] - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "List of days of week this schedule has to be run." + "rawCertData": { + "type": "string", + "description": "Public key of container cert" }, - "scheduleRunTimes": { + "serviceEndpoints": { "oneOf": [ { - "type": "array", - "items": { + "type": "object", + "additionalProperties": { "type": "string" - } + }, + "properties": {} }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "List of times of day this schedule has to be run." + "description": "Azure Backup Service Endpoints for the container" + } + }, + "description": "Container extended information" + }, + "IaaSVMContainer": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureIaaSClassicComputeVMContainer" }, - "scheduleWeeklyFrequency": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "At every number weeks this schedule has to be run." + { + "$ref": "#/definitions/AzureIaaSComputeVMContainer" + } + ], + "properties": { + "containerType": { + "type": "string", + "enum": [ + "IaaSVMContainer" + ] + }, + "resourceGroup": { + "type": "string", + "description": "Resource group name of Recovery Services Vault." + }, + "virtualMachineId": { + "type": "string", + "description": "Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container." }, - "schedulePolicyType": { - "type": "string" + "virtualMachineVersion": { + "type": "string", + "description": "Specifies whether the container represents a Classic or an Azure Resource Manager VM." } }, "required": [ - "schedulePolicyType" + "containerType" ], - "description": "Simple policy schedule." + "description": "IaaS VM workload-specific container." }, - "SubProtectionPolicy": { + "InquiryInfo": { "type": "object", "properties": { - "policyType": { + "errorDetail": { "oneOf": [ { - "type": "string", - "enum": [ - "Invalid", - "Full", - "Differential", - "Log", - "CopyOnlyFull" - ] + "$ref": "#/definitions/ErrorDetail" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Type of backup policy type." + "description": "Error Detail class which encapsulates Code, Message and Recommendations." }, - "schedulePolicy": { + "inquiryDetails": { "oneOf": [ { - "$ref": "#/definitions/SchedulePolicy" + "type": "array", + "items": { + "$ref": "#/definitions/WorkloadInquiryDetails" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Backup schedule specified as part of backup policy." + "description": "Inquiry Details which will have workload specific details.\r\nFor e.g. - For SQL and oracle this will contain different details." }, - "retentionPolicy": { + "status": { + "type": "string", + "description": "Inquiry Status for this container such as\r\nInProgress | Failed | Succeeded" + } + }, + "description": "Details about inquired protectable items under a given container." + }, + "InquiryValidation": { + "type": "object", + "properties": { + "errorDetail": { "oneOf": [ { - "$ref": "#/definitions/RetentionPolicy" + "$ref": "#/definitions/ErrorDetail" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Retention policy with the details on backup copy retention ranges." + "description": "Error Detail class which encapsulates Code, Message and Recommendations." + }, + "status": { + "type": "string", + "description": "Status for the Inquiry Validation." } }, - "description": "Sub-protection policy which includes schedule and retention" + "description": "Validation for inquired protectable items under a given container." }, - "vaults_backupFabrics_protectionContainers_protectedItems_childResource": { + "MabContainer": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { + "agentVersion": { "type": "string", - "enum": [ - "protectedItems" - ] + "description": "Agent version of this container." }, - "apiVersion": { - "type": "string", - "enum": [ - "2016-12-01" - ] + "canReRegister": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Can the container be registered one more time." }, - "location": { + "containerHealthState": { "type": "string", - "description": "Resource location." + "description": "Health state of mab container." }, - "tags": { + "containerId": { "oneOf": [ { - "type": "object", - "additionalProperties": { - "type": "string" - } + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Resource tags." + "description": "ContainerID represents the container." }, - "eTag": { + "containerType": { "type": "string", - "description": "Optional ETag." + "enum": [ + "Windows" + ] }, - "properties": { + "extendedInfo": { "oneOf": [ { - "$ref": "#/definitions/ProtectedItem" + "$ref": "#/definitions/MabContainerExtendedInfo" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "ProtectedItemResource properties" - } - }, - "required": [ - "name", - "type", - "apiVersion", - "properties" - ], - "description": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems" - }, - "WeeklyRetentionFormat": { - "type": "object", - "properties": { - "daysOfTheWeek": { + "description": "Additional information of the container." + }, + "mabContainerHealthDetails": { "oneOf": [ { "type": "array", "items": { - "type": "string", - "enum": [ - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" - ] + "$ref": "#/definitions/MABContainerHealthDetails" } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "List of days of the week." + "description": "Health details on this mab container." }, - "weeksOfTheMonth": { + "protectedItemCount": { "oneOf": [ { - "type": "array", - "items": { - "type": "string", - "enum": [ - "First", - "Second", - "Third", - "Fourth", - "Last", - "Invalid" - ] - } + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "List of weeks of month." + "description": "Number of items backed up in this container." } }, - "description": "Weekly retention format." + "required": [ + "containerType" + ], + "description": "Container with items backed up using MAB backup engine." }, - "WeeklyRetentionSchedule": { + "MabContainerExtendedInfo": { "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/common/definitions.json#/definitions/expression" - } - ], - "description": "List of days of week for weekly retention policy." - }, - "retentionTimes": { + "backupItems": { "oneOf": [ { "type": "array", @@ -4480,30 +847,56 @@ "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Retention times of retention policy." + "description": "List of backup items associated with this container." }, - "retentionDuration": { + "backupItemType": { "oneOf": [ { - "$ref": "#/definitions/RetentionDuration" + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Retention duration of retention Policy." + "description": "Type of backup items associated with this container." + }, + "lastBackupStatus": { + "type": "string", + "description": "Latest backup status of this container." + }, + "lastRefreshedAt": { + "type": "string", + "format": "date-time", + "description": "Time stamp when this container was refreshed." + }, + "policyName": { + "type": "string", + "description": "Backup policy associated with this container." } }, - "description": "Weekly retention schedule." + "description": "Additional information of the container." }, - "WorkloadInquiryDetails": { + "MABContainerHealthDetails": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Type of the Workload such as SQL, Oracle etc." - }, - "itemCount": { + "code": { "oneOf": [ { "type": "integer" @@ -4512,119 +905,127 @@ "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Contains the protectable item Count inside this Container." + "description": "Health Code" }, - "inquiryValidation": { + "message": { + "type": "string", + "description": "Health Message" + }, + "recommendations": { "oneOf": [ { - "$ref": "#/definitions/InquiryValidation" + "type": "array", + "items": { + "type": "string" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Inquiry validation such as permissions and other backup validations." + "description": "Health Recommended Actions" + }, + "title": { + "type": "string", + "description": "Health Title" } }, - "description": "Details of an inquired protectable item." + "description": "MAB workload-specific Health Details." }, - "YearlyRetentionSchedule": { + "ProtectionContainer": { "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureSqlContainer" + }, + { + "$ref": "#/definitions/AzureStorageContainer" + }, + { + "$ref": "#/definitions/AzureWorkloadContainer" + }, + { + "$ref": "#/definitions/DpmContainer" + }, + { + "$ref": "#/definitions/GenericContainer" + }, + { + "$ref": "#/definitions/IaaSVMContainer" + }, + { + "$ref": "#/definitions/MabContainer" + } + ], "properties": { - "retentionScheduleFormatType": { + "backupManagementType": { "oneOf": [ { "type": "string", "enum": [ "Invalid", - "Daily", - "Weekly" + "AzureIaasVM", + "MAB", + "DPM", + "AzureSql", + "AzureBackupServer", + "AzureWorkload", + "AzureStorage", + "DefaultBackup" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Retention schedule format for yearly retention policy." + "description": "Type of backup management for the container." }, - "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/common/definitions.json#/definitions/expression" - } - ], - "description": "List of months of year of yearly retention policy." + "friendlyName": { + "type": "string", + "description": "Friendly name of the container." }, - "retentionScheduleDaily": { - "oneOf": [ - { - "$ref": "#/definitions/DailyRetentionFormat" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Daily retention format for yearly retention policy." + "healthStatus": { + "type": "string", + "description": "Status of health of the container." }, - "retentionScheduleWeekly": { + "registrationStatus": { + "type": "string", + "description": "Status of registration of the container with the Recovery Services Vault." + } + }, + "description": "Base class for container with backup items. Containers with specific workloads are derived from this class." + }, + "WorkloadInquiryDetails": { + "type": "object", + "properties": { + "inquiryValidation": { "oneOf": [ { - "$ref": "#/definitions/WeeklyRetentionFormat" + "$ref": "#/definitions/InquiryValidation" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Weekly retention format for yearly retention policy." + "description": "Validation for inquired protectable items under a given container." }, - "retentionTimes": { + "itemCount": { "oneOf": [ { - "type": "array", - "items": { - "type": "string" - } + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Retention times of retention policy." + "description": "Contains the protectable item Count inside this Container." }, - "retentionDuration": { - "oneOf": [ - { - "$ref": "#/definitions/RetentionDuration" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Retention duration of retention Policy." + "type": { + "type": "string", + "description": "Type of the Workload such as SQL, Oracle etc." } }, - "description": "Yearly retention schedule." + "description": "Details of an inquired protectable item." } } } diff --git a/schemas/2017-07-01/Microsoft.RecoveryServices.json b/schemas/2017-07-01/Microsoft.RecoveryServices.json index 1ffd625c88..2462ed3c88 100644 --- a/schemas/2017-07-01/Microsoft.RecoveryServices.json +++ b/schemas/2017-07-01/Microsoft.RecoveryServices.json @@ -7,60 +7,62 @@ "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" ] }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, "location": { "type": "string", "description": "Resource location." }, - "tags": { + "name": { + "type": "string", + "description": "Intent object name." + }, + "properties": { "oneOf": [ { - "type": "object", - "additionalProperties": { - "type": "string" - } + "$ref": "#/definitions/ProtectionIntent" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Resource tags." + "description": "Base class for backup ProtectionIntent." }, - "eTag": { - "type": "string", - "description": "Optional ETag." - }, - "properties": { + "tags": { "oneOf": [ { - "$ref": "#/definitions/ProtectionIntent" + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "ProtectionIntentResource properties" + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupFabrics/backupProtectionIntent" + ] } }, "required": [ - "name", - "type", "apiVersion", - "properties" + "name", + "properties", + "type" ], "description": "Microsoft.RecoveryServices/vaults/backupFabrics/backupProtectionIntent" } @@ -70,48 +72,15 @@ "type": "object", "oneOf": [ { - "properties": { - "protectionIntentItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "RecoveryServiceVaultItem" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureWorkloadAutoProtectionIntent" - } - ], - "properties": { - "protectionIntentItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureWorkloadAutoProtectionIntent" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } + "$ref": "#/definitions/AzureWorkloadAutoProtectionIntent" } ], "properties": { "protectionIntentItemType": { - "type": "string" + "type": "string", + "enum": [ + "RecoveryServiceVaultItem" + ] } }, "required": [ @@ -121,32 +90,16 @@ }, "AzureResourceProtectionIntent": { "type": "object", - "oneOf": [ - { - "properties": { - "protectionIntentItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureResourceItem" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], "properties": { "friendlyName": { "type": "string", "description": "Friendly name of the VM represented by this backup item." }, "protectionIntentItemType": { - "type": "string" + "type": "string", + "enum": [ + "AzureResourceItem" + ] } }, "required": [ @@ -158,48 +111,15 @@ "type": "object", "oneOf": [ { - "properties": { - "protectionIntentItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureWorkloadAutoProtectionIntent" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureWorkloadSQLAutoProtectionIntent" - } - ], - "properties": { - "protectionIntentItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureWorkloadSQLAutoProtectionIntent" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } + "$ref": "#/definitions/AzureWorkloadSQLAutoProtectionIntent" } ], "properties": { "protectionIntentItemType": { - "type": "string" + "type": "string", + "enum": [ + "AzureWorkloadAutoProtectionIntent" + ] } }, "required": [ @@ -209,26 +129,13 @@ }, "AzureWorkloadSQLAutoProtectionIntent": { "type": "object", - "oneOf": [ - { - "properties": { - "protectionIntentItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureWorkloadSQLAutoProtectionIntent" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - } - ], "properties": { + "protectionIntentItemType": { + "type": "string", + "enum": [ + "AzureWorkloadSQLAutoProtectionIntent" + ] + }, "workloadItemType": { "oneOf": [ { @@ -248,9 +155,6 @@ } ], "description": "Workload item type of the item for which intent is to be set." - }, - "protectionIntentItemType": { - "type": "string" } }, "required": [ @@ -262,65 +166,10 @@ "type": "object", "oneOf": [ { - "allOf": [ - { - "$ref": "#/definitions/AzureRecoveryServiceVaultProtectionIntent" - } - ], - "properties": { - "protectionIntentItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "RecoveryServiceVaultItem" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } - }, - { - "allOf": [ - { - "$ref": "#/definitions/AzureResourceProtectionIntent" - } - ], - "properties": { - "protectionIntentItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "AzureResourceItem" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } + "$ref": "#/definitions/AzureRecoveryServiceVaultProtectionIntent" }, { - "properties": { - "protectionIntentItemType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "ProtectionIntent" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - } + "$ref": "#/definitions/AzureResourceProtectionIntent" } ], "properties": { @@ -346,10 +195,6 @@ ], "description": "Type of backup management 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" @@ -376,13 +221,11 @@ ], "description": "Backup state of this backup item." }, - "protectionIntentItemType": { - "type": "string" + "sourceResourceId": { + "type": "string", + "description": "ARM ID of the resource to be backed up." } }, - "required": [ - "protectionIntentItemType" - ], "description": "Base class for backup ProtectionIntent." } } diff --git a/schemas/2018-12-20/Microsoft.RecoveryServices.json b/schemas/2018-12-20/Microsoft.RecoveryServices.json new file mode 100644 index 0000000000..357d7f0414 --- /dev/null +++ b/schemas/2018-12-20/Microsoft.RecoveryServices.json @@ -0,0 +1,148 @@ +{ + "id": "https://schema.management.azure.com/schemas/2018-12-20/Microsoft.RecoveryServices.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.RecoveryServices", + "description": "Microsoft RecoveryServices Resource Types", + "resourceDefinitions": { + "vaults_backupstorageconfig": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-12-20" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^.*/vaultstorageconfig$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/BackupResourceConfig" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The resource storage details." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupstorageconfig" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.RecoveryServices/vaults/backupstorageconfig" + } + }, + "definitions": { + "BackupResourceConfig": { + "type": "object", + "properties": { + "crossRegionRestoreFlag": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Opt in details of Cross Region Restore feature." + }, + "storageModelType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "GeoRedundant", + "LocallyRedundant", + "ZoneRedundant", + "ReadAccessGeoZoneRedundant" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Storage type." + }, + "storageType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "GeoRedundant", + "LocallyRedundant", + "ZoneRedundant", + "ReadAccessGeoZoneRedundant" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Storage type." + }, + "storageTypeState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Locked", + "Unlocked" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked." + } + }, + "description": "The resource storage details." + } + } +} diff --git a/schemas/2019-05-13/Microsoft.RecoveryServices.json b/schemas/2019-05-13/Microsoft.RecoveryServices.json new file mode 100644 index 0000000000..f2b91e5f0a --- /dev/null +++ b/schemas/2019-05-13/Microsoft.RecoveryServices.json @@ -0,0 +1,2270 @@ +{ + "id": "https://schema.management.azure.com/schemas/2019-05-13/Microsoft.RecoveryServices.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.RecoveryServices", + "description": "Microsoft RecoveryServices Resource Types", + "resourceDefinitions": { + "vaults_backupFabrics_protectionContainers_protectedItems": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-05-13" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "description": "Item name to be backed up." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProtectedItem" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup items." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems" + }, + "vaults_backupPolicies": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-05-13" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "description": "Backup policy to be created." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProtectionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup policy. Workload-specific backup policies are derived from this class." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupPolicies" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.RecoveryServices/vaults/backupPolicies" + } + }, + "definitions": { + "AzureFileshareProtectedItem": { + "type": "object", + "properties": { + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureFileshareProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information about Azure File Share backup item." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the fileshare represented by this backup item." + }, + "healthStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Passed", + "ActionRequired", + "ActionSuggested", + "Invalid" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "AzureFileShareProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "protectionStatus": { + "type": "string", + "description": "Backup status of this backup item." + } + }, + "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." + }, + "policyState": { + "type": "string", + "description": "Indicates consistency of policy object and policy applied to this backup item." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of available backup copies associated with this backup item." + } + }, + "description": "Additional information about Azure File Share backup item." + }, + "AzureFileShareProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "AzureStorage" + ] + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup schedule." + }, + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." + }, + "workLoadType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of workload for the backup management." + } + }, + "required": [ + "backupManagementType" + ], + "description": "AzureStorage backup policy." + }, + "AzureIaaSClassicComputeVMProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "Microsoft.ClassicCompute/virtualMachines" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "IaaS VM workload-specific backup item representing the Classic Compute VM." + }, + "AzureIaaSComputeVMProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "Microsoft.Compute/virtualMachines" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "IaaS VM workload-specific backup item representing the Azure Resource Manager VM." + }, + "AzureIaaSVMHealthDetails": { + "type": "object", + "properties": {}, + "description": "Azure IaaS VM workload-specific Health Details." + }, + "AzureIaaSVMProtectedItem": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureIaaSClassicComputeVMProtectedItem" + }, + { + "$ref": "#/definitions/AzureIaaSComputeVMProtectedItem" + } + ], + "properties": { + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureIaaSVMProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information on Azure IaaS VM specific backup item." + }, + "extendedProperties": { + "oneOf": [ + { + "$ref": "#/definitions/ExtendedProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Extended Properties for Azure IaasVM Backup." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the VM represented by this backup item." + }, + "healthDetails": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/AzureIaaSVMHealthDetails" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health details on this backup item." + }, + "healthStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Passed", + "ActionRequired", + "ActionSuggested", + "Invalid" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health status of protected 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." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "AzureIaaSVMProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "protectionStatus": { + "type": "string", + "description": "Backup status of this backup item." + }, + "virtualMachineId": { + "type": "string", + "description": "Fully qualified ARM ID of the virtual machine represented by this item." + } + }, + "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." + }, + "policyInconsistent": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies if backup policy associated with the backup item is inconsistent." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of backup copies available for this backup item." + } + }, + "description": "Additional information on Azure IaaS VM specific backup item." + }, + "AzureIaaSVMProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "AzureIaasVM" + ] + }, + "instantRpRetentionRangeInDays": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Instant RP retention policy range in days" + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup schedule." + }, + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." + } + }, + "required": [ + "backupManagementType" + ], + "description": "IaaS VM workload-specific backup policy." + }, + "AzureSqlProtectedItem": { + "type": "object", + "properties": { + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureSqlProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information on Azure Sql specific protected item." + }, + "protectedItemDataId": { + "type": "string", + "description": "Internal ID of a backup item. Used by Azure SQL Backup engine to contact Recovery Services." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "Microsoft.Sql/servers/databases" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of the backed up item." + } + }, + "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." + }, + "policyState": { + "type": "string", + "description": "State of the backup policy associated with this backup item." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of available backup copies associated with this backup item." + } + }, + "description": "Additional information on Azure Sql specific protected item." + }, + "AzureSqlProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "AzureSql" + ] + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + } + }, + "required": [ + "backupManagementType" + ], + "description": "Azure SQL workload-specific backup policy." + }, + "AzureVmWorkloadProtectedItem": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadSAPAseDatabaseProtectedItem" + }, + { + "$ref": "#/definitions/AzureVmWorkloadSAPHanaDatabaseProtectedItem" + }, + { + "$ref": "#/definitions/AzureVmWorkloadSQLDatabaseProtectedItem" + } + ], + "properties": { + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information on Azure Workload for SQL specific backup item." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the DB represented by this backup item." + }, + "lastBackupErrorDetail": { + "oneOf": [ + { + "$ref": "#/definitions/ErrorDetail" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Error Detail class which encapsulates Code, Message and Recommendations." + }, + "lastBackupStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Healthy", + "Unhealthy", + "IRPending" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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." + }, + "parentName": { + "type": "string", + "description": "Parent name of the DB such as Instance or Availability Group." + }, + "parentType": { + "type": "string", + "description": "Parent type of protected item, example: for a DB, standalone server or distributed" + }, + "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/common/definitions.json#/definitions/expression" + } + ], + "description": "Health status of the backup item, evaluated based on last heartbeat received." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "AzureVmWorkloadProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "protectionStatus": { + "type": "string", + "description": "Backup status of this backup item." + }, + "serverName": { + "type": "string", + "description": "Host/Cluster Name for instance or AG" + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure VM workload-specific protected item." + }, + "AzureVmWorkloadProtectedItemExtendedInfo": { + "type": "object", + "properties": { + "oldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "The oldest backup copy available for this backup item." + }, + "policyState": { + "type": "string", + "description": "Indicates consistency of policy object and policy applied to this backup item." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of backup copies available for this backup item." + } + }, + "description": "Additional information on Azure Workload for SQL specific backup item." + }, + "AzureVmWorkloadProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "AzureWorkload" + ] + }, + "makePolicyConsistent": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Fix the policy inconsistency" + }, + "settings": { + "oneOf": [ + { + "$ref": "#/definitions/Settings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Common settings field for backup management" + }, + "subProtectionPolicy": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubProtectionPolicy" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of sub-protection policies which includes schedule and retention" + }, + "workLoadType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of workload for the backup management." + } + }, + "required": [ + "backupManagementType" + ], + "description": "Azure VM (Mercury) workload-specific backup policy." + }, + "AzureVmWorkloadSAPAseDatabaseProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "AzureVmWorkloadSAPAseDatabase" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure VM workload-specific protected item representing SAP ASE Database." + }, + "AzureVmWorkloadSAPHanaDatabaseProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "AzureVmWorkloadSAPHanaDatabase" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure VM workload-specific protected item representing SAP HANA Database." + }, + "AzureVmWorkloadSQLDatabaseProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "AzureVmWorkloadSQLDatabase" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure VM workload-specific protected item representing SQL Database." + }, + "DailyRetentionFormat": { + "type": "object", + "properties": { + "daysOfTheMonth": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Day" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of days of the month." + } + }, + "description": "Daily retention format." + }, + "DailyRetentionSchedule": { + "type": "object", + "properties": { + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + } + }, + "description": "Daily retention schedule." + }, + "Day": { + "type": "object", + "properties": { + "date": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Date of the month" + }, + "isLast": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether Date is last date of month" + } + }, + "description": "Day of the week." + }, + "DiskExclusionProperties": { + "type": "object", + "properties": { + "diskLunList": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "integer" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of Disks' Logical Unit Numbers (LUN) to be used for VM Protection." + }, + "isInclusionList": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Flag to indicate whether DiskLunList is to be included/ excluded from backup." + } + } + }, + "DPMProtectedItem": { + "type": "object", + "properties": { + "backupEngineName": { + "type": "string", + "description": "Backup Management server protecting this backup item" + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/DPMProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information of DPM Protected item." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the managed item" + }, + "protectedItemType": { + "type": "string", + "enum": [ + "DPMProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Protection state of the backup engine." + } + }, + "required": [ + "protectedItemType" + ], + "description": "Additional information on Backup engine specific backup item." + }, + "DPMProtectedItemExtendedInfo": { + "type": "object", + "properties": { + "diskStorageUsedInBytes": { + "type": "string", + "description": "Used Disk storage in bytes." + }, + "isCollocated": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "To check if backup item is collocated." + }, + "isPresentOnCloud": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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." + }, + "onPremiseLatestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "latest disk recovery point time." + }, + "onPremiseOldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "Oldest disk recovery point time." + }, + "onPremiseRecoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "disk recovery point count." + }, + "protectableObjectLoadPath": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Attribute to provide information on various DBs." + }, + "protected": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "To check if backup item is disk protected." + }, + "protectionGroupName": { + "type": "string", + "description": "Protection group name of the backup item." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "cloud recovery point count." + }, + "totalDiskStorageSizeInBytes": { + "type": "string", + "description": "total Disk storage in bytes." + } + }, + "description": "Additional information of DPM Protected item." + }, + "ErrorDetail": { + "type": "object", + "properties": {}, + "description": "Error Detail class which encapsulates Code, Message and Recommendations." + }, + "ExtendedProperties": { + "type": "object", + "properties": { + "diskExclusionProperties": { + "oneOf": [ + { + "$ref": "#/definitions/DiskExclusionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "description": "Extended Properties for Azure IaasVM Backup." + }, + "GenericProtectedItem": { + "type": "object", + "properties": { + "fabricName": { + "type": "string", + "description": "Name of this backup item's fabric." + }, + "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." + }, + "protectedItemId": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Data Plane Service ID of the protected item." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "GenericProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "sourceAssociations": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Loosely coupled (type, value) associations (example - parent of a protected item)" + } + }, + "required": [ + "protectedItemType" + ], + "description": "Base class for backup items." + }, + "GenericProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "GenericProtectionPolicy" + ] + }, + "fabricName": { + "type": "string", + "description": "Name of this policy's fabric." + }, + "subProtectionPolicy": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubProtectionPolicy" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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\"." + } + }, + "required": [ + "backupManagementType" + ], + "description": "Azure VM (Mercury) workload-specific backup policy." + }, + "LogSchedulePolicy": { + "type": "object", + "properties": { + "scheduleFrequencyInMins": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Frequency of the log schedule operation of this policy in minutes." + }, + "schedulePolicyType": { + "type": "string", + "enum": [ + "LogSchedulePolicy" + ] + } + }, + "required": [ + "schedulePolicyType" + ], + "description": "Log policy schedule." + }, + "LongTermRetentionPolicy": { + "type": "object", + "properties": { + "dailySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Daily retention schedule." + }, + "monthlySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/MonthlyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Monthly retention schedule." + }, + "retentionPolicyType": { + "type": "string", + "enum": [ + "LongTermRetentionPolicy" + ] + }, + "weeklySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/WeeklyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Weekly retention schedule." + }, + "yearlySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/YearlyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Yearly retention schedule." + } + }, + "required": [ + "retentionPolicyType" + ], + "description": "Long term retention policy." + }, + "LongTermSchedulePolicy": { + "type": "object", + "properties": { + "schedulePolicyType": { + "type": "string", + "enum": [ + "LongTermSchedulePolicy" + ] + } + }, + "required": [ + "schedulePolicyType" + ], + "description": "Long term policy schedule." + }, + "MabFileFolderProtectedItem": { + "type": "object", + "properties": { + "computerName": { + "type": "string", + "description": "Name of the computer associated with this backup item." + }, + "deferredDeleteSyncTimeInUTC": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Sync time for deferred deletion in UTC" + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/MabFileFolderProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information on the backed up item." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of this backup item." + }, + "lastBackupStatus": { + "type": "string", + "description": "Status of last backup operation." + }, + "lastBackupTime": { + "type": "string", + "format": "date-time", + "description": "Timestamp of the last backup operation on this backup item." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "MabFileFolderProtectedItem" + ] + }, + "protectionState": { + "type": "string", + "description": "Protected, ProtectionStopped, IRPending or ProtectionError" + } + }, + "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/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of backup copies associated with the backup item." + } + }, + "description": "Additional information on the backed up item." + }, + "MabProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "MAB" + ] + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup schedule." + } + }, + "required": [ + "backupManagementType" + ], + "description": "Mab container-specific backup policy." + }, + "MonthlyRetentionSchedule": { + "type": "object", + "properties": { + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionScheduleDaily": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Daily retention format." + }, + "retentionScheduleFormatType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention schedule format type for monthly retention policy." + }, + "retentionScheduleWeekly": { + "oneOf": [ + { + "$ref": "#/definitions/WeeklyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Weekly retention format." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + } + }, + "description": "Monthly retention schedule." + }, + "ProtectedItem": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureFileshareProtectedItem" + }, + { + "$ref": "#/definitions/AzureIaaSVMProtectedItem" + }, + { + "$ref": "#/definitions/AzureSqlProtectedItem" + }, + { + "$ref": "#/definitions/AzureVmWorkloadProtectedItem" + }, + { + "$ref": "#/definitions/DPMProtectedItem" + }, + { + "$ref": "#/definitions/GenericProtectedItem" + }, + { + "$ref": "#/definitions/MabFileFolderProtectedItem" + } + ], + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "AzureIaasVM", + "MAB", + "DPM", + "AzureBackupServer", + "AzureSql", + "AzureStorage", + "AzureWorkload", + "DefaultBackup" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of backup management for the backed up item." + }, + "backupSetName": { + "type": "string", + "description": "Name of the backup set the backup item belongs to" + }, + "containerName": { + "type": "string", + "description": "Unique name of container" + }, + "createMode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Default", + "Recover" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Create mode to indicate recovery of existing soft deleted data source or creation of new data source." + }, + "deferredDeleteTimeInUTC": { + "type": "string", + "format": "date-time", + "description": "Time for deferred deletion in UTC" + }, + "deferredDeleteTimeRemaining": { + "type": "string", + "description": "Time remaining before the DS marked for deferred delete is permanently deleted" + }, + "isDeferredDeleteScheduleUpcoming": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Flag to identify whether the deferred deleted DS is to be purged soon" + }, + "isRehydrate": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Flag to identify that deferred deleted DS is to be moved into Pause state" + }, + "isScheduledForDeferredDelete": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Flag to identify whether the DS is scheduled for deferred delete" + }, + "lastRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the last (latest) backup copy was created for this backup item." + }, + "policyId": { + "type": "string", + "description": "ID of the backup policy with which this item is backed up." + }, + "sourceResourceId": { + "type": "string", + "description": "ARM ID of the resource to be backed up." + }, + "workloadType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of workload this item represents." + } + }, + "description": "Base class for backup items." + }, + "ProtectionPolicy": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectionPolicy" + }, + { + "$ref": "#/definitions/AzureFileShareProtectionPolicy" + }, + { + "$ref": "#/definitions/AzureIaaSVMProtectionPolicy" + }, + { + "$ref": "#/definitions/AzureSqlProtectionPolicy" + }, + { + "$ref": "#/definitions/GenericProtectionPolicy" + }, + { + "$ref": "#/definitions/MabProtectionPolicy" + } + ], + "properties": { + "protectedItemsCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of items associated with this policy." + } + }, + "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/common/definitions.json#/definitions/expression" + } + ], + "description": "Count of duration types. Retention duration is obtained by the counting the duration type Count times.\r\nFor 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/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration type of retention policy." + } + }, + "description": "Retention duration." + }, + "RetentionPolicy": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/LongTermRetentionPolicy" + }, + { + "$ref": "#/definitions/SimpleRetentionPolicy" + } + ], + "properties": {}, + "description": "Base class for retention policy." + }, + "SchedulePolicy": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/LogSchedulePolicy" + }, + { + "$ref": "#/definitions/LongTermSchedulePolicy" + }, + { + "$ref": "#/definitions/SimpleSchedulePolicy" + } + ], + "properties": {}, + "description": "Base class for backup schedule." + }, + "Settings": { + "type": "object", + "properties": { + "isCompression": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Workload compression flag. This has been added so that 'isSqlCompression'\r\nwill be deprecated once clients upgrade to consider this flag." + }, + "issqlcompression": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SQL compression flag" + }, + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." + } + }, + "description": "Common settings field for backup management" + }, + "SimpleRetentionPolicy": { + "type": "object", + "properties": { + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionPolicyType": { + "type": "string", + "enum": [ + "SimpleRetentionPolicy" + ] + } + }, + "required": [ + "retentionPolicyType" + ], + "description": "Simple policy retention." + }, + "SimpleSchedulePolicy": { + "type": "object", + "properties": { + "schedulePolicyType": { + "type": "string", + "enum": [ + "SimpleSchedulePolicy" + ] + }, + "scheduleRunDays": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of days of week this schedule has to be run." + }, + "scheduleRunFrequency": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Frequency of the schedule operation of this policy." + }, + "scheduleRunTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" + } + ], + "description": "At every number weeks this schedule has to be run." + } + }, + "required": [ + "schedulePolicyType" + ], + "description": "Simple policy schedule." + }, + "SubProtectionPolicy": { + "type": "object", + "properties": { + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Full", + "Differential", + "Log", + "CopyOnlyFull" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of backup policy type." + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup schedule." + } + }, + "description": "Sub-protection policy which includes schedule and retention" + }, + "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/common/definitions.json#/definitions/expression" + } + ], + "description": "List of days of the week." + }, + "weeksOfTheMonth": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "First", + "Second", + "Third", + "Fourth", + "Last", + "Invalid" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" + } + ], + "description": "List of days of week for weekly retention policy." + }, + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + } + }, + "description": "Weekly retention schedule." + }, + "YearlyRetentionSchedule": { + "type": "object", + "properties": { + "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/common/definitions.json#/definitions/expression" + } + ], + "description": "List of months of year of yearly retention policy." + }, + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionScheduleDaily": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Daily retention format." + }, + "retentionScheduleFormatType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention schedule format for yearly retention policy." + }, + "retentionScheduleWeekly": { + "oneOf": [ + { + "$ref": "#/definitions/WeeklyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Weekly retention format." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + } + }, + "description": "Yearly retention schedule." + } + } +} diff --git a/schemas/2019-06-15/Microsoft.RecoveryServices.json b/schemas/2019-06-15/Microsoft.RecoveryServices.json new file mode 100644 index 0000000000..962548dc49 --- /dev/null +++ b/schemas/2019-06-15/Microsoft.RecoveryServices.json @@ -0,0 +1,2518 @@ +{ + "id": "https://schema.management.azure.com/schemas/2019-06-15/Microsoft.RecoveryServices.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.RecoveryServices", + "description": "Microsoft RecoveryServices Resource Types", + "resourceDefinitions": { + "vaults_backupconfig": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-06-15" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^.*/vaultconfig$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/BackupResourceVaultConfig" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup resource vault config details." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupconfig" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.RecoveryServices/vaults/backupconfig" + }, + "vaults_backupFabrics_protectionContainers_protectedItems": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-06-15" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "description": "Item name to be backed up." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProtectedItem" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup items." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems" + }, + "vaults_backupPolicies": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-06-15" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "description": "Backup policy to be created." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProtectionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup policy. Workload-specific backup policies are derived from this class." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupPolicies" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.RecoveryServices/vaults/backupPolicies" + } + }, + "definitions": { + "AzureFileshareProtectedItem": { + "type": "object", + "properties": { + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureFileshareProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information about Azure File Share backup item." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the fileshare represented by this backup item." + }, + "kpisHealths": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/KPIResourceHealthDetails" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health details of different KPIs" + }, + "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." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "AzureFileShareProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "protectionStatus": { + "type": "string", + "description": "Backup status of this backup item." + } + }, + "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." + }, + "policyState": { + "type": "string", + "description": "Indicates consistency of policy object and policy applied to this backup item." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of available backup copies associated with this backup item." + } + }, + "description": "Additional information about Azure File Share backup item." + }, + "AzureFileShareProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "AzureStorage" + ] + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup schedule." + }, + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." + }, + "workLoadType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of workload for the backup management." + } + }, + "required": [ + "backupManagementType" + ], + "description": "AzureStorage backup policy." + }, + "AzureIaaSClassicComputeVMProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "Microsoft.ClassicCompute/virtualMachines" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "IaaS VM workload-specific backup item representing the Classic Compute VM." + }, + "AzureIaaSComputeVMProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "Microsoft.Compute/virtualMachines" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "IaaS VM workload-specific backup item representing the Azure Resource Manager VM." + }, + "AzureIaaSVMHealthDetails": { + "type": "object", + "properties": {}, + "description": "Azure IaaS VM workload-specific Health Details." + }, + "AzureIaaSVMProtectedItem": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureIaaSClassicComputeVMProtectedItem" + }, + { + "$ref": "#/definitions/AzureIaaSComputeVMProtectedItem" + } + ], + "properties": { + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureIaaSVMProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information on Azure IaaS VM specific backup item." + }, + "extendedProperties": { + "oneOf": [ + { + "$ref": "#/definitions/ExtendedProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Extended Properties for Azure IaasVM Backup." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the VM represented by this backup item." + }, + "healthDetails": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/AzureIaaSVMHealthDetails" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health details on this backup item." + }, + "healthStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Passed", + "ActionRequired", + "ActionSuggested", + "Invalid" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health status of protected item." + }, + "kpisHealths": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/KPIResourceHealthDetails" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health details of different KPIs" + }, + "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." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "AzureIaaSVMProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "protectionStatus": { + "type": "string", + "description": "Backup status of this backup item." + }, + "virtualMachineId": { + "type": "string", + "description": "Fully qualified ARM ID of the virtual machine represented by this item." + } + }, + "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." + }, + "policyInconsistent": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies if backup policy associated with the backup item is inconsistent." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of backup copies available for this backup item." + } + }, + "description": "Additional information on Azure IaaS VM specific backup item." + }, + "AzureIaaSVMProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "AzureIaasVM" + ] + }, + "instantRPDetails": { + "oneOf": [ + { + "$ref": "#/definitions/InstantRPAdditionalDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "instantRpRetentionRangeInDays": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Instant RP retention policy range in days" + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup schedule." + }, + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." + } + }, + "required": [ + "backupManagementType" + ], + "description": "IaaS VM workload-specific backup policy." + }, + "AzureSqlProtectedItem": { + "type": "object", + "properties": { + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureSqlProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information on Azure Sql specific protected item." + }, + "protectedItemDataId": { + "type": "string", + "description": "Internal ID of a backup item. Used by Azure SQL Backup engine to contact Recovery Services." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "Microsoft.Sql/servers/databases" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of the backed up item." + } + }, + "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." + }, + "policyState": { + "type": "string", + "description": "State of the backup policy associated with this backup item." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of available backup copies associated with this backup item." + } + }, + "description": "Additional information on Azure Sql specific protected item." + }, + "AzureSqlProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "AzureSql" + ] + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + } + }, + "required": [ + "backupManagementType" + ], + "description": "Azure SQL workload-specific backup policy." + }, + "AzureVmWorkloadProtectedItem": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadSAPAseDatabaseProtectedItem" + }, + { + "$ref": "#/definitions/AzureVmWorkloadSAPHanaDatabaseProtectedItem" + }, + { + "$ref": "#/definitions/AzureVmWorkloadSQLDatabaseProtectedItem" + } + ], + "properties": { + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information on Azure Workload for SQL specific backup item." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the DB represented by this backup item." + }, + "kpisHealths": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/KPIResourceHealthDetails" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health details of different KPIs" + }, + "lastBackupErrorDetail": { + "oneOf": [ + { + "$ref": "#/definitions/ErrorDetail" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Error Detail class which encapsulates Code, Message and Recommendations." + }, + "lastBackupStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Healthy", + "Unhealthy", + "IRPending" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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." + }, + "parentName": { + "type": "string", + "description": "Parent name of the DB such as Instance or Availability Group." + }, + "parentType": { + "type": "string", + "description": "Parent type of protected item, example: for a DB, standalone server or distributed" + }, + "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/common/definitions.json#/definitions/expression" + } + ], + "description": "Health status of the backup item, evaluated based on last heartbeat received." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "AzureVmWorkloadProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "protectionStatus": { + "type": "string", + "description": "Backup status of this backup item." + }, + "serverName": { + "type": "string", + "description": "Host/Cluster Name for instance or AG" + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure VM workload-specific protected item." + }, + "AzureVmWorkloadProtectedItemExtendedInfo": { + "type": "object", + "properties": { + "oldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "The oldest backup copy available for this backup item." + }, + "policyState": { + "type": "string", + "description": "Indicates consistency of policy object and policy applied to this backup item." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of backup copies available for this backup item." + } + }, + "description": "Additional information on Azure Workload for SQL specific backup item." + }, + "AzureVmWorkloadProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "AzureWorkload" + ] + }, + "makePolicyConsistent": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Fix the policy inconsistency" + }, + "settings": { + "oneOf": [ + { + "$ref": "#/definitions/Settings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Common settings field for backup management" + }, + "subProtectionPolicy": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubProtectionPolicy" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of sub-protection policies which includes schedule and retention" + }, + "workLoadType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of workload for the backup management." + } + }, + "required": [ + "backupManagementType" + ], + "description": "Azure VM (Mercury) workload-specific backup policy." + }, + "AzureVmWorkloadSAPAseDatabaseProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "AzureVmWorkloadSAPAseDatabase" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure VM workload-specific protected item representing SAP ASE Database." + }, + "AzureVmWorkloadSAPHanaDatabaseProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "AzureVmWorkloadSAPHanaDatabase" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure VM workload-specific protected item representing SAP HANA Database." + }, + "AzureVmWorkloadSQLDatabaseProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "AzureVmWorkloadSQLDatabase" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure VM workload-specific protected item representing SQL Database." + }, + "BackupResourceVaultConfig": { + "type": "object", + "properties": { + "enhancedSecurityState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Enabled or Disabled." + }, + "softDeleteFeatureState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Soft Delete feature state." + }, + "storageModelType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "GeoRedundant", + "LocallyRedundant" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Storage type." + }, + "storageType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "GeoRedundant", + "LocallyRedundant" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Storage type." + }, + "storageTypeState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Locked", + "Unlocked" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked." + } + }, + "description": "Backup resource vault config details." + }, + "DailyRetentionFormat": { + "type": "object", + "properties": { + "daysOfTheMonth": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Day" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of days of the month." + } + }, + "description": "Daily retention format." + }, + "DailyRetentionSchedule": { + "type": "object", + "properties": { + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + } + }, + "description": "Daily retention schedule." + }, + "Day": { + "type": "object", + "properties": { + "date": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Date of the month" + }, + "isLast": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether Date is last date of month" + } + }, + "description": "Day of the week." + }, + "DiskExclusionProperties": { + "type": "object", + "properties": { + "diskLunList": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "integer" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of Disks' Logical Unit Numbers (LUN) to be used for VM Protection." + }, + "isInclusionList": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Flag to indicate whether DiskLunList is to be included/ excluded from backup." + } + } + }, + "DPMProtectedItem": { + "type": "object", + "properties": { + "backupEngineName": { + "type": "string", + "description": "Backup Management server protecting this backup item" + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/DPMProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information of DPM Protected item." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the managed item" + }, + "protectedItemType": { + "type": "string", + "enum": [ + "DPMProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Protection state of the backup engine." + } + }, + "required": [ + "protectedItemType" + ], + "description": "Additional information on Backup engine specific backup item." + }, + "DPMProtectedItemExtendedInfo": { + "type": "object", + "properties": { + "diskStorageUsedInBytes": { + "type": "string", + "description": "Used Disk storage in bytes." + }, + "isCollocated": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "To check if backup item is collocated." + }, + "isPresentOnCloud": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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." + }, + "onPremiseLatestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "latest disk recovery point time." + }, + "onPremiseOldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "Oldest disk recovery point time." + }, + "onPremiseRecoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "disk recovery point count." + }, + "protectableObjectLoadPath": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Attribute to provide information on various DBs." + }, + "protected": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "To check if backup item is disk protected." + }, + "protectionGroupName": { + "type": "string", + "description": "Protection group name of the backup item." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "cloud recovery point count." + }, + "totalDiskStorageSizeInBytes": { + "type": "string", + "description": "total Disk storage in bytes." + } + }, + "description": "Additional information of DPM Protected item." + }, + "ErrorDetail": { + "type": "object", + "properties": {}, + "description": "Error Detail class which encapsulates Code, Message and Recommendations." + }, + "ExtendedProperties": { + "type": "object", + "properties": { + "diskExclusionProperties": { + "oneOf": [ + { + "$ref": "#/definitions/DiskExclusionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "description": "Extended Properties for Azure IaasVM Backup." + }, + "GenericProtectedItem": { + "type": "object", + "properties": { + "fabricName": { + "type": "string", + "description": "Name of this backup item's fabric." + }, + "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." + }, + "protectedItemId": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Data Plane Service ID of the protected item." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "GenericProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "sourceAssociations": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Loosely coupled (type, value) associations (example - parent of a protected item)" + } + }, + "required": [ + "protectedItemType" + ], + "description": "Base class for backup items." + }, + "GenericProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "GenericProtectionPolicy" + ] + }, + "fabricName": { + "type": "string", + "description": "Name of this policy's fabric." + }, + "subProtectionPolicy": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubProtectionPolicy" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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\"." + } + }, + "required": [ + "backupManagementType" + ], + "description": "Azure VM (Mercury) workload-specific backup policy." + }, + "InstantRPAdditionalDetails": { + "type": "object", + "properties": { + "azureBackupRGNamePrefix": { + "type": "string" + }, + "azureBackupRGNameSuffix": { + "type": "string" + } + } + }, + "KPIResourceHealthDetails": { + "type": "object", + "properties": { + "resourceHealthDetails": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceHealthDetails" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource Health Status" + }, + "resourceHealthStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Healthy", + "TransientDegraded", + "PersistentDegraded", + "TransientUnhealthy", + "PersistentUnhealthy", + "Invalid" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource Health Status." + } + }, + "description": "KPI Resource Health Details" + }, + "LogSchedulePolicy": { + "type": "object", + "properties": { + "scheduleFrequencyInMins": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Frequency of the log schedule operation of this policy in minutes." + }, + "schedulePolicyType": { + "type": "string", + "enum": [ + "LogSchedulePolicy" + ] + } + }, + "required": [ + "schedulePolicyType" + ], + "description": "Log policy schedule." + }, + "LongTermRetentionPolicy": { + "type": "object", + "properties": { + "dailySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Daily retention schedule." + }, + "monthlySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/MonthlyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Monthly retention schedule." + }, + "retentionPolicyType": { + "type": "string", + "enum": [ + "LongTermRetentionPolicy" + ] + }, + "weeklySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/WeeklyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Weekly retention schedule." + }, + "yearlySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/YearlyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Yearly retention schedule." + } + }, + "required": [ + "retentionPolicyType" + ], + "description": "Long term retention policy." + }, + "LongTermSchedulePolicy": { + "type": "object", + "properties": { + "schedulePolicyType": { + "type": "string", + "enum": [ + "LongTermSchedulePolicy" + ] + } + }, + "required": [ + "schedulePolicyType" + ], + "description": "Long term policy schedule." + }, + "MabFileFolderProtectedItem": { + "type": "object", + "properties": { + "computerName": { + "type": "string", + "description": "Name of the computer associated with this backup item." + }, + "deferredDeleteSyncTimeInUTC": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Sync time for deferred deletion in UTC" + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/MabFileFolderProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information on the backed up item." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of this backup item." + }, + "lastBackupStatus": { + "type": "string", + "description": "Status of last backup operation." + }, + "lastBackupTime": { + "type": "string", + "format": "date-time", + "description": "Timestamp of the last backup operation on this backup item." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "MabFileFolderProtectedItem" + ] + }, + "protectionState": { + "type": "string", + "description": "Protected, ProtectionStopped, IRPending or ProtectionError" + } + }, + "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/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of backup copies associated with the backup item." + } + }, + "description": "Additional information on the backed up item." + }, + "MabProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "MAB" + ] + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup schedule." + } + }, + "required": [ + "backupManagementType" + ], + "description": "Mab container-specific backup policy." + }, + "MonthlyRetentionSchedule": { + "type": "object", + "properties": { + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionScheduleDaily": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Daily retention format." + }, + "retentionScheduleFormatType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention schedule format type for monthly retention policy." + }, + "retentionScheduleWeekly": { + "oneOf": [ + { + "$ref": "#/definitions/WeeklyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Weekly retention format." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + } + }, + "description": "Monthly retention schedule." + }, + "ProtectedItem": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureFileshareProtectedItem" + }, + { + "$ref": "#/definitions/AzureIaaSVMProtectedItem" + }, + { + "$ref": "#/definitions/AzureSqlProtectedItem" + }, + { + "$ref": "#/definitions/AzureVmWorkloadProtectedItem" + }, + { + "$ref": "#/definitions/DPMProtectedItem" + }, + { + "$ref": "#/definitions/GenericProtectedItem" + }, + { + "$ref": "#/definitions/MabFileFolderProtectedItem" + } + ], + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "AzureIaasVM", + "MAB", + "DPM", + "AzureBackupServer", + "AzureSql", + "AzureStorage", + "AzureWorkload", + "DefaultBackup" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of backup management for the backed up item." + }, + "backupSetName": { + "type": "string", + "description": "Name of the backup set the backup item belongs to" + }, + "containerName": { + "type": "string", + "description": "Unique name of container" + }, + "createMode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Default", + "Recover" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Create mode to indicate recovery of existing soft deleted data source or creation of new data source." + }, + "deferredDeleteTimeInUTC": { + "type": "string", + "format": "date-time", + "description": "Time for deferred deletion in UTC" + }, + "deferredDeleteTimeRemaining": { + "type": "string", + "description": "Time remaining before the DS marked for deferred delete is permanently deleted" + }, + "isDeferredDeleteScheduleUpcoming": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Flag to identify whether the deferred deleted DS is to be purged soon" + }, + "isRehydrate": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Flag to identify that deferred deleted DS is to be moved into Pause state" + }, + "isScheduledForDeferredDelete": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Flag to identify whether the DS is scheduled for deferred delete" + }, + "lastRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the last (latest) backup copy was created for this backup item." + }, + "policyId": { + "type": "string", + "description": "ID of the backup policy with which this item is backed up." + }, + "sourceResourceId": { + "type": "string", + "description": "ARM ID of the resource to be backed up." + }, + "workloadType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of workload this item represents." + } + }, + "description": "Base class for backup items." + }, + "ProtectionPolicy": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectionPolicy" + }, + { + "$ref": "#/definitions/AzureFileShareProtectionPolicy" + }, + { + "$ref": "#/definitions/AzureIaaSVMProtectionPolicy" + }, + { + "$ref": "#/definitions/AzureSqlProtectionPolicy" + }, + { + "$ref": "#/definitions/GenericProtectionPolicy" + }, + { + "$ref": "#/definitions/MabProtectionPolicy" + } + ], + "properties": { + "protectedItemsCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of items associated with this policy." + } + }, + "description": "Base class for backup policy. Workload-specific backup policies are derived from this class." + }, + "ResourceHealthDetails": { + "type": "object", + "properties": {}, + "description": "Health Details for backup items." + }, + "RetentionDuration": { + "type": "object", + "properties": { + "count": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Count of duration types. Retention duration is obtained by the counting the duration type Count times.\r\nFor 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/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration type of retention policy." + } + }, + "description": "Retention duration." + }, + "RetentionPolicy": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/LongTermRetentionPolicy" + }, + { + "$ref": "#/definitions/SimpleRetentionPolicy" + } + ], + "properties": {}, + "description": "Base class for retention policy." + }, + "SchedulePolicy": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/LogSchedulePolicy" + }, + { + "$ref": "#/definitions/LongTermSchedulePolicy" + }, + { + "$ref": "#/definitions/SimpleSchedulePolicy" + } + ], + "properties": {}, + "description": "Base class for backup schedule." + }, + "Settings": { + "type": "object", + "properties": { + "isCompression": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Workload compression flag. This has been added so that 'isSqlCompression'\r\nwill be deprecated once clients upgrade to consider this flag." + }, + "issqlcompression": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SQL compression flag" + }, + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." + } + }, + "description": "Common settings field for backup management" + }, + "SimpleRetentionPolicy": { + "type": "object", + "properties": { + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionPolicyType": { + "type": "string", + "enum": [ + "SimpleRetentionPolicy" + ] + } + }, + "required": [ + "retentionPolicyType" + ], + "description": "Simple policy retention." + }, + "SimpleSchedulePolicy": { + "type": "object", + "properties": { + "schedulePolicyType": { + "type": "string", + "enum": [ + "SimpleSchedulePolicy" + ] + }, + "scheduleRunDays": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of days of week this schedule has to be run." + }, + "scheduleRunFrequency": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Frequency of the schedule operation of this policy." + }, + "scheduleRunTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" + } + ], + "description": "At every number weeks this schedule has to be run." + } + }, + "required": [ + "schedulePolicyType" + ], + "description": "Simple policy schedule." + }, + "SubProtectionPolicy": { + "type": "object", + "properties": { + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Full", + "Differential", + "Log", + "CopyOnlyFull" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of backup policy type." + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup schedule." + } + }, + "description": "Sub-protection policy which includes schedule and retention" + }, + "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/common/definitions.json#/definitions/expression" + } + ], + "description": "List of days of the week." + }, + "weeksOfTheMonth": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "First", + "Second", + "Third", + "Fourth", + "Last", + "Invalid" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" + } + ], + "description": "List of days of week for weekly retention policy." + }, + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + } + }, + "description": "Weekly retention schedule." + }, + "YearlyRetentionSchedule": { + "type": "object", + "properties": { + "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/common/definitions.json#/definitions/expression" + } + ], + "description": "List of months of year of yearly retention policy." + }, + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionScheduleDaily": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Daily retention format." + }, + "retentionScheduleFormatType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention schedule format for yearly retention policy." + }, + "retentionScheduleWeekly": { + "oneOf": [ + { + "$ref": "#/definitions/WeeklyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Weekly retention format." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + } + }, + "description": "Yearly retention schedule." + } + } +} diff --git a/schemas/2020-02-02/Microsoft.RecoveryServices.json b/schemas/2020-02-02/Microsoft.RecoveryServices.json new file mode 100644 index 0000000000..e016bb765d --- /dev/null +++ b/schemas/2020-02-02/Microsoft.RecoveryServices.json @@ -0,0 +1,158 @@ +{ + "id": "https://schema.management.azure.com/schemas/2020-02-02/Microsoft.RecoveryServices.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.RecoveryServices", + "description": "Microsoft RecoveryServices Resource Types", + "resourceDefinitions": { + "vaults_privateEndpointConnections": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-02-02" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "description": "The name of the private endpoint connection." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Private Endpoint Connection Response Properties" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/privateEndpointConnections" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.RecoveryServices/vaults/privateEndpointConnections" + } + }, + "definitions": { + "PrivateEndpoint": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Gets or sets id" + } + }, + "description": "The Private Endpoint network resource that is linked to the Private Endpoint connection" + }, + "PrivateEndpointConnection": { + "type": "object", + "properties": { + "privateEndpoint": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateEndpoint" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Private Endpoint network resource that is linked to the Private Endpoint connection" + }, + "privateLinkServiceConnectionState": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateLinkServiceConnectionState" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Private Link Service Connection State" + }, + "provisioningState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Succeeded", + "Deleting", + "Failed", + "Pending" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets provisioning state of the private endpoint connection." + } + }, + "description": "Private Endpoint Connection Response Properties" + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "properties": { + "actionRequired": { + "type": "string", + "description": "Gets or sets actions required" + }, + "description": { + "type": "string", + "description": "Gets or sets description" + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Pending", + "Approved", + "Rejected", + "Disconnected" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the status." + } + }, + "description": "Private Link Service Connection State" + } + } +} diff --git a/schemas/2020-12-01/Microsoft.RecoveryServices.json b/schemas/2020-12-01/Microsoft.RecoveryServices.json new file mode 100644 index 0000000000..25a3b9044b --- /dev/null +++ b/schemas/2020-12-01/Microsoft.RecoveryServices.json @@ -0,0 +1,3766 @@ +{ + "id": "https://schema.management.azure.com/schemas/2020-12-01/Microsoft.RecoveryServices.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.RecoveryServices", + "description": "Microsoft RecoveryServices Resource Types", + "resourceDefinitions": { + "vaults_backupconfig": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-12-01" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^.*/vaultconfig$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/BackupResourceVaultConfig" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup resource vault config details." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupconfig" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.RecoveryServices/vaults/backupconfig" + }, + "vaults_backupEncryptionConfigs": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-12-01" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^.*/backupResourceEncryptionConfig$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/BackupResourceEncryptionConfig" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupEncryptionConfigs" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.RecoveryServices/vaults/backupEncryptionConfigs" + }, + "vaults_backupFabrics_protectionContainers": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-12-01" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "description": "Name of the container to be registered." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProtectionContainer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for container with backup items. Containers with specific workloads are derived from this class." + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/vaults_backupFabrics_protectionContainers_protectedItems_childResource" + } + ] + } + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers" + }, + "vaults_backupFabrics_protectionContainers_protectedItems": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-12-01" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "description": "Item name to be backed up." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProtectedItem" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup items." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems" + }, + "vaults_backupPolicies": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-12-01" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "description": "Backup policy to be created." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProtectionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup policy. Workload-specific backup policies are derived from this class." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/backupPolicies" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.RecoveryServices/vaults/backupPolicies" + }, + "vaults_privateEndpointConnections": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-12-01" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "description": "The name of the private endpoint connection." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Private Endpoint Connection Response Properties" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.RecoveryServices/vaults/privateEndpointConnections" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.RecoveryServices/vaults/privateEndpointConnections" + } + }, + "definitions": { + "AzureBackupServerContainer": { + "type": "object", + "properties": { + "containerType": { + "type": "string", + "enum": [ + "AzureBackupServerContainer" + ] + } + }, + "required": [ + "containerType" + ], + "description": "AzureBackupServer (DPMVenus) workload-specific protection container." + }, + "AzureFileshareProtectedItem": { + "type": "object", + "properties": { + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureFileshareProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information about Azure File Share backup item." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the fileshare represented by this backup item." + }, + "kpisHealths": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/KPIResourceHealthDetails" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health details of different KPIs" + }, + "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." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "AzureFileShareProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "protectionStatus": { + "type": "string", + "description": "Backup status of this backup item." + } + }, + "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." + }, + "policyState": { + "type": "string", + "description": "Indicates consistency of policy object and policy applied to this backup item." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of available backup copies associated with this backup item." + } + }, + "description": "Additional information about Azure File Share backup item." + }, + "AzureFileShareProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "AzureStorage" + ] + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup schedule." + }, + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." + }, + "workLoadType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of workload for the backup management." + } + }, + "required": [ + "backupManagementType" + ], + "description": "AzureStorage backup policy." + }, + "AzureIaaSClassicComputeVMContainer": { + "type": "object", + "properties": { + "containerType": { + "type": "string", + "enum": [ + "Microsoft.ClassicCompute/virtualMachines" + ] + } + }, + "required": [ + "containerType" + ], + "description": "IaaS VM workload-specific backup item representing a classic virtual machine." + }, + "AzureIaaSClassicComputeVMProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "Microsoft.ClassicCompute/virtualMachines" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "IaaS VM workload-specific backup item representing the Classic Compute VM." + }, + "AzureIaaSComputeVMContainer": { + "type": "object", + "properties": { + "containerType": { + "type": "string", + "enum": [ + "Microsoft.Compute/virtualMachines" + ] + } + }, + "required": [ + "containerType" + ], + "description": "IaaS VM workload-specific backup item representing an Azure Resource Manager virtual machine." + }, + "AzureIaaSComputeVMProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "Microsoft.Compute/virtualMachines" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "IaaS VM workload-specific backup item representing the Azure Resource Manager VM." + }, + "AzureIaaSVMHealthDetails": { + "type": "object", + "properties": {}, + "description": "Azure IaaS VM workload-specific Health Details." + }, + "AzureIaaSVMProtectedItem": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureIaaSClassicComputeVMProtectedItem" + }, + { + "$ref": "#/definitions/AzureIaaSComputeVMProtectedItem" + } + ], + "properties": { + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureIaaSVMProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information on Azure IaaS VM specific backup item." + }, + "extendedProperties": { + "oneOf": [ + { + "$ref": "#/definitions/ExtendedProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Extended Properties for Azure IaasVM Backup." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the VM represented by this backup item." + }, + "healthDetails": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/AzureIaaSVMHealthDetails" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health details on this backup item." + }, + "healthStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Passed", + "ActionRequired", + "ActionSuggested", + "Invalid" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health status of protected item." + }, + "kpisHealths": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/KPIResourceHealthDetails" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health details of different KPIs" + }, + "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." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "AzureIaaSVMProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "protectionStatus": { + "type": "string", + "description": "Backup status of this backup item." + }, + "virtualMachineId": { + "type": "string", + "description": "Fully qualified ARM ID of the virtual machine represented by this item." + } + }, + "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." + }, + "policyInconsistent": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies if backup policy associated with the backup item is inconsistent." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of backup copies available for this backup item." + } + }, + "description": "Additional information on Azure IaaS VM specific backup item." + }, + "AzureIaaSVMProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "AzureIaasVM" + ] + }, + "instantRPDetails": { + "oneOf": [ + { + "$ref": "#/definitions/InstantRPAdditionalDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "instantRpRetentionRangeInDays": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Instant RP retention policy range in days" + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup schedule." + }, + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." + } + }, + "required": [ + "backupManagementType" + ], + "description": "IaaS VM workload-specific backup policy." + }, + "AzureSQLAGWorkloadContainerProtectionContainer": { + "type": "object", + "properties": { + "containerType": { + "type": "string", + "enum": [ + "SQLAGWorkLoadContainer" + ] + } + }, + "required": [ + "containerType" + ], + "description": "Container for SQL workloads under SQL Availability Group." + }, + "AzureSqlContainer": { + "type": "object", + "properties": { + "containerType": { + "type": "string", + "enum": [ + "AzureSqlContainer" + ] + } + }, + "required": [ + "containerType" + ], + "description": "Azure Sql workload-specific container." + }, + "AzureSqlProtectedItem": { + "type": "object", + "properties": { + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureSqlProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information on Azure Sql specific protected item." + }, + "protectedItemDataId": { + "type": "string", + "description": "Internal ID of a backup item. Used by Azure SQL Backup engine to contact Recovery Services." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "Microsoft.Sql/servers/databases" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of the backed up item." + } + }, + "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." + }, + "policyState": { + "type": "string", + "description": "State of the backup policy associated with this backup item." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of available backup copies associated with this backup item." + } + }, + "description": "Additional information on Azure Sql specific protected item." + }, + "AzureSqlProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "AzureSql" + ] + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + } + }, + "required": [ + "backupManagementType" + ], + "description": "Azure SQL workload-specific backup policy." + }, + "AzureStorageContainer": { + "type": "object", + "properties": { + "containerType": { + "type": "string", + "enum": [ + "StorageContainer" + ] + }, + "protectedItemCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of items backed up in this container." + }, + "resourceGroup": { + "type": "string", + "description": "Resource group name of Recovery Services Vault." + }, + "sourceResourceId": { + "type": "string", + "description": "Fully qualified ARM url." + }, + "storageAccountVersion": { + "type": "string", + "description": "Storage account version." + } + }, + "required": [ + "containerType" + ], + "description": "Azure Storage Account workload-specific container." + }, + "AzureVMAppContainerProtectionContainer": { + "type": "object", + "properties": { + "containerType": { + "type": "string", + "enum": [ + "VMAppContainer" + ] + } + }, + "required": [ + "containerType" + ], + "description": "Container for SQL workloads under Azure Virtual Machines." + }, + "AzureVmWorkloadProtectedItem": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadSAPAseDatabaseProtectedItem" + }, + { + "$ref": "#/definitions/AzureVmWorkloadSAPHanaDatabaseProtectedItem" + }, + { + "$ref": "#/definitions/AzureVmWorkloadSQLDatabaseProtectedItem" + } + ], + "properties": { + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information on Azure Workload for SQL specific backup item." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the DB represented by this backup item." + }, + "kpisHealths": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/KPIResourceHealthDetails" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health details of different KPIs" + }, + "lastBackupErrorDetail": { + "oneOf": [ + { + "$ref": "#/definitions/ErrorDetail" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Error Detail class which encapsulates Code, Message and Recommendations." + }, + "lastBackupStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Healthy", + "Unhealthy", + "IRPending" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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." + }, + "parentName": { + "type": "string", + "description": "Parent name of the DB such as Instance or Availability Group." + }, + "parentType": { + "type": "string", + "description": "Parent type of protected item, example: for a DB, standalone server or distributed" + }, + "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/common/definitions.json#/definitions/expression" + } + ], + "description": "Health status of the backup item, evaluated based on last heartbeat received." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "AzureVmWorkloadProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "protectionStatus": { + "type": "string", + "description": "Backup status of this backup item." + }, + "serverName": { + "type": "string", + "description": "Host/Cluster Name for instance or AG" + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure VM workload-specific protected item." + }, + "AzureVmWorkloadProtectedItemExtendedInfo": { + "type": "object", + "properties": { + "oldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "The oldest backup copy available for this backup item." + }, + "policyState": { + "type": "string", + "description": "Indicates consistency of policy object and policy applied to this backup item." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of backup copies available for this backup item." + } + }, + "description": "Additional information on Azure Workload for SQL specific backup item." + }, + "AzureVmWorkloadProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "AzureWorkload" + ] + }, + "makePolicyConsistent": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Fix the policy inconsistency" + }, + "settings": { + "oneOf": [ + { + "$ref": "#/definitions/Settings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Common settings field for backup management" + }, + "subProtectionPolicy": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubProtectionPolicy" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of sub-protection policies which includes schedule and retention" + }, + "workLoadType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of workload for the backup management." + } + }, + "required": [ + "backupManagementType" + ], + "description": "Azure VM (Mercury) workload-specific backup policy." + }, + "AzureVmWorkloadSAPAseDatabaseProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "AzureVmWorkloadSAPAseDatabase" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure VM workload-specific protected item representing SAP ASE Database." + }, + "AzureVmWorkloadSAPHanaDatabaseProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "AzureVmWorkloadSAPHanaDatabase" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure VM workload-specific protected item representing SAP HANA Database." + }, + "AzureVmWorkloadSQLDatabaseProtectedItem": { + "type": "object", + "properties": { + "protectedItemType": { + "type": "string", + "enum": [ + "AzureVmWorkloadSQLDatabase" + ] + } + }, + "required": [ + "protectedItemType" + ], + "description": "Azure VM workload-specific protected item representing SQL Database." + }, + "AzureWorkloadContainer": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureSQLAGWorkloadContainerProtectionContainer" + }, + { + "$ref": "#/definitions/AzureVMAppContainerProtectionContainer" + } + ], + "properties": { + "containerType": { + "type": "string", + "enum": [ + "AzureWorkloadContainer" + ] + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/AzureWorkloadContainerExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Extended information of the container." + }, + "lastUpdatedTime": { + "type": "string", + "format": "date-time", + "description": "Time stamp when this container was updated." + }, + "operationType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Register", + "Reregister" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Re-Do Operation." + }, + "sourceResourceId": { + "type": "string", + "description": "ARM ID of the virtual machine represented by this Azure Workload Container" + }, + "workloadType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Workload type for which registration was sent." + } + }, + "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 Cluster Name in case of distributed container." + }, + "inquiryInfo": { + "oneOf": [ + { + "$ref": "#/definitions/InquiryInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Details about inquired protectable items under a given container." + }, + "nodesList": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/DistributedNodesInfo" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of the nodes in case of distributed container." + } + }, + "description": "Extended information of the container." + }, + "BackupResourceEncryptionConfig": { + "type": "object", + "properties": { + "encryptionAtRestType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "MicrosoftManaged", + "CustomerManaged" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Encryption At Rest Type." + }, + "infrastructureEncryptionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Disabled", + "Enabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "keyUri": { + "type": "string", + "description": "Key Vault Key URI" + }, + "lastUpdateStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "NotEnabled", + "PartiallySucceeded", + "PartiallyFailed", + "Failed", + "Succeeded" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "subscriptionId": { + "type": "string", + "description": "Key Vault Subscription Id" + } + } + }, + "BackupResourceVaultConfig": { + "type": "object", + "properties": { + "enhancedSecurityState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Enabled or Disabled." + }, + "softDeleteFeatureState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Soft Delete feature state." + }, + "storageModelType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "GeoRedundant", + "LocallyRedundant", + "ZoneRedundant", + "ReadAccessGeoZoneRedundant" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Storage type." + }, + "storageType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "GeoRedundant", + "LocallyRedundant", + "ZoneRedundant", + "ReadAccessGeoZoneRedundant" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Storage type." + }, + "storageTypeState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Locked", + "Unlocked" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked." + } + }, + "description": "Backup resource vault config details." + }, + "ContainerIdentityInfo": { + "type": "object", + "properties": { + "aadTenantId": { + "type": "string", + "description": "Protection container identity - AAD Tenant" + }, + "audience": { + "type": "string", + "description": "Protection container identity - Audience" + }, + "servicePrincipalClientId": { + "type": "string", + "description": "Protection container identity - AAD Service Principal" + }, + "uniqueName": { + "type": "string", + "description": "Unique name of the container" + } + }, + "description": "Container identity information" + }, + "DailyRetentionFormat": { + "type": "object", + "properties": { + "daysOfTheMonth": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Day" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of days of the month." + } + }, + "description": "Daily retention format." + }, + "DailyRetentionSchedule": { + "type": "object", + "properties": { + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + } + }, + "description": "Daily retention schedule." + }, + "Day": { + "type": "object", + "properties": { + "date": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Date of the month" + }, + "isLast": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether Date is last date of month" + } + }, + "description": "Day of the week." + }, + "DiskExclusionProperties": { + "type": "object", + "properties": { + "diskLunList": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "integer" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of Disks' Logical Unit Numbers (LUN) to be used for VM Protection." + }, + "isInclusionList": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Flag to indicate whether DiskLunList is to be included/ excluded from backup." + } + } + }, + "DistributedNodesInfo": { + "type": "object", + "properties": { + "errorDetail": { + "oneOf": [ + { + "$ref": "#/definitions/ErrorDetail" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Error Detail class which encapsulates Code, Message and Recommendations." + }, + "nodeName": { + "type": "string", + "description": "Name of the node under a distributed container." + }, + "status": { + "type": "string", + "description": "Status of this Node.\r\nFailed | Succeeded" + } + }, + "description": "This is used to represent the various nodes of the distributed container." + }, + "DpmContainer": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureBackupServerContainer" + } + ], + "properties": { + "canReRegister": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies whether the container is re-registrable." + }, + "containerId": { + "type": "string", + "description": "ID of container." + }, + "containerType": { + "type": "string", + "enum": [ + "DPMContainer" + ] + }, + "dpmAgentVersion": { + "type": "string", + "description": "Backup engine Agent version" + }, + "dpmServers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of BackupEngines protecting the container" + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/DPMContainerExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information of the DPMContainer." + }, + "protectedItemCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of protected items in the BackupEngine" + }, + "protectionStatus": { + "type": "string", + "description": "Protection status of the container." + }, + "upgradeAvailable": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "To check if upgrade available" + } + }, + "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", + "properties": { + "backupEngineName": { + "type": "string", + "description": "Backup Management server protecting this backup item" + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/DPMProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information of DPM Protected item." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the managed item" + }, + "protectedItemType": { + "type": "string", + "enum": [ + "DPMProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Protection state of the backup engine." + } + }, + "required": [ + "protectedItemType" + ], + "description": "Additional information on Backup engine specific backup item." + }, + "DPMProtectedItemExtendedInfo": { + "type": "object", + "properties": { + "diskStorageUsedInBytes": { + "type": "string", + "description": "Used Disk storage in bytes." + }, + "isCollocated": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "To check if backup item is collocated." + }, + "isPresentOnCloud": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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." + }, + "onPremiseLatestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "latest disk recovery point time." + }, + "onPremiseOldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "Oldest disk recovery point time." + }, + "onPremiseRecoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "disk recovery point count." + }, + "protectableObjectLoadPath": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Attribute to provide information on various DBs." + }, + "protected": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "To check if backup item is disk protected." + }, + "protectionGroupName": { + "type": "string", + "description": "Protection group name of the backup item." + }, + "recoveryPointCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "cloud recovery point count." + }, + "totalDiskStorageSizeInBytes": { + "type": "string", + "description": "total Disk storage in bytes." + } + }, + "description": "Additional information of DPM Protected item." + }, + "ErrorDetail": { + "type": "object", + "properties": {}, + "description": "Error Detail class which encapsulates Code, Message and Recommendations." + }, + "ExtendedProperties": { + "type": "object", + "properties": { + "diskExclusionProperties": { + "oneOf": [ + { + "$ref": "#/definitions/DiskExclusionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "description": "Extended Properties for Azure IaasVM Backup." + }, + "GenericContainer": { + "type": "object", + "properties": { + "containerType": { + "type": "string", + "enum": [ + "GenericContainer" + ] + }, + "extendedInformation": { + "oneOf": [ + { + "$ref": "#/definitions/GenericContainerExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container extended information" + }, + "fabricName": { + "type": "string", + "description": "Name of the container's fabric" + } + }, + "required": [ + "containerType" + ], + "description": "Base class for generic container of backup items" + }, + "GenericContainerExtendedInfo": { + "type": "object", + "properties": { + "containerIdentityInfo": { + "oneOf": [ + { + "$ref": "#/definitions/ContainerIdentityInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container identity information" + }, + "rawCertData": { + "type": "string", + "description": "Public key of container cert" + }, + "serviceEndpoints": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Azure Backup Service Endpoints for the container" + } + }, + "description": "Container extended information" + }, + "GenericProtectedItem": { + "type": "object", + "properties": { + "fabricName": { + "type": "string", + "description": "Name of this backup item's fabric." + }, + "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." + }, + "protectedItemId": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Data Plane Service ID of the protected item." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "GenericProtectedItem" + ] + }, + "protectionState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backup state of this backup item." + }, + "sourceAssociations": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Loosely coupled (type, value) associations (example - parent of a protected item)" + } + }, + "required": [ + "protectedItemType" + ], + "description": "Base class for backup items." + }, + "GenericProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "GenericProtectionPolicy" + ] + }, + "fabricName": { + "type": "string", + "description": "Name of this policy's fabric." + }, + "subProtectionPolicy": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubProtectionPolicy" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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\"." + } + }, + "required": [ + "backupManagementType" + ], + "description": "Azure VM (Mercury) workload-specific backup policy." + }, + "IaaSVMContainer": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureIaaSClassicComputeVMContainer" + }, + { + "$ref": "#/definitions/AzureIaaSComputeVMContainer" + } + ], + "properties": { + "containerType": { + "type": "string", + "enum": [ + "IaaSVMContainer" + ] + }, + "resourceGroup": { + "type": "string", + "description": "Resource group name of Recovery Services Vault." + }, + "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." + } + }, + "required": [ + "containerType" + ], + "description": "IaaS VM workload-specific container." + }, + "InquiryInfo": { + "type": "object", + "properties": { + "errorDetail": { + "oneOf": [ + { + "$ref": "#/definitions/ErrorDetail" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Error Detail class which encapsulates Code, Message and Recommendations." + }, + "inquiryDetails": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/WorkloadInquiryDetails" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Inquiry Details which will have workload specific details.\r\nFor e.g. - For SQL and oracle this will contain different details." + }, + "status": { + "type": "string", + "description": "Inquiry Status for this container such as\r\nInProgress | Failed | Succeeded" + } + }, + "description": "Details about inquired protectable items under a given container." + }, + "InquiryValidation": { + "type": "object", + "properties": { + "errorDetail": { + "oneOf": [ + { + "$ref": "#/definitions/ErrorDetail" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Error Detail class which encapsulates Code, Message and Recommendations." + }, + "status": { + "type": "string", + "description": "Status for the Inquiry Validation." + } + }, + "description": "Validation for inquired protectable items under a given container." + }, + "InstantRPAdditionalDetails": { + "type": "object", + "properties": { + "azureBackupRGNamePrefix": { + "type": "string" + }, + "azureBackupRGNameSuffix": { + "type": "string" + } + } + }, + "KPIResourceHealthDetails": { + "type": "object", + "properties": { + "resourceHealthDetails": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceHealthDetails" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource Health Status" + }, + "resourceHealthStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Healthy", + "TransientDegraded", + "PersistentDegraded", + "TransientUnhealthy", + "PersistentUnhealthy", + "Invalid" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource Health Status." + } + }, + "description": "KPI Resource Health Details" + }, + "LogSchedulePolicy": { + "type": "object", + "properties": { + "scheduleFrequencyInMins": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Frequency of the log schedule operation of this policy in minutes." + }, + "schedulePolicyType": { + "type": "string", + "enum": [ + "LogSchedulePolicy" + ] + } + }, + "required": [ + "schedulePolicyType" + ], + "description": "Log policy schedule." + }, + "LongTermRetentionPolicy": { + "type": "object", + "properties": { + "dailySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Daily retention schedule." + }, + "monthlySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/MonthlyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Monthly retention schedule." + }, + "retentionPolicyType": { + "type": "string", + "enum": [ + "LongTermRetentionPolicy" + ] + }, + "weeklySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/WeeklyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Weekly retention schedule." + }, + "yearlySchedule": { + "oneOf": [ + { + "$ref": "#/definitions/YearlyRetentionSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Yearly retention schedule." + } + }, + "required": [ + "retentionPolicyType" + ], + "description": "Long term retention policy." + }, + "LongTermSchedulePolicy": { + "type": "object", + "properties": { + "schedulePolicyType": { + "type": "string", + "enum": [ + "LongTermSchedulePolicy" + ] + } + }, + "required": [ + "schedulePolicyType" + ], + "description": "Long term policy schedule." + }, + "MabContainer": { + "type": "object", + "properties": { + "agentVersion": { + "type": "string", + "description": "Agent version of this container." + }, + "canReRegister": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Can the container be registered one more time." + }, + "containerHealthState": { + "type": "string", + "description": "Health state of mab container." + }, + "containerId": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "ContainerID represents the container." + }, + "containerType": { + "type": "string", + "enum": [ + "Windows" + ] + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/MabContainerExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information of the container." + }, + "mabContainerHealthDetails": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/MABContainerHealthDetails" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health details on this mab container." + }, + "protectedItemCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of items backed up in this container." + } + }, + "required": [ + "containerType" + ], + "description": "Container with items backed up using MAB backup engine." + }, + "MabContainerExtendedInfo": { + "type": "object", + "properties": { + "backupItems": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of backup items associated with this container." + }, + "backupItemType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of backup items associated with this container." + }, + "lastBackupStatus": { + "type": "string", + "description": "Latest backup status of this container." + }, + "lastRefreshedAt": { + "type": "string", + "format": "date-time", + "description": "Time stamp when this container was refreshed." + }, + "policyName": { + "type": "string", + "description": "Backup policy associated with this container." + } + }, + "description": "Additional information of the container." + }, + "MABContainerHealthDetails": { + "type": "object", + "properties": { + "code": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health Code" + }, + "message": { + "type": "string", + "description": "Health Message" + }, + "recommendations": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health Recommended Actions" + }, + "title": { + "type": "string", + "description": "Health Title" + } + }, + "description": "MAB workload-specific Health Details." + }, + "MabFileFolderProtectedItem": { + "type": "object", + "properties": { + "computerName": { + "type": "string", + "description": "Name of the computer associated with this backup item." + }, + "deferredDeleteSyncTimeInUTC": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Sync time for deferred deletion in UTC" + }, + "extendedInfo": { + "oneOf": [ + { + "$ref": "#/definitions/MabFileFolderProtectedItemExtendedInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional information on the backed up item." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of this backup item." + }, + "lastBackupStatus": { + "type": "string", + "description": "Status of last backup operation." + }, + "lastBackupTime": { + "type": "string", + "format": "date-time", + "description": "Timestamp of the last backup operation on this backup item." + }, + "protectedItemType": { + "type": "string", + "enum": [ + "MabFileFolderProtectedItem" + ] + }, + "protectionState": { + "type": "string", + "description": "Protected, ProtectionStopped, IRPending or ProtectionError" + } + }, + "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/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of backup copies associated with the backup item." + } + }, + "description": "Additional information on the backed up item." + }, + "MabProtectionPolicy": { + "type": "object", + "properties": { + "backupManagementType": { + "type": "string", + "enum": [ + "MAB" + ] + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup schedule." + } + }, + "required": [ + "backupManagementType" + ], + "description": "Mab container-specific backup policy." + }, + "MonthlyRetentionSchedule": { + "type": "object", + "properties": { + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionScheduleDaily": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Daily retention format." + }, + "retentionScheduleFormatType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention schedule format type for monthly retention policy." + }, + "retentionScheduleWeekly": { + "oneOf": [ + { + "$ref": "#/definitions/WeeklyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Weekly retention format." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + } + }, + "description": "Monthly retention schedule." + }, + "PrivateEndpoint": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Gets or sets id" + } + }, + "description": "The Private Endpoint network resource that is linked to the Private Endpoint connection" + }, + "PrivateEndpointConnection": { + "type": "object", + "properties": { + "privateEndpoint": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateEndpoint" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Private Endpoint network resource that is linked to the Private Endpoint connection" + }, + "privateLinkServiceConnectionState": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateLinkServiceConnectionState" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Private Link Service Connection State" + }, + "provisioningState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Succeeded", + "Deleting", + "Failed", + "Pending" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets provisioning state of the private endpoint connection." + } + }, + "description": "Private Endpoint Connection Response Properties" + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "properties": { + "actionRequired": { + "type": "string", + "description": "Gets or sets actions required" + }, + "description": { + "type": "string", + "description": "Gets or sets description" + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Pending", + "Approved", + "Rejected", + "Disconnected" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the status." + } + }, + "description": "Private Link Service Connection State" + }, + "ProtectedItem": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureFileshareProtectedItem" + }, + { + "$ref": "#/definitions/AzureIaaSVMProtectedItem" + }, + { + "$ref": "#/definitions/AzureSqlProtectedItem" + }, + { + "$ref": "#/definitions/AzureVmWorkloadProtectedItem" + }, + { + "$ref": "#/definitions/DPMProtectedItem" + }, + { + "$ref": "#/definitions/GenericProtectedItem" + }, + { + "$ref": "#/definitions/MabFileFolderProtectedItem" + } + ], + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "AzureIaasVM", + "MAB", + "DPM", + "AzureBackupServer", + "AzureSql", + "AzureStorage", + "AzureWorkload", + "DefaultBackup" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of backup management for the backed up item." + }, + "backupSetName": { + "type": "string", + "description": "Name of the backup set the backup item belongs to" + }, + "containerName": { + "type": "string", + "description": "Unique name of container" + }, + "createMode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Default", + "Recover" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Create mode to indicate recovery of existing soft deleted data source or creation of new data source." + }, + "deferredDeleteTimeInUTC": { + "type": "string", + "format": "date-time", + "description": "Time for deferred deletion in UTC" + }, + "deferredDeleteTimeRemaining": { + "type": "string", + "description": "Time remaining before the DS marked for deferred delete is permanently deleted" + }, + "isDeferredDeleteScheduleUpcoming": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Flag to identify whether the deferred deleted DS is to be purged soon" + }, + "isRehydrate": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Flag to identify that deferred deleted DS is to be moved into Pause state" + }, + "isScheduledForDeferredDelete": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Flag to identify whether the DS is scheduled for deferred delete" + }, + "lastRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the last (latest) backup copy was created for this backup item." + }, + "policyId": { + "type": "string", + "description": "ID of the backup policy with which this item is backed up." + }, + "sourceResourceId": { + "type": "string", + "description": "ARM ID of the resource to be backed up." + }, + "workloadType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of workload this item represents." + } + }, + "description": "Base class for backup items." + }, + "ProtectionContainer": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureSqlContainer" + }, + { + "$ref": "#/definitions/AzureStorageContainer" + }, + { + "$ref": "#/definitions/AzureWorkloadContainer" + }, + { + "$ref": "#/definitions/DpmContainer" + }, + { + "$ref": "#/definitions/GenericContainer" + }, + { + "$ref": "#/definitions/IaaSVMContainer" + }, + { + "$ref": "#/definitions/MabContainer" + } + ], + "properties": { + "backupManagementType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "AzureIaasVM", + "MAB", + "DPM", + "AzureBackupServer", + "AzureSql", + "AzureStorage", + "AzureWorkload", + "DefaultBackup" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of backup management for the container." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the container." + }, + "healthStatus": { + "type": "string", + "description": "Status of health of the container." + }, + "registrationStatus": { + "type": "string", + "description": "Status of registration of the container with the Recovery Services Vault." + } + }, + "description": "Base class for container with backup items. Containers with specific workloads are derived from this class." + }, + "ProtectionPolicy": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectionPolicy" + }, + { + "$ref": "#/definitions/AzureFileShareProtectionPolicy" + }, + { + "$ref": "#/definitions/AzureIaaSVMProtectionPolicy" + }, + { + "$ref": "#/definitions/AzureSqlProtectionPolicy" + }, + { + "$ref": "#/definitions/GenericProtectionPolicy" + }, + { + "$ref": "#/definitions/MabProtectionPolicy" + } + ], + "properties": { + "protectedItemsCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of items associated with this policy." + } + }, + "description": "Base class for backup policy. Workload-specific backup policies are derived from this class." + }, + "ResourceHealthDetails": { + "type": "object", + "properties": {}, + "description": "Health Details for backup items." + }, + "RetentionDuration": { + "type": "object", + "properties": { + "count": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Count of duration types. Retention duration is obtained by the counting the duration type Count times.\r\nFor 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/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration type of retention policy." + } + }, + "description": "Retention duration." + }, + "RetentionPolicy": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/LongTermRetentionPolicy" + }, + { + "$ref": "#/definitions/SimpleRetentionPolicy" + } + ], + "properties": {}, + "description": "Base class for retention policy." + }, + "SchedulePolicy": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/LogSchedulePolicy" + }, + { + "$ref": "#/definitions/LongTermSchedulePolicy" + }, + { + "$ref": "#/definitions/SimpleSchedulePolicy" + } + ], + "properties": {}, + "description": "Base class for backup schedule." + }, + "Settings": { + "type": "object", + "properties": { + "isCompression": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Workload compression flag. This has been added so that 'isSqlCompression'\r\nwill be deprecated once clients upgrade to consider this flag." + }, + "issqlcompression": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SQL compression flag" + }, + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." + } + }, + "description": "Common settings field for backup management" + }, + "SimpleRetentionPolicy": { + "type": "object", + "properties": { + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionPolicyType": { + "type": "string", + "enum": [ + "SimpleRetentionPolicy" + ] + } + }, + "required": [ + "retentionPolicyType" + ], + "description": "Simple policy retention." + }, + "SimpleSchedulePolicy": { + "type": "object", + "properties": { + "schedulePolicyType": { + "type": "string", + "enum": [ + "SimpleSchedulePolicy" + ] + }, + "scheduleRunDays": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of days of week this schedule has to be run." + }, + "scheduleRunFrequency": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Frequency of the schedule operation of this policy." + }, + "scheduleRunTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" + } + ], + "description": "At every number weeks this schedule has to be run." + } + }, + "required": [ + "schedulePolicyType" + ], + "description": "Simple policy schedule." + }, + "SubProtectionPolicy": { + "type": "object", + "properties": { + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Full", + "Differential", + "Log", + "CopyOnlyFull", + "Incremental" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of backup policy type." + }, + "retentionPolicy": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for retention policy." + }, + "schedulePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/SchedulePolicy" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup schedule." + } + }, + "description": "Sub-protection policy which includes schedule and retention" + }, + "vaults_backupFabrics_protectionContainers_protectedItems_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-12-01" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "description": "Item name to be backed up." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProtectedItem" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for backup items." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "protectedItems" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "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/common/definitions.json#/definitions/expression" + } + ], + "description": "List of days of the week." + }, + "weeksOfTheMonth": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "First", + "Second", + "Third", + "Fourth", + "Last", + "Invalid" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.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/common/definitions.json#/definitions/expression" + } + ], + "description": "List of days of week for weekly retention policy." + }, + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + } + }, + "description": "Weekly retention schedule." + }, + "WorkloadInquiryDetails": { + "type": "object", + "properties": { + "inquiryValidation": { + "oneOf": [ + { + "$ref": "#/definitions/InquiryValidation" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Validation for inquired protectable items under a given container." + }, + "itemCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Contains the protectable item Count inside this Container." + }, + "type": { + "type": "string", + "description": "Type of the Workload such as SQL, Oracle etc." + } + }, + "description": "Details of an inquired protectable item." + }, + "YearlyRetentionSchedule": { + "type": "object", + "properties": { + "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/common/definitions.json#/definitions/expression" + } + ], + "description": "List of months of year of yearly retention policy." + }, + "retentionDuration": { + "oneOf": [ + { + "$ref": "#/definitions/RetentionDuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention duration." + }, + "retentionScheduleDaily": { + "oneOf": [ + { + "$ref": "#/definitions/DailyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Daily retention format." + }, + "retentionScheduleFormatType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Invalid", + "Daily", + "Weekly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention schedule format for yearly retention policy." + }, + "retentionScheduleWeekly": { + "oneOf": [ + { + "$ref": "#/definitions/WeeklyRetentionFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Weekly retention format." + }, + "retentionTimes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Retention times of retention policy." + } + }, + "description": "Yearly retention schedule." + } + } +}