Microsoft.RecoveryServices vaults/backupPolicies 2020-12-01

Bicep resource definition

The vaults/backupPolicies resource type can be deployed to:

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@2020-12-01' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  parent: resourceSymbolicName
  eTag: 'string'
  properties: {
    protectedItemsCount: int
    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
  retentionPolicy: {
    retentionPolicyType: 'string'
    // For remaining properties, see RetentionPolicy objects
  }
  schedulePolicy: {
    schedulePolicyType: 'string'
    // For remaining properties, see SchedulePolicy objects
  }
  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'
  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
      }
    }
  ]
  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
      }
    }
  ]
  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'
  scheduleRunDays: [
    'string'
  ]
  scheduleRunFrequency: 'string'
  scheduleRunTimes: [
    'string'
  ]
  scheduleWeeklyFrequency: int

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
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
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

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 (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)
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'
'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

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
workLoadType Type of workload for the backup management 'AzureFileShare'
'AzureSqlDb'
'Client'
'Exchange'
'FileFolder'
'GenericDataSource'
'Invalid'
'SAPAseDatabase'
'SAPHanaDatabase'
'SQLDB'
'SQLDataBase'
'Sharepoint'
'SystemState'
'VM'
'VMwareVM'

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'
'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'
retentionPolicy Retention policy with the details on backup copy retention ranges. RetentionPolicy
schedulePolicy Backup schedule specified as part of backup policy. SchedulePolicy

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

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": "2020-12-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "eTag": "string",
  "properties": {
    "protectedItemsCount": "int",
    "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",
  "retentionPolicy": {
    "retentionPolicyType": "string"
    // For remaining properties, see RetentionPolicy objects
  },
  "schedulePolicy": {
    "schedulePolicyType": "string"
    // For remaining properties, see SchedulePolicy objects
  },
  "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",
  "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
      }
    }
  ],
  "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
      }
    }
  ],
  "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",
  "scheduleRunDays": [ "string" ],
  "scheduleRunFrequency": "string",
  "scheduleRunTimes": [ "string" ],
  "scheduleWeeklyFrequency": "int"

Property values

vaults/backupPolicies

Name Description Value
type The resource type 'Microsoft.RecoveryServices/vaults/backupPolicies'
apiVersion The resource api version '2020-12-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
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
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

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 (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)
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'
'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

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
workLoadType Type of workload for the backup management 'AzureFileShare'
'AzureSqlDb'
'Client'
'Exchange'
'FileFolder'
'GenericDataSource'
'Invalid'
'SAPAseDatabase'
'SAPHanaDatabase'
'SQLDB'
'SQLDataBase'
'Sharepoint'
'SystemState'
'VM'
'VMwareVM'

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'
'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'
retentionPolicy Retention policy with the details on backup copy retention ranges. RetentionPolicy
schedulePolicy Backup schedule specified as part of backup policy. SchedulePolicy

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

  • 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@2020-12-01"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  body = jsonencode({
    properties = {
      protectedItemsCount = int
      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
  retentionPolicy = {
    retentionPolicyType = "string"
    // For remaining properties, see RetentionPolicy objects
  }
  schedulePolicy = {
    schedulePolicyType = "string"
    // For remaining properties, see SchedulePolicy objects
  }
  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"
  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
      }
    }
  ]
  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
      }
    }
  ]
  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"
  scheduleRunDays = [
    "string"
  ]
  scheduleRunFrequency = "string"
  scheduleRunTimes = [
    "string"
  ]
  scheduleWeeklyFrequency = int

Property values

vaults/backupPolicies

Name Description Value
type The resource type "Microsoft.RecoveryServices/vaults/backupPolicies@2020-12-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
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
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

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 (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)
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"
"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

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
workLoadType Type of workload for the backup management "AzureFileShare"
"AzureSqlDb"
"Client"
"Exchange"
"FileFolder"
"GenericDataSource"
"Invalid"
"SAPAseDatabase"
"SAPHanaDatabase"
"SQLDB"
"SQLDataBase"
"Sharepoint"
"SystemState"
"VM"
"VMwareVM"

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"
"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"
retentionPolicy Retention policy with the details on backup copy retention ranges. RetentionPolicy
schedulePolicy Backup schedule specified as part of backup policy. SchedulePolicy

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