Microsoft.RecoveryServices vaults/backupPolicies 2022-03-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@2022-03-01' = {
  parent: resourceSymbolicName
  eTag: 'string'
  location: 'string'
  name: 'string'
  properties: {
    protectedItemsCount: int
    resourceGuardOperationRequests: [
      'string'
    ]
    backupManagementType: 'string'
    // For remaining properties, see ProtectionPolicy objects
  }
  tags: {
    {customized property}: 'string'
  }
}

RetentionPolicy objects

Set the retentionPolicyType property to specify the type of object.

For LongTermRetentionPolicy, use:

{
  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'
    ]
  }
  retentionPolicyType: 'LongTermRetentionPolicy'
  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:

{
  retentionDuration: {
    count: int
    durationType: 'string'
  }
  retentionPolicyType: 'SimpleRetentionPolicy'
}

SchedulePolicy objects

Set the schedulePolicyType property to specify the type of object.

For LogSchedulePolicy, use:

{
  scheduleFrequencyInMins: int
  schedulePolicyType: 'LogSchedulePolicy'
}

For LongTermSchedulePolicy, use:

{
  schedulePolicyType: 'LongTermSchedulePolicy'
}

For SimpleSchedulePolicy, use:

{
  hourlySchedule: {
    interval: int
    scheduleWindowDuration: int
    scheduleWindowStartTime: 'string'
  }
  schedulePolicyType: 'SimpleSchedulePolicy'
  scheduleRunDays: [
    'string'
  ]
  scheduleRunFrequency: 'string'
  scheduleRunTimes: [
    'string'
  ]
  scheduleWeeklyFrequency: int
}

For SimpleSchedulePolicyV2, use:

{
  dailySchedule: {
    scheduleRunTimes: [
      'string'
    ]
  }
  hourlySchedule: {
    interval: int
    scheduleWindowDuration: int
    scheduleWindowStartTime: 'string'
  }
  schedulePolicyType: 'SimpleSchedulePolicyV2'
  scheduleRunFrequency: 'string'
  weeklySchedule: {
    scheduleRunDays: [
      'string'
    ]
    scheduleRunTimes: [
      '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
  }
  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
  }
}

Property values

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'
'Sharepoint'
'SQLDataBase'
'SQLDB'
'SystemState'
'VM'
'VMwareVM'

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 Type of backup policy type '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
timeZone TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". string

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

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'
'Sharepoint'
'SQLDataBase'
'SQLDB'
'SystemState'
'VM'
'VMwareVM'

DailyRetentionFormat

Name Description Value
daysOfTheMonth List of days of the month. Day[]

DailyRetentionSchedule

Name Description Value
retentionDuration Retention duration of retention Policy. RetentionDuration
retentionTimes Retention times of retention policy. string[]

DailySchedule

Name Description Value
scheduleRunTimes List of times of day this schedule has to be run. string[]

Day

Name Description Value
date Date of the month int
isLast Whether Date is last date of month bool

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

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

InstantRPAdditionalDetails

Name Description Value
azureBackupRGNamePrefix string
azureBackupRGNameSuffix string

LogSchedulePolicy

Name Description Value
scheduleFrequencyInMins Frequency of the log schedule operation of this policy in minutes. int
schedulePolicyType This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. 'LogSchedulePolicy' (required)

LongTermRetentionPolicy

Name Description Value
dailySchedule Daily retention schedule of the protection policy. DailyRetentionSchedule
monthlySchedule Monthly retention schedule of the protection policy. MonthlyRetentionSchedule
retentionPolicyType This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. 'LongTermRetentionPolicy' (required)
weeklySchedule Weekly retention schedule of the protection policy. WeeklyRetentionSchedule
yearlySchedule Yearly retention schedule of the protection policy. YearlyRetentionSchedule

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)

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

Microsoft.RecoveryServices/vaults/backupPolicies

Name Description Value
eTag Optional ETag. string
location Resource location. string
name The resource name string (required)
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
properties ProtectionPolicyResource properties ProtectionPolicy
tags Resource tags Dictionary of tag names and values. See Tags in templates

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

ProtectionPolicy

