Microsoft.RecoveryServices vaults/replicationProtectionIntents 2021-04-01

The vaults/replicationProtectionIntents resource type can be deployed to: Resource groups.

To learn about resource group deployments, see Bicep or ARM template.

Template format

To create a Microsoft.RecoveryServices/vaults/replicationProtectionIntents resource, add the following Bicep or JSON to your template.

resource symbolicname 'Microsoft.RecoveryServices/vaults/replicationProtectionIntents@2021-04-01' = {
  name: 'string'
  properties: {
    providerSpecificDetails: {
      instanceType: 'string'
      // For remaining properties, see CreateProtectionIntentProviderSpecificDetails objects
    }
  }
}

CreateProtectionIntentProviderSpecificDetails objects

Set the instanceType property to specify the type of object.

For A2A, use:

  instanceType: 'A2A'
  autoProtectionOfDataDisk: 'string'
  diskEncryptionInfo: {
    diskEncryptionKeyInfo: {
      keyVaultResourceArmId: 'string'
      secretIdentifier: 'string'
    }
    keyEncryptionKeyInfo: {
      keyIdentifier: 'string'
      keyVaultResourceArmId: 'string'
    }
  }
  fabricObjectId: 'string'
  multiVmGroupId: 'string'
  multiVmGroupName: 'string'
  primaryLocation: 'string'
  primaryStagingStorageAccountCustomInput: {
    resourceType: 'string'
    // For remaining properties, see StorageAccountCustomDetails objects
  }
  protectionProfileCustomInput: {
    resourceType: 'string'
    // For remaining properties, see ProtectionProfileCustomDetails objects
  }
  recoveryAvailabilitySetCustomInput: {
    resourceType: 'string'
    // For remaining properties, see RecoveryAvailabilitySetCustomDetails objects
  }
  recoveryAvailabilityType: 'string'
  recoveryAvailabilityZone: 'string'
  recoveryBootDiagStorageAccount: {
    resourceType: 'string'
    // For remaining properties, see StorageAccountCustomDetails objects
  }
  recoveryLocation: 'string'
  recoveryProximityPlacementGroupCustomInput: {
    resourceType: 'string'
    // For remaining properties, see RecoveryProximityPlacementGroupCustomDetails objects
  }
  recoveryResourceGroupId: 'string'
  recoverySubscriptionId: 'string'
  recoveryVirtualNetworkCustomInput: {
    resourceType: 'string'
    // For remaining properties, see RecoveryVirtualNetworkCustomDetails objects
  }
  vmDisks: [
    {
      diskUri: 'string'
      primaryStagingStorageAccountCustomInput: {
        resourceType: 'string'
        // For remaining properties, see StorageAccountCustomDetails objects
      }
      recoveryAzureStorageAccountCustomInput: {
        resourceType: 'string'
        // For remaining properties, see StorageAccountCustomDetails objects
      }
    }
  ]
  vmManagedDisks: [
    {
      diskEncryptionInfo: {
        diskEncryptionKeyInfo: {
          keyVaultResourceArmId: 'string'
          secretIdentifier: 'string'
        }
        keyEncryptionKeyInfo: {
          keyIdentifier: 'string'
          keyVaultResourceArmId: 'string'
        }
      }
      diskId: 'string'
      primaryStagingStorageAccountCustomInput: {
        resourceType: 'string'
        // For remaining properties, see StorageAccountCustomDetails objects
      }
      recoveryDiskEncryptionSetId: 'string'
      recoveryReplicaDiskAccountType: 'string'
      recoveryResourceGroupCustomInput: {
        resourceType: 'string'
        // For remaining properties, see RecoveryResourceGroupCustomDetails objects
      }
      recoveryTargetDiskAccountType: 'string'
    }
  ]

StorageAccountCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

  resourceType: 'Existing'
  azureStorageAccountId: 'string'

ProtectionProfileCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

  resourceType: 'Existing'
  protectionProfileId: 'string'

