Microsoft.RecoveryServices vaults/backupPolicies 2024-02-01
- Latest
- 2024-04-30-preview
- 2024-04-01
- 2024-02-01
- 2024-01-01
- 2023-08-01
- 2023-06-01
- 2023-04-01
- 2023-02-01
- 2023-01-01
- 2022-10-01
- 2022-09-30-preview
- 2022-09-01-preview
- 2022-06-01-preview
- 2022-04-01
- 2022-03-01
- 2022-02-01
- 2022-01-01
- 2021-12-01
- 2021-10-01
- 2021-08-01
- 2021-07-01
- 2021-06-01
- 2021-04-01
- 2021-03-01
- 2021-02-10
- 2021-02-01
- 2021-02-01-preview
- 2021-01-01
- 2020-12-01
- 2020-10-01
- 2019-06-15
- 2019-05-13
- 2016-06-01
Bicep resource definition
The vaults/backupPolicies resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.RecoveryServices/vaults/backupPolicies resource, add the following Bicep to your template.
resource symbolicname 'Microsoft.RecoveryServices/vaults/backupPolicies@2024-02-01' = {
name: 'string'
location: 'string'
tags: {
tagName1: 'tagValue1'
tagName2: 'tagValue2'
}
parent: resourceSymbolicName
eTag: 'string'
properties: {
protectedItemsCount: int
resourceGuardOperationRequests: [
'string'
]
backupManagementType: 'string'
// For remaining properties, see ProtectionPolicy objects
}
}
ProtectionPolicy objects
Set the backupManagementType property to specify the type of object.
For AzureIaasVM, use:
backupManagementType: 'AzureIaasVM'
instantRPDetails: {
azureBackupRGNamePrefix: 'string'
azureBackupRGNameSuffix: 'string'
}
instantRpRetentionRangeInDays: int
policyType: 'string'
retentionPolicy: {
retentionPolicyType: 'string'
// For remaining properties, see RetentionPolicy objects
}
schedulePolicy: {
schedulePolicyType: 'string'
// For remaining properties, see SchedulePolicy objects
}
snapshotConsistencyType: 'OnlyCrashConsistent'
tieringPolicy: {
{customized property}: {
duration: int
durationType: 'string'
tieringMode: 'string'
}
}
timeZone: 'string'
For AzureSql, use:
backupManagementType: 'AzureSql'
retentionPolicy: {
retentionPolicyType: 'string'
// For remaining properties, see RetentionPolicy objects
}
For AzureStorage, use:
backupManagementType: 'AzureStorage'
retentionPolicy: {
retentionPolicyType: 'string'
// For remaining properties, see RetentionPolicy objects
}
schedulePolicy: {
schedulePolicyType: 'string'
// For remaining properties, see SchedulePolicy objects
}
timeZone: 'string'
vaultRetentionPolicy: {
snapshotRetentionInDays: int
vaultRetention: {
retentionPolicyType: 'string'
// For remaining properties, see RetentionPolicy objects
}
}
workLoadType: 'string'
For AzureWorkload, use:
backupManagementType: 'AzureWorkload'
makePolicyConsistent: bool
settings: {
isCompression: bool
issqlcompression: bool
timeZone: 'string'
}
subProtectionPolicy: [
{
policyType: 'string'
retentionPolicy: {
retentionPolicyType: 'string'
// For remaining properties, see RetentionPolicy objects
}
schedulePolicy: {
schedulePolicyType: 'string'
// For remaining properties, see SchedulePolicy objects
}
snapshotBackupAdditionalDetails: {
instantRPDetails: 'string'
instantRpRetentionRangeInDays: int
userAssignedManagedIdentityDetails: {
identityArmId: 'string'
identityName: 'string'
userAssignedIdentityProperties: {
clientId: 'string'
principalId: 'string'
}
}
}
tieringPolicy: {
{customized property}: {
duration: int
durationType: 'string'
tieringMode: 'string'
}
}
}
]
workLoadType: 'string'
For GenericProtectionPolicy, use:
backupManagementType: 'GenericProtectionPolicy'
fabricName: 'string'
subProtectionPolicy: [
{
policyType: 'string'
retentionPolicy: {
retentionPolicyType: 'string'
// For remaining properties, see RetentionPolicy objects
}
schedulePolicy: {
schedulePolicyType: 'string'
// For remaining properties, see SchedulePolicy objects
}
snapshotBackupAdditionalDetails: {
instantRPDetails: 'string'
instantRpRetentionRangeInDays: int
userAssignedManagedIdentityDetails: {
identityArmId: 'string'
identityName: 'string'
userAssignedIdentityProperties: {
clientId: 'string'
principalId: 'string'
}
}
}
tieringPolicy: {
{customized property}: {
duration: int
durationType: 'string'
tieringMode: 'string'
}
}
}
]
timeZone: 'string'
For MAB, use:
backupManagementType: 'MAB'
retentionPolicy: {
retentionPolicyType: 'string'
// For remaining properties, see RetentionPolicy objects
}
schedulePolicy: {
schedulePolicyType: 'string'
// For remaining properties, see SchedulePolicy objects
}
RetentionPolicy objects
Set the retentionPolicyType property to specify the type of object.
For LongTermRetentionPolicy, use:
retentionPolicyType: 'LongTermRetentionPolicy'
dailySchedule: {
retentionDuration: {
count: int
durationType: 'string'
}
retentionTimes: [
'string'
]
}
monthlySchedule: {
retentionDuration: {
count: int
durationType: 'string'
}
retentionScheduleDaily: {
daysOfTheMonth: [
{
date: int
isLast: bool
}
]
}
retentionScheduleFormatType: 'string'
retentionScheduleWeekly: {
daysOfTheWeek: [
'string'
]
weeksOfTheMonth: [
'string'
]
}
retentionTimes: [
'string'
]
}
weeklySchedule: {
daysOfTheWeek: [
'string'
]
retentionDuration: {
count: int
durationType: 'string'
}
retentionTimes: [
'string'
]
}
yearlySchedule: {
monthsOfYear: [
'string'
]
retentionDuration: {
count: int
durationType: 'string'
}
retentionScheduleDaily: {
daysOfTheMonth: [
{
date: int
isLast: bool
}
]
}
retentionScheduleFormatType: 'string'
retentionScheduleWeekly: {
daysOfTheWeek: [
'string'
]
weeksOfTheMonth: [
'string'
]
}
retentionTimes: [
'string'
]
}
For SimpleRetentionPolicy, use:
retentionPolicyType: 'SimpleRetentionPolicy'
retentionDuration: {
count: int
durationType: 'string'
}
SchedulePolicy objects
Set the schedulePolicyType property to specify the type of object.
For LogSchedulePolicy, use:
schedulePolicyType: 'LogSchedulePolicy'
scheduleFrequencyInMins: int
For LongTermSchedulePolicy, use:
schedulePolicyType: 'LongTermSchedulePolicy'
For SimpleSchedulePolicy, use:
schedulePolicyType: 'SimpleSchedulePolicy'
hourlySchedule: {
interval: int
scheduleWindowDuration: int
scheduleWindowStartTime: 'string'
}
scheduleRunDays: [
'string'
]
scheduleRunFrequency: 'string'
scheduleRunTimes: [
'string'
]
scheduleWeeklyFrequency: int
For SimpleSchedulePolicyV2, use:
schedulePolicyType: 'SimpleSchedulePolicyV2'
dailySchedule: {
scheduleRunTimes: [
'string'
]
}
hourlySchedule: {
interval: int
scheduleWindowDuration: int
scheduleWindowStartTime: 'string'
}
scheduleRunFrequency: 'string'
weeklySchedule: {
scheduleRunDays: [
'string'
]
scheduleRunTimes: [
'string'
]
}
Property values
vaults/backupPolicies
Name | Description | Value |
---|---|---|
name | The resource name See how to set names and types for child resources in Bicep. |
string (required) Character limit: 3-150 Valid characters: Alphanumerics and hyphens. Start with letter. Can't end with hyphen. |
location | Resource location. | string |
tags | Resource tags. | Dictionary of tag names and values. See Tags in templates |
parent | In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource. For more information, see Child resource outside parent resource. |
Symbolic name for resource of type: vaults |
eTag | Optional ETag. | string |
properties | ProtectionPolicyResource properties | ProtectionPolicy |
ProtectionPolicy
Name | Description | Value |
---|---|---|
protectedItemsCount | Number of items associated with this policy. | int |
resourceGuardOperationRequests | ResourceGuard Operation Requests | string[] |
backupManagementType | Set the object type | AzureIaasVM AzureSql AzureStorage AzureWorkload GenericProtectionPolicy MAB (required) |
AzureIaaSVMProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'AzureIaasVM' (required) |
instantRPDetails | InstantRPAdditionalDetails | |
instantRpRetentionRangeInDays | Instant RP retention policy range in days | int |
policyType | 'Invalid' 'V1' 'V2' |
|
retentionPolicy | Retention policy with the details on backup copy retention ranges. | RetentionPolicy |
schedulePolicy | Backup schedule specified as part of backup policy. | SchedulePolicy |
snapshotConsistencyType | 'OnlyCrashConsistent' | |
tieringPolicy | Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier. |
AzureIaaSVMProtectionPolicyTieringPolicy |
timeZone | TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". | string |
InstantRPAdditionalDetails
Name | Description | Value |
---|---|---|
azureBackupRGNamePrefix | string | |
azureBackupRGNameSuffix | string |
RetentionPolicy
Name | Description | Value |
---|---|---|
retentionPolicyType | Set the object type | LongTermRetentionPolicy SimpleRetentionPolicy (required) |
LongTermRetentionPolicy
Name | Description | Value |
---|---|---|
retentionPolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'LongTermRetentionPolicy' (required) |
dailySchedule | Daily retention schedule of the protection policy. | DailyRetentionSchedule |
monthlySchedule | Monthly retention schedule of the protection policy. | MonthlyRetentionSchedule |
weeklySchedule | Weekly retention schedule of the protection policy. | WeeklyRetentionSchedule |
yearlySchedule | Yearly retention schedule of the protection policy. | YearlyRetentionSchedule |
DailyRetentionSchedule
Name | Description | Value |
---|---|---|
retentionDuration | Retention duration of retention Policy. | RetentionDuration |
retentionTimes | Retention times of retention policy. | string[] |
RetentionDuration
Name | Description | Value |
---|---|---|
count | Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks. |
int |
durationType | Retention duration type of retention policy. | 'Days' 'Invalid' 'Months' 'Weeks' 'Years' |
MonthlyRetentionSchedule
Name | Description | Value |
---|---|---|
retentionDuration | Retention duration of retention Policy. | RetentionDuration |
retentionScheduleDaily | Daily retention format for monthly retention policy. | DailyRetentionFormat |
retentionScheduleFormatType | Retention schedule format type for monthly retention policy. | 'Daily' 'Invalid' 'Weekly' |
retentionScheduleWeekly | Weekly retention format for monthly retention policy. | WeeklyRetentionFormat |
retentionTimes | Retention times of retention policy. | string[] |
DailyRetentionFormat
Name | Description | Value |
---|---|---|
daysOfTheMonth | List of days of the month. | Day[] |
Day
Name | Description | Value |
---|---|---|
date | Date of the month | int |
isLast | Whether Date is last date of month | bool |
WeeklyRetentionFormat
Name | Description | Value |
---|---|---|
daysOfTheWeek | List of days of the week. | String array containing any of: 'Friday' 'Monday' 'Saturday' 'Sunday' 'Thursday' 'Tuesday' 'Wednesday' |
weeksOfTheMonth | List of weeks of month. | String array containing any of: 'First' 'Fourth' 'Invalid' 'Last' 'Second' 'Third' |
WeeklyRetentionSchedule
Name | Description | Value |
---|---|---|
daysOfTheWeek | List of days of week for weekly retention policy. | String array containing any of: 'Friday' 'Monday' 'Saturday' 'Sunday' 'Thursday' 'Tuesday' 'Wednesday' |
retentionDuration | Retention duration of retention Policy. | RetentionDuration |
retentionTimes | Retention times of retention policy. | string[] |
YearlyRetentionSchedule
Name | Description | Value |
---|---|---|
monthsOfYear | List of months of year of yearly retention policy. | String array containing any of: 'April' 'August' 'December' 'February' 'Invalid' 'January' 'July' 'June' 'March' 'May' 'November' 'October' 'September' |
retentionDuration | Retention duration of retention Policy. | RetentionDuration |
retentionScheduleDaily | Daily retention format for yearly retention policy. | DailyRetentionFormat |
retentionScheduleFormatType | Retention schedule format for yearly retention policy. | 'Daily' 'Invalid' 'Weekly' |
retentionScheduleWeekly | Weekly retention format for yearly retention policy. | WeeklyRetentionFormat |
retentionTimes | Retention times of retention policy. | string[] |
SimpleRetentionPolicy
Name | Description | Value |
---|---|---|
retentionPolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'SimpleRetentionPolicy' (required) |
retentionDuration | Retention duration of the protection policy. | RetentionDuration |
SchedulePolicy
Name | Description | Value |
---|---|---|
schedulePolicyType | Set the object type | LogSchedulePolicy LongTermSchedulePolicy SimpleSchedulePolicy SimpleSchedulePolicyV2 (required) |
LogSchedulePolicy
Name | Description | Value |
---|---|---|
schedulePolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'LogSchedulePolicy' (required) |
scheduleFrequencyInMins | Frequency of the log schedule operation of this policy in minutes. | int |
LongTermSchedulePolicy
Name | Description | Value |
---|---|---|
schedulePolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'LongTermSchedulePolicy' (required) |
SimpleSchedulePolicy
Name | Description | Value |
---|---|---|
schedulePolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'SimpleSchedulePolicy' (required) |
hourlySchedule | Hourly Schedule of this Policy | HourlySchedule |
scheduleRunDays | List of days of week this schedule has to be run. | String array containing any of: 'Friday' 'Monday' 'Saturday' 'Sunday' 'Thursday' 'Tuesday' 'Wednesday' |
scheduleRunFrequency | Frequency of the schedule operation of this policy. | 'Daily' 'Hourly' 'Invalid' 'Weekly' |
scheduleRunTimes | List of times of day this schedule has to be run. | string[] |
scheduleWeeklyFrequency | At every number weeks this schedule has to be run. | int |
HourlySchedule
Name | Description | Value |
---|---|---|
interval | Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12 |
int |
scheduleWindowDuration | To specify duration of the backup window | int |
scheduleWindowStartTime | To specify start time of the backup window | string |
SimpleSchedulePolicyV2
Name | Description | Value |
---|---|---|
schedulePolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'SimpleSchedulePolicyV2' (required) |
dailySchedule | Daily schedule of this policy | DailySchedule |
hourlySchedule | hourly schedule of this policy | HourlySchedule |
scheduleRunFrequency | Frequency of the schedule operation of this policy. | 'Daily' 'Hourly' 'Invalid' 'Weekly' |
weeklySchedule | Weekly schedule of this policy | WeeklySchedule |
DailySchedule
Name | Description | Value |
---|---|---|
scheduleRunTimes | List of times of day this schedule has to be run. | string[] |
WeeklySchedule
Name | Description | Value |
---|---|---|
scheduleRunDays | String array containing any of: 'Friday' 'Monday' 'Saturday' 'Sunday' 'Thursday' 'Tuesday' 'Wednesday' |
|
scheduleRunTimes | List of times of day this schedule has to be run. | string[] |
AzureIaaSVMProtectionPolicyTieringPolicy
Name | Description | Value |
---|---|---|
{customized property} | TieringPolicy |
TieringPolicy
Name | Description | Value |
---|---|---|
duration | Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter |
int |
durationType | Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter |
'Days' 'Invalid' 'Months' 'Weeks' 'Years' |
tieringMode | Tiering Mode to control automatic tiering of recovery points. Supported values are: 1. TierRecommended: Tier all recovery points recommended to be tiered 2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below. 3. DoNotTier: Do not tier any recovery points |
'DoNotTier' 'Invalid' 'TierAfter' 'TierRecommended' |
AzureSqlProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'AzureSql' (required) |
retentionPolicy | Retention policy details. | RetentionPolicy |
AzureFileShareProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'AzureStorage' (required) |
retentionPolicy | Retention policy with the details on backup copy retention ranges. | RetentionPolicy |
schedulePolicy | Backup schedule specified as part of backup policy. | SchedulePolicy |
timeZone | TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". | string |
vaultRetentionPolicy | Retention policy with the details on hardened backup copy retention ranges. | VaultRetentionPolicy |
workLoadType | Type of workload for the backup management | 'AzureFileShare' 'AzureSqlDb' 'Client' 'Exchange' 'FileFolder' 'GenericDataSource' 'Invalid' 'SAPAseDatabase' 'SAPHanaDBInstance' 'SAPHanaDatabase' 'SQLDB' 'SQLDataBase' 'Sharepoint' 'SystemState' 'VM' 'VMwareVM' |
VaultRetentionPolicy
Name | Description | Value |
---|---|---|
snapshotRetentionInDays | int (required) | |
vaultRetention | Base class for retention policy. | RetentionPolicy (required) |
AzureVmWorkloadProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'AzureWorkload' (required) |
makePolicyConsistent | Fix the policy inconsistency | bool |
settings | Common settings for the backup management | Settings |
subProtectionPolicy | List of sub-protection policies which includes schedule and retention | SubProtectionPolicy[] |
workLoadType | Type of workload for the backup management | 'AzureFileShare' 'AzureSqlDb' 'Client' 'Exchange' 'FileFolder' 'GenericDataSource' 'Invalid' 'SAPAseDatabase' 'SAPHanaDBInstance' 'SAPHanaDatabase' 'SQLDB' 'SQLDataBase' 'Sharepoint' 'SystemState' 'VM' 'VMwareVM' |
Settings
Name | Description | Value |
---|---|---|
isCompression | Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag. |
bool |
issqlcompression | SQL compression flag | bool |
timeZone | TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". | string |
SubProtectionPolicy
Name | Description | Value |
---|---|---|
policyType | Type of backup policy type | 'CopyOnlyFull' 'Differential' 'Full' 'Incremental' 'Invalid' 'Log' 'SnapshotCopyOnlyFull' 'SnapshotFull' |
retentionPolicy | Retention policy with the details on backup copy retention ranges. | RetentionPolicy |
schedulePolicy | Backup schedule specified as part of backup policy. | SchedulePolicy |
snapshotBackupAdditionalDetails | Snapshot Backup related fields for WorkloadType SaPHanaSystem | SnapshotBackupAdditionalDetails |
tieringPolicy | Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier. |
SubProtectionPolicyTieringPolicy |
SnapshotBackupAdditionalDetails
Name | Description | Value |
---|---|---|
instantRPDetails | string | |
instantRpRetentionRangeInDays | int | |
userAssignedManagedIdentityDetails | User assigned managed identity details | UserAssignedManagedIdentityDetails |
UserAssignedManagedIdentityDetails
Name | Description | Value |
---|---|---|
identityArmId | The ARM id of the assigned identity. | string |
identityName | The name of the assigned identity. | string |
userAssignedIdentityProperties | User assigned managed identity properties | UserAssignedIdentityProperties |
UserAssignedIdentityProperties
Name | Description | Value |
---|---|---|
clientId | The client ID of the assigned identity. | string |
principalId | The principal ID of the assigned identity. | string |
SubProtectionPolicyTieringPolicy
Name | Description | Value |
---|---|---|
{customized property} | TieringPolicy |
GenericProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'GenericProtectionPolicy' (required) |
fabricName | Name of this policy's fabric. | string |
subProtectionPolicy | List of sub-protection policies which includes schedule and retention | SubProtectionPolicy[] |
timeZone | TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". | string |
MabProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'MAB' (required) |
retentionPolicy | Retention policy details. | RetentionPolicy |
schedulePolicy | Backup schedule of backup policy. | SchedulePolicy |
Quickstart templates
The following quickstart templates deploy this resource type.
Template | Description |
---|---|
Backup existing File Share using Recovery Services (Daily) |
This template configures protection for an existing File Share present in an existing Storage Account. It creates a new or uses an existing Recovery Services Vault and Backup Policy based on the set parameter values. |
Backup existing File Share using Recovery Services (hourly) |
This template configures protection with hourly frequency for an existing File Share present in an existing Storage Account. It creates a new or uses an existing Recovery Services Vault and Backup Policy based on the set parameter values. |
Backup Resource Manager VMs using Recovery Services vault |
This template will use existing recovery services vault and existing backup policy, and configures backup of multiple Resource Manager VMs that belong to same resource group |
Create Recovery Services Vault with backup policies |
This template creates a Recovery Services Vault with backup policies and configure optional features such system identity, backup storage type, cross region restore and diagnostics logs and a delete lock. |
Create Daily Backup Policy for RS Vault to protect IaaSVMs |
This template creates Recovery service vault and a Daily Backup Policy that can be used to protect classic and ARM based IaaS VMs. |
Azure Backup for Workload in Azure Virtual Machines |
This template creates a Recovery Services Vault and a Workload specific Backup Policy. Registers VM with Backup service and Configures Protection |
Create Weekly Backup Policy for RS Vault to protect IaaSVMs |
This template creates Recovery service vault and a Daily Backup Policy that can be used to protect classic and ARM based IaaS VMs. |
ARM template resource definition
The vaults/backupPolicies resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.RecoveryServices/vaults/backupPolicies resource, add the following JSON to your template.
{
"type": "Microsoft.RecoveryServices/vaults/backupPolicies",
"apiVersion": "2024-02-01",
"name": "string",
"location": "string",
"tags": {
"tagName1": "tagValue1",
"tagName2": "tagValue2"
},
"eTag": "string",
"properties": {
"protectedItemsCount": "int",
"resourceGuardOperationRequests": [ "string" ],
"backupManagementType": "string"
// For remaining properties, see ProtectionPolicy objects
}
}
ProtectionPolicy objects
Set the backupManagementType property to specify the type of object.
For AzureIaasVM, use:
"backupManagementType": "AzureIaasVM",
"instantRPDetails": {
"azureBackupRGNamePrefix": "string",
"azureBackupRGNameSuffix": "string"
},
"instantRpRetentionRangeInDays": "int",
"policyType": "string",
"retentionPolicy": {
"retentionPolicyType": "string"
// For remaining properties, see RetentionPolicy objects
},
"schedulePolicy": {
"schedulePolicyType": "string"
// For remaining properties, see SchedulePolicy objects
},
"snapshotConsistencyType": "OnlyCrashConsistent",
"tieringPolicy": {
"{customized property}": {
"duration": "int",
"durationType": "string",
"tieringMode": "string"
}
},
"timeZone": "string"
For AzureSql, use:
"backupManagementType": "AzureSql",
"retentionPolicy": {
"retentionPolicyType": "string"
// For remaining properties, see RetentionPolicy objects
}
For AzureStorage, use:
"backupManagementType": "AzureStorage",
"retentionPolicy": {
"retentionPolicyType": "string"
// For remaining properties, see RetentionPolicy objects
},
"schedulePolicy": {
"schedulePolicyType": "string"
// For remaining properties, see SchedulePolicy objects
},
"timeZone": "string",
"vaultRetentionPolicy": {
"snapshotRetentionInDays": "int",
"vaultRetention": {
"retentionPolicyType": "string"
// For remaining properties, see RetentionPolicy objects
}
},
"workLoadType": "string"
For AzureWorkload, use:
"backupManagementType": "AzureWorkload",
"makePolicyConsistent": "bool",
"settings": {
"isCompression": "bool",
"issqlcompression": "bool",
"timeZone": "string"
},
"subProtectionPolicy": [
{
"policyType": "string",
"retentionPolicy": {
"retentionPolicyType": "string"
// For remaining properties, see RetentionPolicy objects
},
"schedulePolicy": {
"schedulePolicyType": "string"
// For remaining properties, see SchedulePolicy objects
},
"snapshotBackupAdditionalDetails": {
"instantRPDetails": "string",
"instantRpRetentionRangeInDays": "int",
"userAssignedManagedIdentityDetails": {
"identityArmId": "string",
"identityName": "string",
"userAssignedIdentityProperties": {
"clientId": "string",
"principalId": "string"
}
}
},
"tieringPolicy": {
"{customized property}": {
"duration": "int",
"durationType": "string",
"tieringMode": "string"
}
}
}
],
"workLoadType": "string"
For GenericProtectionPolicy, use:
"backupManagementType": "GenericProtectionPolicy",
"fabricName": "string",
"subProtectionPolicy": [
{
"policyType": "string",
"retentionPolicy": {
"retentionPolicyType": "string"
// For remaining properties, see RetentionPolicy objects
},
"schedulePolicy": {
"schedulePolicyType": "string"
// For remaining properties, see SchedulePolicy objects
},
"snapshotBackupAdditionalDetails": {
"instantRPDetails": "string",
"instantRpRetentionRangeInDays": "int",
"userAssignedManagedIdentityDetails": {
"identityArmId": "string",
"identityName": "string",
"userAssignedIdentityProperties": {
"clientId": "string",
"principalId": "string"
}
}
},
"tieringPolicy": {
"{customized property}": {
"duration": "int",
"durationType": "string",
"tieringMode": "string"
}
}
}
],
"timeZone": "string"
For MAB, use:
"backupManagementType": "MAB",
"retentionPolicy": {
"retentionPolicyType": "string"
// For remaining properties, see RetentionPolicy objects
},
"schedulePolicy": {
"schedulePolicyType": "string"
// For remaining properties, see SchedulePolicy objects
}
RetentionPolicy objects
Set the retentionPolicyType property to specify the type of object.
For LongTermRetentionPolicy, use:
"retentionPolicyType": "LongTermRetentionPolicy",
"dailySchedule": {
"retentionDuration": {
"count": "int",
"durationType": "string"
},
"retentionTimes": [ "string" ]
},
"monthlySchedule": {
"retentionDuration": {
"count": "int",
"durationType": "string"
},
"retentionScheduleDaily": {
"daysOfTheMonth": [
{
"date": "int",
"isLast": "bool"
}
]
},
"retentionScheduleFormatType": "string",
"retentionScheduleWeekly": {
"daysOfTheWeek": [ "string" ],
"weeksOfTheMonth": [ "string" ]
},
"retentionTimes": [ "string" ]
},
"weeklySchedule": {
"daysOfTheWeek": [ "string" ],
"retentionDuration": {
"count": "int",
"durationType": "string"
},
"retentionTimes": [ "string" ]
},
"yearlySchedule": {
"monthsOfYear": [ "string" ],
"retentionDuration": {
"count": "int",
"durationType": "string"
},
"retentionScheduleDaily": {
"daysOfTheMonth": [
{
"date": "int",
"isLast": "bool"
}
]
},
"retentionScheduleFormatType": "string",
"retentionScheduleWeekly": {
"daysOfTheWeek": [ "string" ],
"weeksOfTheMonth": [ "string" ]
},
"retentionTimes": [ "string" ]
}
For SimpleRetentionPolicy, use:
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": "int",
"durationType": "string"
}
SchedulePolicy objects
Set the schedulePolicyType property to specify the type of object.
For LogSchedulePolicy, use:
"schedulePolicyType": "LogSchedulePolicy",
"scheduleFrequencyInMins": "int"
For LongTermSchedulePolicy, use:
"schedulePolicyType": "LongTermSchedulePolicy"
For SimpleSchedulePolicy, use:
"schedulePolicyType": "SimpleSchedulePolicy",
"hourlySchedule": {
"interval": "int",
"scheduleWindowDuration": "int",
"scheduleWindowStartTime": "string"
},
"scheduleRunDays": [ "string" ],
"scheduleRunFrequency": "string",
"scheduleRunTimes": [ "string" ],
"scheduleWeeklyFrequency": "int"
For SimpleSchedulePolicyV2, use:
"schedulePolicyType": "SimpleSchedulePolicyV2",
"dailySchedule": {
"scheduleRunTimes": [ "string" ]
},
"hourlySchedule": {
"interval": "int",
"scheduleWindowDuration": "int",
"scheduleWindowStartTime": "string"
},
"scheduleRunFrequency": "string",
"weeklySchedule": {
"scheduleRunDays": [ "string" ],
"scheduleRunTimes": [ "string" ]
}
Property values
vaults/backupPolicies
Name | Description | Value |
---|---|---|
type | The resource type | 'Microsoft.RecoveryServices/vaults/backupPolicies' |
apiVersion | The resource api version | '2024-02-01' |
name | The resource name See how to set names and types for child resources in JSON ARM templates. |
string (required) Character limit: 3-150 Valid characters: Alphanumerics and hyphens. Start with letter. Can't end with hyphen. |
location | Resource location. | string |
tags | Resource tags. | Dictionary of tag names and values. See Tags in templates |
eTag | Optional ETag. | string |
properties | ProtectionPolicyResource properties | ProtectionPolicy |
ProtectionPolicy
Name | Description | Value |
---|---|---|
protectedItemsCount | Number of items associated with this policy. | int |
resourceGuardOperationRequests | ResourceGuard Operation Requests | string[] |
backupManagementType | Set the object type | AzureIaasVM AzureSql AzureStorage AzureWorkload GenericProtectionPolicy MAB (required) |
AzureIaaSVMProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'AzureIaasVM' (required) |
instantRPDetails | InstantRPAdditionalDetails | |
instantRpRetentionRangeInDays | Instant RP retention policy range in days | int |
policyType | 'Invalid' 'V1' 'V2' |
|
retentionPolicy | Retention policy with the details on backup copy retention ranges. | RetentionPolicy |
schedulePolicy | Backup schedule specified as part of backup policy. | SchedulePolicy |
snapshotConsistencyType | 'OnlyCrashConsistent' | |
tieringPolicy | Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier. |
AzureIaaSVMProtectionPolicyTieringPolicy |
timeZone | TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". | string |
InstantRPAdditionalDetails
Name | Description | Value |
---|---|---|
azureBackupRGNamePrefix | string | |
azureBackupRGNameSuffix | string |
RetentionPolicy
Name | Description | Value |
---|---|---|
retentionPolicyType | Set the object type | LongTermRetentionPolicy SimpleRetentionPolicy (required) |
LongTermRetentionPolicy
Name | Description | Value |
---|---|---|
retentionPolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'LongTermRetentionPolicy' (required) |
dailySchedule | Daily retention schedule of the protection policy. | DailyRetentionSchedule |
monthlySchedule | Monthly retention schedule of the protection policy. | MonthlyRetentionSchedule |
weeklySchedule | Weekly retention schedule of the protection policy. | WeeklyRetentionSchedule |
yearlySchedule | Yearly retention schedule of the protection policy. | YearlyRetentionSchedule |
DailyRetentionSchedule
Name | Description | Value |
---|---|---|
retentionDuration | Retention duration of retention Policy. | RetentionDuration |
retentionTimes | Retention times of retention policy. | string[] |
RetentionDuration
Name | Description | Value |
---|---|---|
count | Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks. |
int |
durationType | Retention duration type of retention policy. | 'Days' 'Invalid' 'Months' 'Weeks' 'Years' |
MonthlyRetentionSchedule
Name | Description | Value |
---|---|---|
retentionDuration | Retention duration of retention Policy. | RetentionDuration |
retentionScheduleDaily | Daily retention format for monthly retention policy. | DailyRetentionFormat |
retentionScheduleFormatType | Retention schedule format type for monthly retention policy. | 'Daily' 'Invalid' 'Weekly' |
retentionScheduleWeekly | Weekly retention format for monthly retention policy. | WeeklyRetentionFormat |
retentionTimes | Retention times of retention policy. | string[] |
DailyRetentionFormat
Name | Description | Value |
---|---|---|
daysOfTheMonth | List of days of the month. | Day[] |
Day
Name | Description | Value |
---|---|---|
date | Date of the month | int |
isLast | Whether Date is last date of month | bool |
WeeklyRetentionFormat
Name | Description | Value |
---|---|---|
daysOfTheWeek | List of days of the week. | String array containing any of: 'Friday' 'Monday' 'Saturday' 'Sunday' 'Thursday' 'Tuesday' 'Wednesday' |
weeksOfTheMonth | List of weeks of month. | String array containing any of: 'First' 'Fourth' 'Invalid' 'Last' 'Second' 'Third' |
WeeklyRetentionSchedule
Name | Description | Value |
---|---|---|
daysOfTheWeek | List of days of week for weekly retention policy. | String array containing any of: 'Friday' 'Monday' 'Saturday' 'Sunday' 'Thursday' 'Tuesday' 'Wednesday' |
retentionDuration | Retention duration of retention Policy. | RetentionDuration |
retentionTimes | Retention times of retention policy. | string[] |
YearlyRetentionSchedule
Name | Description | Value |
---|---|---|
monthsOfYear | List of months of year of yearly retention policy. | String array containing any of: 'April' 'August' 'December' 'February' 'Invalid' 'January' 'July' 'June' 'March' 'May' 'November' 'October' 'September' |
retentionDuration | Retention duration of retention Policy. | RetentionDuration |
retentionScheduleDaily | Daily retention format for yearly retention policy. | DailyRetentionFormat |
retentionScheduleFormatType | Retention schedule format for yearly retention policy. | 'Daily' 'Invalid' 'Weekly' |
retentionScheduleWeekly | Weekly retention format for yearly retention policy. | WeeklyRetentionFormat |
retentionTimes | Retention times of retention policy. | string[] |
SimpleRetentionPolicy
Name | Description | Value |
---|---|---|
retentionPolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'SimpleRetentionPolicy' (required) |
retentionDuration | Retention duration of the protection policy. | RetentionDuration |
SchedulePolicy
Name | Description | Value |
---|---|---|
schedulePolicyType | Set the object type | LogSchedulePolicy LongTermSchedulePolicy SimpleSchedulePolicy SimpleSchedulePolicyV2 (required) |
LogSchedulePolicy
Name | Description | Value |
---|---|---|
schedulePolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'LogSchedulePolicy' (required) |
scheduleFrequencyInMins | Frequency of the log schedule operation of this policy in minutes. | int |
LongTermSchedulePolicy
Name | Description | Value |
---|---|---|
schedulePolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'LongTermSchedulePolicy' (required) |
SimpleSchedulePolicy
Name | Description | Value |
---|---|---|
schedulePolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'SimpleSchedulePolicy' (required) |
hourlySchedule | Hourly Schedule of this Policy | HourlySchedule |
scheduleRunDays | List of days of week this schedule has to be run. | String array containing any of: 'Friday' 'Monday' 'Saturday' 'Sunday' 'Thursday' 'Tuesday' 'Wednesday' |
scheduleRunFrequency | Frequency of the schedule operation of this policy. | 'Daily' 'Hourly' 'Invalid' 'Weekly' |
scheduleRunTimes | List of times of day this schedule has to be run. | string[] |
scheduleWeeklyFrequency | At every number weeks this schedule has to be run. | int |
HourlySchedule
Name | Description | Value |
---|---|---|
interval | Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12 |
int |
scheduleWindowDuration | To specify duration of the backup window | int |
scheduleWindowStartTime | To specify start time of the backup window | string |
SimpleSchedulePolicyV2
Name | Description | Value |
---|---|---|
schedulePolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'SimpleSchedulePolicyV2' (required) |
dailySchedule | Daily schedule of this policy | DailySchedule |
hourlySchedule | hourly schedule of this policy | HourlySchedule |
scheduleRunFrequency | Frequency of the schedule operation of this policy. | 'Daily' 'Hourly' 'Invalid' 'Weekly' |
weeklySchedule | Weekly schedule of this policy | WeeklySchedule |
DailySchedule
Name | Description | Value |
---|---|---|
scheduleRunTimes | List of times of day this schedule has to be run. | string[] |
WeeklySchedule
Name | Description | Value |
---|---|---|
scheduleRunDays | String array containing any of: 'Friday' 'Monday' 'Saturday' 'Sunday' 'Thursday' 'Tuesday' 'Wednesday' |
|
scheduleRunTimes | List of times of day this schedule has to be run. | string[] |
AzureIaaSVMProtectionPolicyTieringPolicy
Name | Description | Value |
---|---|---|
{customized property} | TieringPolicy |
TieringPolicy
Name | Description | Value |
---|---|---|
duration | Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter |
int |
durationType | Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter |
'Days' 'Invalid' 'Months' 'Weeks' 'Years' |
tieringMode | Tiering Mode to control automatic tiering of recovery points. Supported values are: 1. TierRecommended: Tier all recovery points recommended to be tiered 2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below. 3. DoNotTier: Do not tier any recovery points |
'DoNotTier' 'Invalid' 'TierAfter' 'TierRecommended' |
AzureSqlProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'AzureSql' (required) |
retentionPolicy | Retention policy details. | RetentionPolicy |
AzureFileShareProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'AzureStorage' (required) |
retentionPolicy | Retention policy with the details on backup copy retention ranges. | RetentionPolicy |
schedulePolicy | Backup schedule specified as part of backup policy. | SchedulePolicy |
timeZone | TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". | string |
vaultRetentionPolicy | Retention policy with the details on hardened backup copy retention ranges. | VaultRetentionPolicy |
workLoadType | Type of workload for the backup management | 'AzureFileShare' 'AzureSqlDb' 'Client' 'Exchange' 'FileFolder' 'GenericDataSource' 'Invalid' 'SAPAseDatabase' 'SAPHanaDBInstance' 'SAPHanaDatabase' 'SQLDB' 'SQLDataBase' 'Sharepoint' 'SystemState' 'VM' 'VMwareVM' |
VaultRetentionPolicy
Name | Description | Value |
---|---|---|
snapshotRetentionInDays | int (required) | |
vaultRetention | Base class for retention policy. | RetentionPolicy (required) |
AzureVmWorkloadProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'AzureWorkload' (required) |
makePolicyConsistent | Fix the policy inconsistency | bool |
settings | Common settings for the backup management | Settings |
subProtectionPolicy | List of sub-protection policies which includes schedule and retention | SubProtectionPolicy[] |
workLoadType | Type of workload for the backup management | 'AzureFileShare' 'AzureSqlDb' 'Client' 'Exchange' 'FileFolder' 'GenericDataSource' 'Invalid' 'SAPAseDatabase' 'SAPHanaDBInstance' 'SAPHanaDatabase' 'SQLDB' 'SQLDataBase' 'Sharepoint' 'SystemState' 'VM' 'VMwareVM' |
Settings
Name | Description | Value |
---|---|---|
isCompression | Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag. |
bool |
issqlcompression | SQL compression flag | bool |
timeZone | TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". | string |
SubProtectionPolicy
Name | Description | Value |
---|---|---|
policyType | Type of backup policy type | 'CopyOnlyFull' 'Differential' 'Full' 'Incremental' 'Invalid' 'Log' 'SnapshotCopyOnlyFull' 'SnapshotFull' |
retentionPolicy | Retention policy with the details on backup copy retention ranges. | RetentionPolicy |
schedulePolicy | Backup schedule specified as part of backup policy. | SchedulePolicy |
snapshotBackupAdditionalDetails | Snapshot Backup related fields for WorkloadType SaPHanaSystem | SnapshotBackupAdditionalDetails |
tieringPolicy | Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier. |
SubProtectionPolicyTieringPolicy |
SnapshotBackupAdditionalDetails
Name | Description | Value |
---|---|---|
instantRPDetails | string | |
instantRpRetentionRangeInDays | int | |
userAssignedManagedIdentityDetails | User assigned managed identity details | UserAssignedManagedIdentityDetails |
UserAssignedManagedIdentityDetails
Name | Description | Value |
---|---|---|
identityArmId | The ARM id of the assigned identity. | string |
identityName | The name of the assigned identity. | string |
userAssignedIdentityProperties | User assigned managed identity properties | UserAssignedIdentityProperties |
UserAssignedIdentityProperties
Name | Description | Value |
---|---|---|
clientId | The client ID of the assigned identity. | string |
principalId | The principal ID of the assigned identity. | string |
SubProtectionPolicyTieringPolicy
Name | Description | Value |
---|---|---|
{customized property} | TieringPolicy |
GenericProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'GenericProtectionPolicy' (required) |
fabricName | Name of this policy's fabric. | string |
subProtectionPolicy | List of sub-protection policies which includes schedule and retention | SubProtectionPolicy[] |
timeZone | TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". | string |
MabProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | 'MAB' (required) |
retentionPolicy | Retention policy details. | RetentionPolicy |
schedulePolicy | Backup schedule of backup policy. | SchedulePolicy |
Quickstart templates
The following quickstart templates deploy this resource type.
Template | Description |
---|---|
Backup existing File Share using Recovery Services (Daily) |
This template configures protection for an existing File Share present in an existing Storage Account. It creates a new or uses an existing Recovery Services Vault and Backup Policy based on the set parameter values. |
Backup existing File Share using Recovery Services (hourly) |
This template configures protection with hourly frequency for an existing File Share present in an existing Storage Account. It creates a new or uses an existing Recovery Services Vault and Backup Policy based on the set parameter values. |
Backup Resource Manager VMs using Recovery Services vault |
This template will use existing recovery services vault and existing backup policy, and configures backup of multiple Resource Manager VMs that belong to same resource group |
Create Recovery Services Vault with backup policies |
This template creates a Recovery Services Vault with backup policies and configure optional features such system identity, backup storage type, cross region restore and diagnostics logs and a delete lock. |
Create Daily Backup Policy for RS Vault to protect IaaSVMs |
This template creates Recovery service vault and a Daily Backup Policy that can be used to protect classic and ARM based IaaS VMs. |
Azure Backup for Workload in Azure Virtual Machines |
This template creates a Recovery Services Vault and a Workload specific Backup Policy. Registers VM with Backup service and Configures Protection |
Create Weekly Backup Policy for RS Vault to protect IaaSVMs |
This template creates Recovery service vault and a Daily Backup Policy that can be used to protect classic and ARM based IaaS VMs. |
Terraform (AzAPI provider) resource definition
The vaults/backupPolicies resource type can be deployed with operations that target:
- Resource groups
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.RecoveryServices/vaults/backupPolicies resource, add the following Terraform to your template.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.RecoveryServices/vaults/backupPolicies@2024-02-01"
name = "string"
location = "string"
parent_id = "string"
tags = {
tagName1 = "tagValue1"
tagName2 = "tagValue2"
}
body = jsonencode({
properties = {
protectedItemsCount = int
resourceGuardOperationRequests = [
"string"
]
backupManagementType = "string"
// For remaining properties, see ProtectionPolicy objects
}
eTag = "string"
})
}
ProtectionPolicy objects
Set the backupManagementType property to specify the type of object.
For AzureIaasVM, use:
backupManagementType = "AzureIaasVM"
instantRPDetails = {
azureBackupRGNamePrefix = "string"
azureBackupRGNameSuffix = "string"
}
instantRpRetentionRangeInDays = int
policyType = "string"
retentionPolicy = {
retentionPolicyType = "string"
// For remaining properties, see RetentionPolicy objects
}
schedulePolicy = {
schedulePolicyType = "string"
// For remaining properties, see SchedulePolicy objects
}
snapshotConsistencyType = "OnlyCrashConsistent"
tieringPolicy = {
{customized property} = {
duration = int
durationType = "string"
tieringMode = "string"
}
}
timeZone = "string"
For AzureSql, use:
backupManagementType = "AzureSql"
retentionPolicy = {
retentionPolicyType = "string"
// For remaining properties, see RetentionPolicy objects
}
For AzureStorage, use:
backupManagementType = "AzureStorage"
retentionPolicy = {
retentionPolicyType = "string"
// For remaining properties, see RetentionPolicy objects
}
schedulePolicy = {
schedulePolicyType = "string"
// For remaining properties, see SchedulePolicy objects
}
timeZone = "string"
vaultRetentionPolicy = {
snapshotRetentionInDays = int
vaultRetention = {
retentionPolicyType = "string"
// For remaining properties, see RetentionPolicy objects
}
}
workLoadType = "string"
For AzureWorkload, use:
backupManagementType = "AzureWorkload"
makePolicyConsistent = bool
settings = {
isCompression = bool
issqlcompression = bool
timeZone = "string"
}
subProtectionPolicy = [
{
policyType = "string"
retentionPolicy = {
retentionPolicyType = "string"
// For remaining properties, see RetentionPolicy objects
}
schedulePolicy = {
schedulePolicyType = "string"
// For remaining properties, see SchedulePolicy objects
}
snapshotBackupAdditionalDetails = {
instantRPDetails = "string"
instantRpRetentionRangeInDays = int
userAssignedManagedIdentityDetails = {
identityArmId = "string"
identityName = "string"
userAssignedIdentityProperties = {
clientId = "string"
principalId = "string"
}
}
}
tieringPolicy = {
{customized property} = {
duration = int
durationType = "string"
tieringMode = "string"
}
}
}
]
workLoadType = "string"
For GenericProtectionPolicy, use:
backupManagementType = "GenericProtectionPolicy"
fabricName = "string"
subProtectionPolicy = [
{
policyType = "string"
retentionPolicy = {
retentionPolicyType = "string"
// For remaining properties, see RetentionPolicy objects
}
schedulePolicy = {
schedulePolicyType = "string"
// For remaining properties, see SchedulePolicy objects
}
snapshotBackupAdditionalDetails = {
instantRPDetails = "string"
instantRpRetentionRangeInDays = int
userAssignedManagedIdentityDetails = {
identityArmId = "string"
identityName = "string"
userAssignedIdentityProperties = {
clientId = "string"
principalId = "string"
}
}
}
tieringPolicy = {
{customized property} = {
duration = int
durationType = "string"
tieringMode = "string"
}
}
}
]
timeZone = "string"
For MAB, use:
backupManagementType = "MAB"
retentionPolicy = {
retentionPolicyType = "string"
// For remaining properties, see RetentionPolicy objects
}
schedulePolicy = {
schedulePolicyType = "string"
// For remaining properties, see SchedulePolicy objects
}
RetentionPolicy objects
Set the retentionPolicyType property to specify the type of object.
For LongTermRetentionPolicy, use:
retentionPolicyType = "LongTermRetentionPolicy"
dailySchedule = {
retentionDuration = {
count = int
durationType = "string"
}
retentionTimes = [
"string"
]
}
monthlySchedule = {
retentionDuration = {
count = int
durationType = "string"
}
retentionScheduleDaily = {
daysOfTheMonth = [
{
date = int
isLast = bool
}
]
}
retentionScheduleFormatType = "string"
retentionScheduleWeekly = {
daysOfTheWeek = [
"string"
]
weeksOfTheMonth = [
"string"
]
}
retentionTimes = [
"string"
]
}
weeklySchedule = {
daysOfTheWeek = [
"string"
]
retentionDuration = {
count = int
durationType = "string"
}
retentionTimes = [
"string"
]
}
yearlySchedule = {
monthsOfYear = [
"string"
]
retentionDuration = {
count = int
durationType = "string"
}
retentionScheduleDaily = {
daysOfTheMonth = [
{
date = int
isLast = bool
}
]
}
retentionScheduleFormatType = "string"
retentionScheduleWeekly = {
daysOfTheWeek = [
"string"
]
weeksOfTheMonth = [
"string"
]
}
retentionTimes = [
"string"
]
}
For SimpleRetentionPolicy, use:
retentionPolicyType = "SimpleRetentionPolicy"
retentionDuration = {
count = int
durationType = "string"
}
SchedulePolicy objects
Set the schedulePolicyType property to specify the type of object.
For LogSchedulePolicy, use:
schedulePolicyType = "LogSchedulePolicy"
scheduleFrequencyInMins = int
For LongTermSchedulePolicy, use:
schedulePolicyType = "LongTermSchedulePolicy"
For SimpleSchedulePolicy, use:
schedulePolicyType = "SimpleSchedulePolicy"
hourlySchedule = {
interval = int
scheduleWindowDuration = int
scheduleWindowStartTime = "string"
}
scheduleRunDays = [
"string"
]
scheduleRunFrequency = "string"
scheduleRunTimes = [
"string"
]
scheduleWeeklyFrequency = int
For SimpleSchedulePolicyV2, use:
schedulePolicyType = "SimpleSchedulePolicyV2"
dailySchedule = {
scheduleRunTimes = [
"string"
]
}
hourlySchedule = {
interval = int
scheduleWindowDuration = int
scheduleWindowStartTime = "string"
}
scheduleRunFrequency = "string"
weeklySchedule = {
scheduleRunDays = [
"string"
]
scheduleRunTimes = [
"string"
]
}
Property values
vaults/backupPolicies
Name | Description | Value |
---|---|---|
type | The resource type | "Microsoft.RecoveryServices/vaults/backupPolicies@2024-02-01" |
name | The resource name | string (required) Character limit: 3-150 Valid characters: Alphanumerics and hyphens. Start with letter. Can't end with hyphen. |
location | Resource location. | string |
parent_id | The ID of the resource that is the parent for this resource. | ID for resource of type: vaults |
tags | Resource tags. | Dictionary of tag names and values. |
eTag | Optional ETag. | string |
properties | ProtectionPolicyResource properties | ProtectionPolicy |
ProtectionPolicy
Name | Description | Value |
---|---|---|
protectedItemsCount | Number of items associated with this policy. | int |
resourceGuardOperationRequests | ResourceGuard Operation Requests | string[] |
backupManagementType | Set the object type | AzureIaasVM AzureSql AzureStorage AzureWorkload GenericProtectionPolicy MAB (required) |
AzureIaaSVMProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | "AzureIaasVM" (required) |
instantRPDetails | InstantRPAdditionalDetails | |
instantRpRetentionRangeInDays | Instant RP retention policy range in days | int |
policyType | "Invalid" "V1" "V2" |
|
retentionPolicy | Retention policy with the details on backup copy retention ranges. | RetentionPolicy |
schedulePolicy | Backup schedule specified as part of backup policy. | SchedulePolicy |
snapshotConsistencyType | "OnlyCrashConsistent" | |
tieringPolicy | Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier. |
AzureIaaSVMProtectionPolicyTieringPolicy |
timeZone | TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". | string |
InstantRPAdditionalDetails
Name | Description | Value |
---|---|---|
azureBackupRGNamePrefix | string | |
azureBackupRGNameSuffix | string |
RetentionPolicy
Name | Description | Value |
---|---|---|
retentionPolicyType | Set the object type | LongTermRetentionPolicy SimpleRetentionPolicy (required) |
LongTermRetentionPolicy
Name | Description | Value |
---|---|---|
retentionPolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | "LongTermRetentionPolicy" (required) |
dailySchedule | Daily retention schedule of the protection policy. | DailyRetentionSchedule |
monthlySchedule | Monthly retention schedule of the protection policy. | MonthlyRetentionSchedule |
weeklySchedule | Weekly retention schedule of the protection policy. | WeeklyRetentionSchedule |
yearlySchedule | Yearly retention schedule of the protection policy. | YearlyRetentionSchedule |
DailyRetentionSchedule
Name | Description | Value |
---|---|---|
retentionDuration | Retention duration of retention Policy. | RetentionDuration |
retentionTimes | Retention times of retention policy. | string[] |
RetentionDuration
Name | Description | Value |
---|---|---|
count | Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks. |
int |
durationType | Retention duration type of retention policy. | "Days" "Invalid" "Months" "Weeks" "Years" |
MonthlyRetentionSchedule
Name | Description | Value |
---|---|---|
retentionDuration | Retention duration of retention Policy. | RetentionDuration |
retentionScheduleDaily | Daily retention format for monthly retention policy. | DailyRetentionFormat |
retentionScheduleFormatType | Retention schedule format type for monthly retention policy. | "Daily" "Invalid" "Weekly" |
retentionScheduleWeekly | Weekly retention format for monthly retention policy. | WeeklyRetentionFormat |
retentionTimes | Retention times of retention policy. | string[] |
DailyRetentionFormat
Name | Description | Value |
---|---|---|
daysOfTheMonth | List of days of the month. | Day[] |
Day
Name | Description | Value |
---|---|---|
date | Date of the month | int |
isLast | Whether Date is last date of month | bool |
WeeklyRetentionFormat
Name | Description | Value |
---|---|---|
daysOfTheWeek | List of days of the week. | String array containing any of: "Friday" "Monday" "Saturday" "Sunday" "Thursday" "Tuesday" "Wednesday" |
weeksOfTheMonth | List of weeks of month. | String array containing any of: "First" "Fourth" "Invalid" "Last" "Second" "Third" |
WeeklyRetentionSchedule
Name | Description | Value |
---|---|---|
daysOfTheWeek | List of days of week for weekly retention policy. | String array containing any of: "Friday" "Monday" "Saturday" "Sunday" "Thursday" "Tuesday" "Wednesday" |
retentionDuration | Retention duration of retention Policy. | RetentionDuration |
retentionTimes | Retention times of retention policy. | string[] |
YearlyRetentionSchedule
Name | Description | Value |
---|---|---|
monthsOfYear | List of months of year of yearly retention policy. | String array containing any of: "April" "August" "December" "February" "Invalid" "January" "July" "June" "March" "May" "November" "October" "September" |
retentionDuration | Retention duration of retention Policy. | RetentionDuration |
retentionScheduleDaily | Daily retention format for yearly retention policy. | DailyRetentionFormat |
retentionScheduleFormatType | Retention schedule format for yearly retention policy. | "Daily" "Invalid" "Weekly" |
retentionScheduleWeekly | Weekly retention format for yearly retention policy. | WeeklyRetentionFormat |
retentionTimes | Retention times of retention policy. | string[] |
SimpleRetentionPolicy
Name | Description | Value |
---|---|---|
retentionPolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | "SimpleRetentionPolicy" (required) |
retentionDuration | Retention duration of the protection policy. | RetentionDuration |
SchedulePolicy
Name | Description | Value |
---|---|---|
schedulePolicyType | Set the object type | LogSchedulePolicy LongTermSchedulePolicy SimpleSchedulePolicy SimpleSchedulePolicyV2 (required) |
LogSchedulePolicy
Name | Description | Value |
---|---|---|
schedulePolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | "LogSchedulePolicy" (required) |
scheduleFrequencyInMins | Frequency of the log schedule operation of this policy in minutes. | int |
LongTermSchedulePolicy
Name | Description | Value |
---|---|---|
schedulePolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | "LongTermSchedulePolicy" (required) |
SimpleSchedulePolicy
Name | Description | Value |
---|---|---|
schedulePolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | "SimpleSchedulePolicy" (required) |
hourlySchedule | Hourly Schedule of this Policy | HourlySchedule |
scheduleRunDays | List of days of week this schedule has to be run. | String array containing any of: "Friday" "Monday" "Saturday" "Sunday" "Thursday" "Tuesday" "Wednesday" |
scheduleRunFrequency | Frequency of the schedule operation of this policy. | "Daily" "Hourly" "Invalid" "Weekly" |
scheduleRunTimes | List of times of day this schedule has to be run. | string[] |
scheduleWeeklyFrequency | At every number weeks this schedule has to be run. | int |
HourlySchedule
Name | Description | Value |
---|---|---|
interval | Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12 |
int |
scheduleWindowDuration | To specify duration of the backup window | int |
scheduleWindowStartTime | To specify start time of the backup window | string |
SimpleSchedulePolicyV2
Name | Description | Value |
---|---|---|
schedulePolicyType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | "SimpleSchedulePolicyV2" (required) |
dailySchedule | Daily schedule of this policy | DailySchedule |
hourlySchedule | hourly schedule of this policy | HourlySchedule |
scheduleRunFrequency | Frequency of the schedule operation of this policy. | "Daily" "Hourly" "Invalid" "Weekly" |
weeklySchedule | Weekly schedule of this policy | WeeklySchedule |
DailySchedule
Name | Description | Value |
---|---|---|
scheduleRunTimes | List of times of day this schedule has to be run. | string[] |
WeeklySchedule
Name | Description | Value |
---|---|---|
scheduleRunDays | String array containing any of: "Friday" "Monday" "Saturday" "Sunday" "Thursday" "Tuesday" "Wednesday" |
|
scheduleRunTimes | List of times of day this schedule has to be run. | string[] |
AzureIaaSVMProtectionPolicyTieringPolicy
Name | Description | Value |
---|---|---|
{customized property} | TieringPolicy |
TieringPolicy
Name | Description | Value |
---|---|---|
duration | Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter |
int |
durationType | Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter |
"Days" "Invalid" "Months" "Weeks" "Years" |
tieringMode | Tiering Mode to control automatic tiering of recovery points. Supported values are: 1. TierRecommended: Tier all recovery points recommended to be tiered 2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below. 3. DoNotTier: Do not tier any recovery points |
"DoNotTier" "Invalid" "TierAfter" "TierRecommended" |
AzureSqlProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | "AzureSql" (required) |
retentionPolicy | Retention policy details. | RetentionPolicy |
AzureFileShareProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | "AzureStorage" (required) |
retentionPolicy | Retention policy with the details on backup copy retention ranges. | RetentionPolicy |
schedulePolicy | Backup schedule specified as part of backup policy. | SchedulePolicy |
timeZone | TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". | string |
vaultRetentionPolicy | Retention policy with the details on hardened backup copy retention ranges. | VaultRetentionPolicy |
workLoadType | Type of workload for the backup management | "AzureFileShare" "AzureSqlDb" "Client" "Exchange" "FileFolder" "GenericDataSource" "Invalid" "SAPAseDatabase" "SAPHanaDBInstance" "SAPHanaDatabase" "SQLDB" "SQLDataBase" "Sharepoint" "SystemState" "VM" "VMwareVM" |
VaultRetentionPolicy
Name | Description | Value |
---|---|---|
snapshotRetentionInDays | int (required) | |
vaultRetention | Base class for retention policy. | RetentionPolicy (required) |
AzureVmWorkloadProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | "AzureWorkload" (required) |
makePolicyConsistent | Fix the policy inconsistency | bool |
settings | Common settings for the backup management | Settings |
subProtectionPolicy | List of sub-protection policies which includes schedule and retention | SubProtectionPolicy[] |
workLoadType | Type of workload for the backup management | "AzureFileShare" "AzureSqlDb" "Client" "Exchange" "FileFolder" "GenericDataSource" "Invalid" "SAPAseDatabase" "SAPHanaDBInstance" "SAPHanaDatabase" "SQLDB" "SQLDataBase" "Sharepoint" "SystemState" "VM" "VMwareVM" |
Settings
Name | Description | Value |
---|---|---|
isCompression | Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag. |
bool |
issqlcompression | SQL compression flag | bool |
timeZone | TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". | string |
SubProtectionPolicy
Name | Description | Value |
---|---|---|
policyType | Type of backup policy type | "CopyOnlyFull" "Differential" "Full" "Incremental" "Invalid" "Log" "SnapshotCopyOnlyFull" "SnapshotFull" |
retentionPolicy | Retention policy with the details on backup copy retention ranges. | RetentionPolicy |
schedulePolicy | Backup schedule specified as part of backup policy. | SchedulePolicy |
snapshotBackupAdditionalDetails | Snapshot Backup related fields for WorkloadType SaPHanaSystem | SnapshotBackupAdditionalDetails |
tieringPolicy | Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier. |
SubProtectionPolicyTieringPolicy |
SnapshotBackupAdditionalDetails
Name | Description | Value |
---|---|---|
instantRPDetails | string | |
instantRpRetentionRangeInDays | int | |
userAssignedManagedIdentityDetails | User assigned managed identity details | UserAssignedManagedIdentityDetails |
UserAssignedManagedIdentityDetails
Name | Description | Value |
---|---|---|
identityArmId | The ARM id of the assigned identity. | string |
identityName | The name of the assigned identity. | string |
userAssignedIdentityProperties | User assigned managed identity properties | UserAssignedIdentityProperties |
UserAssignedIdentityProperties
Name | Description | Value |
---|---|---|
clientId | The client ID of the assigned identity. | string |
principalId | The principal ID of the assigned identity. | string |
SubProtectionPolicyTieringPolicy
Name | Description | Value |
---|---|---|
{customized property} | TieringPolicy |
GenericProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | "GenericProtectionPolicy" (required) |
fabricName | Name of this policy's fabric. | string |
subProtectionPolicy | List of sub-protection policies which includes schedule and retention | SubProtectionPolicy[] |
timeZone | TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". | string |
MabProtectionPolicy
Name | Description | Value |
---|---|---|
backupManagementType | This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. | "MAB" (required) |
retentionPolicy | Retention policy details. | RetentionPolicy |
schedulePolicy | Backup schedule of backup policy. | SchedulePolicy |