Name Description Value
backupManagementType Set to 'AzureIaasVM' for type AzureIaaSVMProtectionPolicy. Set to 'AzureSql' for type AzureSqlProtectionPolicy. Set to 'AzureStorage' for type AzureFileShareProtectionPolicy. Set to 'AzureWorkload' for type AzureVmWorkloadProtectionPolicy. Set to 'GenericProtectionPolicy' for type GenericProtectionPolicy. Set to 'MAB' for type MabProtectionPolicy. 'AzureIaasVM'
'AzureSql'
'AzureStorage'
'AzureWorkload'
'GenericProtectionPolicy'
'MAB' (required)
protectedItemsCount Number of items associated with this policy. int
resourceGuardOperationRequests ResourceGuard Operation Requests string[]

ResourceTags

Name Description Value

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'

RetentionPolicy

Name Description Value
retentionPolicyType Set to 'LongTermRetentionPolicy' for type LongTermRetentionPolicy. Set to 'SimpleRetentionPolicy' for type SimpleRetentionPolicy. 'LongTermRetentionPolicy'
'SimpleRetentionPolicy' (required)

SchedulePolicy

Name Description Value
schedulePolicyType Set to 'LogSchedulePolicy' for type LogSchedulePolicy. Set to 'LongTermSchedulePolicy' for type LongTermSchedulePolicy. Set to 'SimpleSchedulePolicy' for type SimpleSchedulePolicy. Set to 'SimpleSchedulePolicyV2' for type SimpleSchedulePolicyV2. 'LogSchedulePolicy'
'LongTermSchedulePolicy'
'SimpleSchedulePolicy'
'SimpleSchedulePolicyV2' (required)

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

SimpleRetentionPolicy

Name Description Value
retentionDuration Retention duration of the protection policy. RetentionDuration
retentionPolicyType This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. 'SimpleRetentionPolicy' (required)

SimpleSchedulePolicy

Name Description Value
hourlySchedule Hourly Schedule of this Policy HourlySchedule
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'
'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

SimpleSchedulePolicyV2

Name Description Value
dailySchedule Daily schedule of this policy DailySchedule
hourlySchedule hourly schedule of this policy HourlySchedule
schedulePolicyType This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. 'SimpleSchedulePolicyV2' (required)
scheduleRunFrequency Frequency of the schedule operation of this policy. 'Daily'
'Hourly'
'Invalid'
'Weekly'
weeklySchedule Weekly schedule of this policy WeeklySchedule

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

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

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

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

Quickstart samples

The following quickstart samples deploy this resource type.

Bicep File Description
Azure Backup for Workload in Azure Virtual Machines This template creates a Recovery Services Vault and a Workload specific Backup Policy. Registers VM with Backup service and Configures Protection
Backup existing File Share using Recovery Services (Daily) This template configures protection for an existing File Share present in an existing Storage Account. It creates a new or uses an existing Recovery Services Vault and Backup Policy based on the set parameter values.
Backup existing File Share using Recovery Services (hourly) This template configures protection with hourly frequency for an existing File Share present in an existing Storage Account. It creates a new or uses an existing Recovery Services Vault and Backup Policy based on the set parameter values.
Backup Resource Manager VMs using Recovery Services vault This template will use existing recovery services vault and existing backup policy, and configures backup of multiple Resource Manager VMs that belong to same resource group
Create Daily Backup Policy for RS Vault to protect IaaSVMs This template creates Recovery service vault and a Daily Backup Policy that can be used to protect classic and ARM based IaaS VMs.
Create Recovery Services Vault with backup policies This template creates a Recovery Services Vault with backup policies and configure optional features such system identity, backup storage type, cross region restore and diagnostics logs and a delete lock.
Create Weekly Backup Policy for RS Vault to protect IaaSVMs This template creates Recovery service vault and a Daily Backup Policy that can be used to protect classic and ARM based IaaS VMs.

ARM template resource definition

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

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": "2022-03-01",
  "name": "string",
  "eTag": "string",
  "location": "string",
  "properties": {
    "protectedItemsCount": "int",
    "resourceGuardOperationRequests": [ "string" ],
    "backupManagementType": "string"
    // For remaining properties, see ProtectionPolicy objects
  },
  "tags": {
    "{customized property}": "string"
  }
}

RetentionPolicy objects

Set the retentionPolicyType property to specify the type of object.