For New, use:

  resourceType: 'New'
  appConsistentFrequencyInMinutes: int
  crashConsistentFrequencyInMinutes: int
  multiVmSyncStatus: 'string'
  policyName: 'string'
  recoveryPointHistory: int

RecoveryAvailabilitySetCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

  resourceType: 'Existing'
  recoveryAvailabilitySetId: 'string'

RecoveryProximityPlacementGroupCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

  resourceType: 'Existing'
  recoveryProximityPlacementGroupId: 'string'

RecoveryVirtualNetworkCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

  resourceType: 'Existing'
  recoverySubnetName: 'string'
  recoveryVirtualNetworkId: 'string'

For New, use:

  resourceType: 'New'
  recoveryVirtualNetworkName: 'string'
  recoveryVirtualNetworkResourceGroupName: 'string'

RecoveryResourceGroupCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

  resourceType: 'Existing'
  recoveryResourceGroupId: 'string'

Property values

vaults/replicationProtectionIntents

Name Description Value
type The resource type

For Bicep, set this value in the resource declaration.
'Microsoft.RecoveryServices/vaults/replicationProtectionIntents'
apiVersion The resource api version

For Bicep, set this value in the resource declaration.
'2021-04-01'
name The resource name

See how to set names and types for child resources in Bicep or JSON ARM templates.
string (required)
properties Create protection intent input properties. CreateProtectionIntentProperties

CreateProtectionIntentProperties

Name Description Value
providerSpecificDetails Create protection intent provider specific input. CreateProtectionIntentProviderSpecificDetails

CreateProtectionIntentProviderSpecificDetails

Name Description Value
instanceType Set the object type A2A

A2ACreateProtectionIntentInput

Name Description Value
instanceType The class type. 'A2A'
autoProtectionOfDataDisk A value indicating whether the auto protection is enabled. 'Disabled'
'Enabled'
diskEncryptionInfo Recovery disk encryption info (BEK and KEK). DiskEncryptionInfo
fabricObjectId The fabric specific object Id of the virtual machine. string (required)
multiVmGroupId The multi vm group id. string
multiVmGroupName The multi vm group name. string
primaryLocation The primary location for the virtual machine. string (required)
primaryStagingStorageAccountCustomInput Storage account custom input. StorageAccountCustomDetails
protectionProfileCustomInput Protection Profile custom input. ProtectionProfileCustomDetails
recoveryAvailabilitySetCustomInput Recovery Availability Set custom input. RecoveryAvailabilitySetCustomDetails
recoveryAvailabilityType The recovery availability type of the virtual machine. 'AvailabilitySet'
'AvailabilityZone'
'Single'
recoveryAvailabilityZone The recovery availability zone. string
recoveryBootDiagStorageAccount Storage account custom input. StorageAccountCustomDetails
recoveryLocation The recovery location for the virtual machine. string (required)
recoveryProximityPlacementGroupCustomInput Recovery Proximity placement group custom input. RecoveryProximityPlacementGroupCustomDetails
recoveryResourceGroupId The recovery resource group Id. Valid for V2 scenarios. string (required)
recoverySubscriptionId The recovery subscription Id of the virtual machine. string (required)
recoveryVirtualNetworkCustomInput Recovery Virtual network custom input. RecoveryVirtualNetworkCustomDetails
vmDisks The list of vm disk inputs. A2AProtectionIntentDiskInputDetails[]
vmManagedDisks The list of vm managed disk inputs. A2AProtectionIntentManagedDiskInputDetails[]

DiskEncryptionInfo

Name Description Value
diskEncryptionKeyInfo Disk Encryption Key Information (BitLocker Encryption Key (BEK) on Windows). DiskEncryptionKeyInfo
keyEncryptionKeyInfo Key Encryption Key (KEK) information. KeyEncryptionKeyInfo

DiskEncryptionKeyInfo

