Microsoft.RecoveryServices vaults/backupPolicies 2024-02-01

Bicep resource definition

The vaults/backupPolicies resource type can be deployed with operations that target:

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)

Deploy to Azure
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)

Deploy to Azure
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

Deploy to Azure
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

Deploy to Azure
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

Deploy to Azure
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

Deploy to Azure
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

Deploy to Azure
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:

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)

Deploy to Azure
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)

Deploy to Azure
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

Deploy to Azure
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

Deploy to Azure
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

Deploy to Azure
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

Deploy to Azure
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

Deploy to Azure
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