For LongTermRetentionPolicy, use:

{
  "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" ]
  },
  "retentionPolicyType": "LongTermRetentionPolicy",
  "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:

{
  "retentionDuration": {
    "count": "int",
    "durationType": "string"
  },
  "retentionPolicyType": "SimpleRetentionPolicy"
}

SchedulePolicy objects

Set the schedulePolicyType property to specify the type of object.

For LogSchedulePolicy, use:

{
  "scheduleFrequencyInMins": "int",
  "schedulePolicyType": "LogSchedulePolicy"
}

For LongTermSchedulePolicy, use:

{
  "schedulePolicyType": "LongTermSchedulePolicy"
}

For SimpleSchedulePolicy, use:

{
  "hourlySchedule": {
    "interval": "int",
    "scheduleWindowDuration": "int",
    "scheduleWindowStartTime": "string"
  },
  "schedulePolicyType": "SimpleSchedulePolicy",
  "scheduleRunDays": [ "string" ],
  "scheduleRunFrequency": "string",
  "scheduleRunTimes": [ "string" ],
  "scheduleWeeklyFrequency": "int"
}

For SimpleSchedulePolicyV2, use:

{
  "dailySchedule": {
    "scheduleRunTimes": [ "string" ]
  },
  "hourlySchedule": {
    "interval": "int",
    "scheduleWindowDuration": "int",
    "scheduleWindowStartTime": "string"
  },
  "schedulePolicyType": "SimpleSchedulePolicyV2",
  "scheduleRunFrequency": "string",
  "weeklySchedule": {
    "scheduleRunDays": [ "string" ],
    "scheduleRunTimes": [ "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
  },
  "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
  }
}

Property values

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'
'Sharepoint'
'SQLDataBase'
'SQLDB'
'SystemState'
'VM'
'VMwareVM'

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 Type of backup policy type '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
timeZone TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". string

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

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'
'Sharepoint'
'SQLDataBase'
'SQLDB'
'SystemState'
'VM'
'VMwareVM'

DailyRetentionFormat

Name Description Value
daysOfTheMonth List of days of the month. Day[]

DailyRetentionSchedule

Name Description Value
retentionDuration Retention duration of retention Policy. RetentionDuration
retentionTimes Retention times of retention policy. string[]

DailySchedule

Name Description Value
scheduleRunTimes List of times of day this schedule has to be run. string[]

Day

Name Description Value
date Date of the month int
isLast Whether Date is last date of month bool

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

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

InstantRPAdditionalDetails

Name Description Value
azureBackupRGNamePrefix string
azureBackupRGNameSuffix string

LogSchedulePolicy

Name Description Value
scheduleFrequencyInMins Frequency of the log schedule operation of this policy in minutes. int
schedulePolicyType This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. 'LogSchedulePolicy' (required)

LongTermRetentionPolicy

Name Description Value
dailySchedule Daily retention schedule of the protection policy. DailyRetentionSchedule
monthlySchedule Monthly retention schedule of the protection policy. MonthlyRetentionSchedule
retentionPolicyType This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. 'LongTermRetentionPolicy' (required)
weeklySchedule Weekly retention schedule of the protection policy. WeeklyRetentionSchedule
yearlySchedule Yearly retention schedule of the protection policy. YearlyRetentionSchedule

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)

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

Microsoft.RecoveryServices/vaults/backupPolicies

Name Description Value
apiVersion The api version '2022-03-01'
eTag Optional ETag. string
location Resource location. string
name The resource name string (required)
properties ProtectionPolicyResource properties ProtectionPolicy
tags Resource tags Dictionary of tag names and values. See Tags in templates
type The resource type 'Microsoft.RecoveryServices/vaults/backupPolicies'

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

ProtectionPolicy

Name Description Value
backupManagementType Set to 'AzureIaasVM' for type AzureIaaSVMProtectionPolicy. Set to 'AzureSql' for type AzureSqlProtectionPolicy. Set to 'AzureStorage' for type AzureFileShareProtectionPolicy. Set to 'AzureWorkload' for type AzureVmWorkloadProtectionPolicy. Set to 'GenericProtectionPolicy' for type GenericProtectionPolicy. Set to 'MAB' for type MabProtectionPolicy. 'AzureIaasVM'
'AzureSql'
'AzureStorage'
'AzureWorkload'
'GenericProtectionPolicy'
'MAB' (required)
protectedItemsCount Number of items associated with this policy. int
resourceGuardOperationRequests ResourceGuard Operation Requests string[]