Name Description Value
keyVaultResourceArmId The KeyVault resource ARM id for secret. string
secretIdentifier The secret url / identifier. string

KeyEncryptionKeyInfo

Name Description Value
keyIdentifier The key URL / identifier. string
keyVaultResourceArmId The KeyVault resource ARM Id for key. string

StorageAccountCustomDetails

Name Description Value
resourceType Set the object type Existing

ExistingStorageAccount

Name Description Value
resourceType The class type. 'Existing'
azureStorageAccountId The storage account Arm Id. Throw error, if resource does not exists. string (required)

ProtectionProfileCustomDetails

Name Description Value
resourceType Set the object type Existing
New

ExistingProtectionProfile

Name Description Value
resourceType The class type. 'Existing'
protectionProfileId The protection profile Arm Id. Throw error, if resource does not exists. string (required)

NewProtectionProfile

Name Description Value
resourceType The class type. 'New'
appConsistentFrequencyInMinutes The app consistent snapshot frequency (in minutes). int
crashConsistentFrequencyInMinutes The crash consistent snapshot frequency (in minutes). int
multiVmSyncStatus A value indicating whether multi-VM sync has to be enabled. Value should be 'Enabled' or 'Disabled'. 'Disable'
'Enable'
policyName The protection profile input. string (required)
recoveryPointHistory The duration in minutes until which the recovery points need to be stored. int

RecoveryAvailabilitySetCustomDetails

Name Description Value
resourceType Set the object type Existing

ExistingRecoveryAvailabilitySet

Name Description Value
resourceType The class type. 'Existing'
recoveryAvailabilitySetId The recovery availability set Id. Will throw error, if resource does not exist. string

RecoveryProximityPlacementGroupCustomDetails

Name Description Value
resourceType Set the object type Existing

ExistingRecoveryProximityPlacementGroup

Name Description Value
resourceType The class type. 'Existing'
recoveryProximityPlacementGroupId The recovery proximity placement group Id. Will throw error, if resource does not exist. string

RecoveryVirtualNetworkCustomDetails

Name Description Value
resourceType Set the object type Existing
New

ExistingRecoveryVirtualNetwork

Name Description Value
resourceType The class type. 'Existing'
recoverySubnetName The recovery subnet name. string
recoveryVirtualNetworkId The recovery virtual network Id. Will throw error, if resource does not exist. string (required)

NewRecoveryVirtualNetwork

Name Description Value
resourceType The class type. 'New'
recoveryVirtualNetworkName The recovery virtual network name. string
recoveryVirtualNetworkResourceGroupName The name of the resource group to be used to create the recovery virtual network. If absent, target network would be created in the same resource group as target VM. string

A2AProtectionIntentDiskInputDetails

Name Description Value
diskUri The disk Uri. string (required)
primaryStagingStorageAccountCustomInput Storage account custom input. StorageAccountCustomDetails
recoveryAzureStorageAccountCustomInput Storage account custom input. StorageAccountCustomDetails

A2AProtectionIntentManagedDiskInputDetails

Name Description Value
diskEncryptionInfo Recovery disk encryption info (BEK and KEK). DiskEncryptionInfo
diskId The disk Id. string (required)
primaryStagingStorageAccountCustomInput Storage account custom input. StorageAccountCustomDetails
recoveryDiskEncryptionSetId The recovery disk encryption set Id. string
recoveryReplicaDiskAccountType The replica disk type. Its an optional value and will be same as source disk type if not user provided. string
recoveryResourceGroupCustomInput Recovery Resource Group custom input. RecoveryResourceGroupCustomDetails
recoveryTargetDiskAccountType The target disk type after failover. Its an optional value and will be same as source disk type if not user provided. string

RecoveryResourceGroupCustomDetails

Name Description Value
resourceType Set the object type Existing

ExistingRecoveryResourceGroup

Name Description Value
resourceType The class type. 'Existing'
recoveryResourceGroupId The recovery resource group Id. Valid for V2 scenarios. string