ResourceTags

Name Description Value

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'

RetentionPolicy

Name Description Value
retentionPolicyType Set to 'LongTermRetentionPolicy' for type LongTermRetentionPolicy. Set to 'SimpleRetentionPolicy' for type SimpleRetentionPolicy. 'LongTermRetentionPolicy'
'SimpleRetentionPolicy' (required)

SchedulePolicy

Name Description Value
schedulePolicyType Set to 'LogSchedulePolicy' for type LogSchedulePolicy. Set to 'LongTermSchedulePolicy' for type LongTermSchedulePolicy. Set to 'SimpleSchedulePolicy' for type SimpleSchedulePolicy. Set to 'SimpleSchedulePolicyV2' for type SimpleSchedulePolicyV2. 'LogSchedulePolicy'
'LongTermSchedulePolicy'
'SimpleSchedulePolicy'
'SimpleSchedulePolicyV2' (required)

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

SimpleRetentionPolicy

Name Description Value
retentionDuration Retention duration of the protection policy. RetentionDuration
retentionPolicyType This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. 'SimpleRetentionPolicy' (required)

SimpleSchedulePolicy

Name Description Value
hourlySchedule Hourly Schedule of this Policy HourlySchedule
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'
'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

SimpleSchedulePolicyV2

Name Description Value
dailySchedule Daily schedule of this policy DailySchedule
hourlySchedule hourly schedule of this policy HourlySchedule
schedulePolicyType This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. 'SimpleSchedulePolicyV2' (required)
scheduleRunFrequency Frequency of the schedule operation of this policy. 'Daily'
'Hourly'
'Invalid'
'Weekly'
weeklySchedule Weekly schedule of this policy WeeklySchedule

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

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

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

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

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
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
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 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.
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 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@2022-03-01"
  name = "string"
  eTag = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = jsonencode({
    properties = {
      protectedItemsCount = int
      resourceGuardOperationRequests = [
        "string"
      ]
      backupManagementType = "string"
      // For remaining properties, see ProtectionPolicy objects
    }
  })
}

RetentionPolicy objects

Set the retentionPolicyType property to specify the type of object.

For LongTermRetentionPolicy, use:

{
  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"
    ]
  }
  retentionPolicyType = "LongTermRetentionPolicy"
  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:

{
  retentionDuration = {
    count = int
    durationType = "string"
  }
  retentionPolicyType = "SimpleRetentionPolicy"
}

SchedulePolicy objects

Set the schedulePolicyType property to specify the type of object.

For LogSchedulePolicy, use:

{
  scheduleFrequencyInMins = int
  schedulePolicyType = "LogSchedulePolicy"
}

For LongTermSchedulePolicy, use:

{
  schedulePolicyType = "LongTermSchedulePolicy"
}

For SimpleSchedulePolicy, use:

{
  hourlySchedule = {
    interval = int
    scheduleWindowDuration = int
    scheduleWindowStartTime = "string"
  }
  schedulePolicyType = "SimpleSchedulePolicy"
  scheduleRunDays = [
    "string"
  ]
  scheduleRunFrequency = "string"
  scheduleRunTimes = [
    "string"
  ]
  scheduleWeeklyFrequency = int
}

For SimpleSchedulePolicyV2, use:

{
  dailySchedule = {
    scheduleRunTimes = [
      "string"
    ]
  }
  hourlySchedule = {
    interval = int
    scheduleWindowDuration = int
    scheduleWindowStartTime = "string"
  }
  schedulePolicyType = "SimpleSchedulePolicyV2"
  scheduleRunFrequency = "string"
  weeklySchedule = {
    scheduleRunDays = [
      "string"
    ]
    scheduleRunTimes = [
      "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
  }
  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
  }
}

Property values

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'
'Sharepoint'
'SQLDataBase'
'SQLDB'
'SystemState'
'VM'
'VMwareVM'

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 Type of backup policy type '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
timeZone TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". string

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

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'
'Sharepoint'
'SQLDataBase'
'SQLDB'
'SystemState'
'VM'
'VMwareVM'

DailyRetentionFormat

Name Description Value
daysOfTheMonth List of days of the month. Day[]

DailyRetentionSchedule

Name Description Value
retentionDuration Retention duration of retention Policy. RetentionDuration
retentionTimes Retention times of retention policy. string[]

DailySchedule

Name Description Value
scheduleRunTimes List of times of day this schedule has to be run. string[]

Day

Name Description Value
date Date of the month int
isLast Whether Date is last date of month bool

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

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

InstantRPAdditionalDetails

Name Description Value
azureBackupRGNamePrefix string
azureBackupRGNameSuffix string

LogSchedulePolicy

Name Description Value
scheduleFrequencyInMins Frequency of the log schedule operation of this policy in minutes. int
schedulePolicyType This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. 'LogSchedulePolicy' (required)

LongTermRetentionPolicy

Name Description Value
dailySchedule Daily retention schedule of the protection policy. DailyRetentionSchedule
monthlySchedule Monthly retention schedule of the protection policy. MonthlyRetentionSchedule
retentionPolicyType This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. 'LongTermRetentionPolicy' (required)
weeklySchedule Weekly retention schedule of the protection policy. WeeklyRetentionSchedule
yearlySchedule Yearly retention schedule of the protection policy. YearlyRetentionSchedule

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)

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

Microsoft.RecoveryServices/vaults/backupPolicies

Name Description Value
eTag Optional ETag. string
location Resource location. string
name The resource name string (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: vaults
properties ProtectionPolicyResource properties ProtectionPolicy
tags Resource tags Dictionary of tag names and values.
type The resource type "Microsoft.RecoveryServices/vaults/backupPolicies@2022-03-01"

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

ProtectionPolicy

Name Description Value
backupManagementType Set to 'AzureIaasVM' for type AzureIaaSVMProtectionPolicy. Set to 'AzureSql' for type AzureSqlProtectionPolicy. Set to 'AzureStorage' for type AzureFileShareProtectionPolicy. Set to 'AzureWorkload' for type AzureVmWorkloadProtectionPolicy. Set to 'GenericProtectionPolicy' for type GenericProtectionPolicy. Set to 'MAB' for type MabProtectionPolicy. 'AzureIaasVM'
'AzureSql'
'AzureStorage'
'AzureWorkload'
'GenericProtectionPolicy'
'MAB' (required)
protectedItemsCount Number of items associated with this policy. int
resourceGuardOperationRequests ResourceGuard Operation Requests string[]

ResourceTags

Name Description Value

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'

RetentionPolicy

Name Description Value
retentionPolicyType Set to 'LongTermRetentionPolicy' for type LongTermRetentionPolicy. Set to 'SimpleRetentionPolicy' for type SimpleRetentionPolicy. 'LongTermRetentionPolicy'
'SimpleRetentionPolicy' (required)

SchedulePolicy

Name Description Value
schedulePolicyType Set to 'LogSchedulePolicy' for type LogSchedulePolicy. Set to 'LongTermSchedulePolicy' for type LongTermSchedulePolicy. Set to 'SimpleSchedulePolicy' for type SimpleSchedulePolicy. Set to 'SimpleSchedulePolicyV2' for type SimpleSchedulePolicyV2. 'LogSchedulePolicy'
'LongTermSchedulePolicy'
'SimpleSchedulePolicy'
'SimpleSchedulePolicyV2' (required)

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

SimpleRetentionPolicy

Name Description Value
retentionDuration Retention duration of the protection policy. RetentionDuration
retentionPolicyType This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. 'SimpleRetentionPolicy' (required)

SimpleSchedulePolicy

Name Description Value
hourlySchedule Hourly Schedule of this Policy HourlySchedule
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'
'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

SimpleSchedulePolicyV2

Name Description Value
dailySchedule Daily schedule of this policy DailySchedule
hourlySchedule hourly schedule of this policy HourlySchedule
schedulePolicyType This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. 'SimpleSchedulePolicyV2' (required)
scheduleRunFrequency Frequency of the schedule operation of this policy. 'Daily'
'Hourly'
'Invalid'
'Weekly'
weeklySchedule Weekly schedule of this policy WeeklySchedule

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

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

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

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