Microsoft.RecoveryServices vaults/replicationProtectionIntents 2021-02-10

Bicep resource definition

The vaults/replicationProtectionIntents 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/replicationProtectionIntents resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.RecoveryServices/vaults/replicationProtectionIntents@2021-02-10' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    providerSpecificDetails: {
      instanceType: 'string'
      // For remaining properties, see CreateProtectionIntentProviderSpecificDetailsOrReplicationProtectionIntentProviderSpecificSettings objects
    }
  }
}

RecoveryVirtualNetworkCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  recoverySubnetName: 'string'
  recoveryVirtualNetworkId: 'string'
  resourceType: 'Existing'
}

For New, use:

{
  recoveryVirtualNetworkName: 'string'
  recoveryVirtualNetworkResourceGroupName: 'string'
  resourceType: 'New'
}

ProtectionProfileCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  protectionProfileId: 'string'
  resourceType: 'Existing'
}

For New, use:

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

RecoveryResourceGroupCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  recoveryResourceGroupId: 'string'
  resourceType: 'Existing'
}

RecoveryAvailabilitySetCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  recoveryAvailabilitySetId: 'string'
  resourceType: 'Existing'
}

RecoveryProximityPlacementGroupCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  recoveryProximityPlacementGroupId: 'string'
  resourceType: 'Existing'
}

CreateProtectionIntentProviderSpecificDetailsOrReplicationProtectionIntentProviderSpecificSettings objects

Set the instanceType property to specify the type of object.

For A2A, use:

{
  autoProtectionOfDataDisk: 'string'
  diskEncryptionInfo: {
    diskEncryptionKeyInfo: {
      keyVaultResourceArmId: 'string'
      secretIdentifier: 'string'
    }
    keyEncryptionKeyInfo: {
      keyIdentifier: 'string'
      keyVaultResourceArmId: 'string'
    }
  }
  fabricObjectId: 'string'
  instanceType: 'A2A'
  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:

{
  azureStorageAccountId: 'string'
  resourceType: 'Existing'
}

Property values

A2ACreateProtectionIntentInputOrA2AReplicationIntentDetails

Name Description Value
autoProtectionOfDataDisk A value indicating whether the auto protection is enabled. 'Disabled'
'Enabled'
diskEncryptionInfo The recovery disk encryption information (for two pass flows). DiskEncryptionInfo
fabricObjectId The fabric specific object Id of the virtual machine. string (required)
instanceType The class type. 'A2A' (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 The primary staging storage account input. StorageAccountCustomDetails
protectionProfileCustomInput The protection profile custom inputs. ProtectionProfileCustomDetails
recoveryAvailabilitySetCustomInput The recovery availability set input. RecoveryAvailabilitySetCustomDetails
recoveryAvailabilityType The recovery availability type of the virtual machine. 'AvailabilitySet'
'AvailabilityZone'
'Single' (required)
recoveryAvailabilityZone The recovery availability zone. string
recoveryBootDiagStorageAccount The boot diagnostic storage account. StorageAccountCustomDetails
recoveryLocation The recovery location for the virtual machine. string (required)
recoveryProximityPlacementGroupCustomInput The 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 The recovery virtual network input. RecoveryVirtualNetworkCustomDetails
vmDisks The list of vm disk inputs. A2AProtectionIntentDiskInputDetails[]
vmManagedDisks The list of vm managed disk inputs. A2AProtectionIntentManagedDiskInputDetails[]

A2AProtectionIntentDiskInputDetails

Name Description Value
diskUri The disk Uri. string (required)
primaryStagingStorageAccountCustomInput The primary staging storage account input. StorageAccountCustomDetails
recoveryAzureStorageAccountCustomInput The recovery VHD storage account input. StorageAccountCustomDetails

A2AProtectionIntentManagedDiskInputDetails

Name Description Value
diskEncryptionInfo The recovery disk encryption information (for one / single pass flows). DiskEncryptionInfo
diskId The disk Id. string (required)
primaryStagingStorageAccountCustomInput The primary staging storage account 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 The recovery resource group 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

CreateProtectionIntentPropertiesOrReplicationProtectionIntentProperties

Name Description Value
providerSpecificDetails The ReplicationProviderInput. For A2A provider, it will be A2ACreateProtectionIntentInput object. CreateProtectionIntentProviderSpecificDetailsOrReplicationProtectionIntentProviderSpecificSettings

CreateProtectionIntentProviderSpecificDetailsOrReplicationProtectionIntentProviderSpecificSettings

Name Description Value
instanceType Set to 'A2A' for type A2ACreateProtectionIntentInputOrA2AReplicationIntentDetails. 'A2A' (required)

DiskEncryptionInfo

Name Description Value
diskEncryptionKeyInfo The recovery KeyVault reference for secret. DiskEncryptionKeyInfo
keyEncryptionKeyInfo The recovery KeyVault reference for key. KeyEncryptionKeyInfo

DiskEncryptionKeyInfo

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

ExistingProtectionProfile

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

ExistingRecoveryAvailabilitySet

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

ExistingRecoveryProximityPlacementGroup

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

ExistingRecoveryResourceGroup

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

ExistingRecoveryVirtualNetwork

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

ExistingStorageAccount

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

KeyEncryptionKeyInfo

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

Microsoft.RecoveryServices/vaults/replicationProtectionIntents

Name Description Value
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 Create protection intent input properties. CreateProtectionIntentPropertiesOrReplicationProtectionIntentProperties

NewProtectionProfile

Name Description Value
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' (required)
policyName The protection profile input. string (required)
recoveryPointHistory The duration in minutes until which the recovery points need to be stored. int
resourceType The class type. 'New' (required)

NewRecoveryVirtualNetwork

Name Description Value
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
resourceType The class type. 'New' (required)

ProtectionProfileCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingProtectionProfile. Set to 'New' for type NewProtectionProfile. 'Existing'
'New' (required)

RecoveryAvailabilitySetCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingRecoveryAvailabilitySet. 'Existing' (required)

RecoveryProximityPlacementGroupCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingRecoveryProximityPlacementGroup. 'Existing' (required)

RecoveryResourceGroupCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingRecoveryResourceGroup. 'Existing' (required)

RecoveryVirtualNetworkCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingRecoveryVirtualNetwork. Set to 'New' for type NewRecoveryVirtualNetwork. 'Existing'
'New' (required)

StorageAccountCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingStorageAccount. 'Existing' (required)

ARM template resource definition

The vaults/replicationProtectionIntents 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/replicationProtectionIntents resource, add the following JSON to your template.

{
  "type": "Microsoft.RecoveryServices/vaults/replicationProtectionIntents",
  "apiVersion": "2021-02-10",
  "name": "string",
  "properties": {
    "providerSpecificDetails": {
      "instanceType": "string"
      // For remaining properties, see CreateProtectionIntentProviderSpecificDetailsOrReplicationProtectionIntentProviderSpecificSettings objects
    }
  }
}

RecoveryVirtualNetworkCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  "recoverySubnetName": "string",
  "recoveryVirtualNetworkId": "string",
  "resourceType": "Existing"
}

For New, use:

{
  "recoveryVirtualNetworkName": "string",
  "recoveryVirtualNetworkResourceGroupName": "string",
  "resourceType": "New"
}

ProtectionProfileCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  "protectionProfileId": "string",
  "resourceType": "Existing"
}

For New, use:

{
  "appConsistentFrequencyInMinutes": "int",
  "crashConsistentFrequencyInMinutes": "int",
  "multiVmSyncStatus": "string",
  "policyName": "string",
  "recoveryPointHistory": "int",
  "resourceType": "New"
}

RecoveryResourceGroupCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  "recoveryResourceGroupId": "string",
  "resourceType": "Existing"
}

RecoveryAvailabilitySetCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  "recoveryAvailabilitySetId": "string",
  "resourceType": "Existing"
}

RecoveryProximityPlacementGroupCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  "recoveryProximityPlacementGroupId": "string",
  "resourceType": "Existing"
}

CreateProtectionIntentProviderSpecificDetailsOrReplicationProtectionIntentProviderSpecificSettings objects

Set the instanceType property to specify the type of object.

For A2A, use:

{
  "autoProtectionOfDataDisk": "string",
  "diskEncryptionInfo": {
    "diskEncryptionKeyInfo": {
      "keyVaultResourceArmId": "string",
      "secretIdentifier": "string"
    },
    "keyEncryptionKeyInfo": {
      "keyIdentifier": "string",
      "keyVaultResourceArmId": "string"
    }
  },
  "fabricObjectId": "string",
  "instanceType": "A2A",
  "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:

{
  "azureStorageAccountId": "string",
  "resourceType": "Existing"
}

Property values

A2ACreateProtectionIntentInputOrA2AReplicationIntentDetails

Name Description Value
autoProtectionOfDataDisk A value indicating whether the auto protection is enabled. 'Disabled'
'Enabled'
diskEncryptionInfo The recovery disk encryption information (for two pass flows). DiskEncryptionInfo
fabricObjectId The fabric specific object Id of the virtual machine. string (required)
instanceType The class type. 'A2A' (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 The primary staging storage account input. StorageAccountCustomDetails
protectionProfileCustomInput The protection profile custom inputs. ProtectionProfileCustomDetails
recoveryAvailabilitySetCustomInput The recovery availability set input. RecoveryAvailabilitySetCustomDetails
recoveryAvailabilityType The recovery availability type of the virtual machine. 'AvailabilitySet'
'AvailabilityZone'
'Single' (required)
recoveryAvailabilityZone The recovery availability zone. string
recoveryBootDiagStorageAccount The boot diagnostic storage account. StorageAccountCustomDetails
recoveryLocation The recovery location for the virtual machine. string (required)
recoveryProximityPlacementGroupCustomInput The 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 The recovery virtual network input. RecoveryVirtualNetworkCustomDetails
vmDisks The list of vm disk inputs. A2AProtectionIntentDiskInputDetails[]
vmManagedDisks The list of vm managed disk inputs. A2AProtectionIntentManagedDiskInputDetails[]

A2AProtectionIntentDiskInputDetails

Name Description Value
diskUri The disk Uri. string (required)
primaryStagingStorageAccountCustomInput The primary staging storage account input. StorageAccountCustomDetails
recoveryAzureStorageAccountCustomInput The recovery VHD storage account input. StorageAccountCustomDetails

A2AProtectionIntentManagedDiskInputDetails

Name Description Value
diskEncryptionInfo The recovery disk encryption information (for one / single pass flows). DiskEncryptionInfo
diskId The disk Id. string (required)
primaryStagingStorageAccountCustomInput The primary staging storage account 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 The recovery resource group 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

CreateProtectionIntentPropertiesOrReplicationProtectionIntentProperties

Name Description Value
providerSpecificDetails The ReplicationProviderInput. For A2A provider, it will be A2ACreateProtectionIntentInput object. CreateProtectionIntentProviderSpecificDetailsOrReplicationProtectionIntentProviderSpecificSettings

CreateProtectionIntentProviderSpecificDetailsOrReplicationProtectionIntentProviderSpecificSettings

Name Description Value
instanceType Set to 'A2A' for type A2ACreateProtectionIntentInputOrA2AReplicationIntentDetails. 'A2A' (required)

DiskEncryptionInfo

Name Description Value
diskEncryptionKeyInfo The recovery KeyVault reference for secret. DiskEncryptionKeyInfo
keyEncryptionKeyInfo The recovery KeyVault reference for key. KeyEncryptionKeyInfo

DiskEncryptionKeyInfo

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

ExistingProtectionProfile

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

ExistingRecoveryAvailabilitySet

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

ExistingRecoveryProximityPlacementGroup

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

ExistingRecoveryResourceGroup

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

ExistingRecoveryVirtualNetwork

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

ExistingStorageAccount

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

KeyEncryptionKeyInfo

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

Microsoft.RecoveryServices/vaults/replicationProtectionIntents

Name Description Value
apiVersion The api version '2021-02-10'
name The resource name string (required)
properties Create protection intent input properties. CreateProtectionIntentPropertiesOrReplicationProtectionIntentProperties
type The resource type 'Microsoft.RecoveryServices/vaults/replicationProtectionIntents'

NewProtectionProfile

Name Description Value
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' (required)
policyName The protection profile input. string (required)
recoveryPointHistory The duration in minutes until which the recovery points need to be stored. int
resourceType The class type. 'New' (required)

NewRecoveryVirtualNetwork

Name Description Value
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
resourceType The class type. 'New' (required)

ProtectionProfileCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingProtectionProfile. Set to 'New' for type NewProtectionProfile. 'Existing'
'New' (required)

RecoveryAvailabilitySetCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingRecoveryAvailabilitySet. 'Existing' (required)

RecoveryProximityPlacementGroupCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingRecoveryProximityPlacementGroup. 'Existing' (required)

RecoveryResourceGroupCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingRecoveryResourceGroup. 'Existing' (required)

RecoveryVirtualNetworkCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingRecoveryVirtualNetwork. Set to 'New' for type NewRecoveryVirtualNetwork. 'Existing'
'New' (required)

StorageAccountCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingStorageAccount. 'Existing' (required)

Terraform (AzAPI provider) resource definition

The vaults/replicationProtectionIntents 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/replicationProtectionIntents resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.RecoveryServices/vaults/replicationProtectionIntents@2021-02-10"
  name = "string"
  body = jsonencode({
    properties = {
      providerSpecificDetails = {
        instanceType = "string"
        // For remaining properties, see CreateProtectionIntentProviderSpecificDetailsOrReplicationProtectionIntentProviderSpecificSettings objects
      }
    }
  })
}

RecoveryVirtualNetworkCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  recoverySubnetName = "string"
  recoveryVirtualNetworkId = "string"
  resourceType = "Existing"
}

For New, use:

{
  recoveryVirtualNetworkName = "string"
  recoveryVirtualNetworkResourceGroupName = "string"
  resourceType = "New"
}

ProtectionProfileCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  protectionProfileId = "string"
  resourceType = "Existing"
}

For New, use:

{
  appConsistentFrequencyInMinutes = int
  crashConsistentFrequencyInMinutes = int
  multiVmSyncStatus = "string"
  policyName = "string"
  recoveryPointHistory = int
  resourceType = "New"
}

RecoveryResourceGroupCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  recoveryResourceGroupId = "string"
  resourceType = "Existing"
}

RecoveryAvailabilitySetCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  recoveryAvailabilitySetId = "string"
  resourceType = "Existing"
}

RecoveryProximityPlacementGroupCustomDetails objects

Set the resourceType property to specify the type of object.

For Existing, use:

{
  recoveryProximityPlacementGroupId = "string"
  resourceType = "Existing"
}

CreateProtectionIntentProviderSpecificDetailsOrReplicationProtectionIntentProviderSpecificSettings objects

Set the instanceType property to specify the type of object.

For A2A, use:

{
  autoProtectionOfDataDisk = "string"
  diskEncryptionInfo = {
    diskEncryptionKeyInfo = {
      keyVaultResourceArmId = "string"
      secretIdentifier = "string"
    }
    keyEncryptionKeyInfo = {
      keyIdentifier = "string"
      keyVaultResourceArmId = "string"
    }
  }
  fabricObjectId = "string"
  instanceType = "A2A"
  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:

{
  azureStorageAccountId = "string"
  resourceType = "Existing"
}

Property values

A2ACreateProtectionIntentInputOrA2AReplicationIntentDetails

Name Description Value
autoProtectionOfDataDisk A value indicating whether the auto protection is enabled. 'Disabled'
'Enabled'
diskEncryptionInfo The recovery disk encryption information (for two pass flows). DiskEncryptionInfo
fabricObjectId The fabric specific object Id of the virtual machine. string (required)
instanceType The class type. 'A2A' (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 The primary staging storage account input. StorageAccountCustomDetails
protectionProfileCustomInput The protection profile custom inputs. ProtectionProfileCustomDetails
recoveryAvailabilitySetCustomInput The recovery availability set input. RecoveryAvailabilitySetCustomDetails
recoveryAvailabilityType The recovery availability type of the virtual machine. 'AvailabilitySet'
'AvailabilityZone'
'Single' (required)
recoveryAvailabilityZone The recovery availability zone. string
recoveryBootDiagStorageAccount The boot diagnostic storage account. StorageAccountCustomDetails
recoveryLocation The recovery location for the virtual machine. string (required)
recoveryProximityPlacementGroupCustomInput The 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 The recovery virtual network input. RecoveryVirtualNetworkCustomDetails
vmDisks The list of vm disk inputs. A2AProtectionIntentDiskInputDetails[]
vmManagedDisks The list of vm managed disk inputs. A2AProtectionIntentManagedDiskInputDetails[]

A2AProtectionIntentDiskInputDetails

Name Description Value
diskUri The disk Uri. string (required)
primaryStagingStorageAccountCustomInput The primary staging storage account input. StorageAccountCustomDetails
recoveryAzureStorageAccountCustomInput The recovery VHD storage account input. StorageAccountCustomDetails

A2AProtectionIntentManagedDiskInputDetails

Name Description Value
diskEncryptionInfo The recovery disk encryption information (for one / single pass flows). DiskEncryptionInfo
diskId The disk Id. string (required)
primaryStagingStorageAccountCustomInput The primary staging storage account 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 The recovery resource group 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

CreateProtectionIntentPropertiesOrReplicationProtectionIntentProperties

Name Description Value
providerSpecificDetails The ReplicationProviderInput. For A2A provider, it will be A2ACreateProtectionIntentInput object. CreateProtectionIntentProviderSpecificDetailsOrReplicationProtectionIntentProviderSpecificSettings

CreateProtectionIntentProviderSpecificDetailsOrReplicationProtectionIntentProviderSpecificSettings

Name Description Value
instanceType Set to 'A2A' for type A2ACreateProtectionIntentInputOrA2AReplicationIntentDetails. 'A2A' (required)

DiskEncryptionInfo

Name Description Value
diskEncryptionKeyInfo The recovery KeyVault reference for secret. DiskEncryptionKeyInfo
keyEncryptionKeyInfo The recovery KeyVault reference for key. KeyEncryptionKeyInfo

DiskEncryptionKeyInfo

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

ExistingProtectionProfile

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

ExistingRecoveryAvailabilitySet

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

ExistingRecoveryProximityPlacementGroup

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

ExistingRecoveryResourceGroup

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

ExistingRecoveryVirtualNetwork

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

ExistingStorageAccount

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

KeyEncryptionKeyInfo

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

Microsoft.RecoveryServices/vaults/replicationProtectionIntents

Name Description Value
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 Create protection intent input properties. CreateProtectionIntentPropertiesOrReplicationProtectionIntentProperties
type The resource type "Microsoft.RecoveryServices/vaults/replicationProtectionIntents@2021-02-10"

NewProtectionProfile

Name Description Value
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' (required)
policyName The protection profile input. string (required)
recoveryPointHistory The duration in minutes until which the recovery points need to be stored. int
resourceType The class type. 'New' (required)

NewRecoveryVirtualNetwork

Name Description Value
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
resourceType The class type. 'New' (required)

ProtectionProfileCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingProtectionProfile. Set to 'New' for type NewProtectionProfile. 'Existing'
'New' (required)

RecoveryAvailabilitySetCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingRecoveryAvailabilitySet. 'Existing' (required)

RecoveryProximityPlacementGroupCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingRecoveryProximityPlacementGroup. 'Existing' (required)

RecoveryResourceGroupCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingRecoveryResourceGroup. 'Existing' (required)

RecoveryVirtualNetworkCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingRecoveryVirtualNetwork. Set to 'New' for type NewRecoveryVirtualNetwork. 'Existing'
'New' (required)

StorageAccountCustomDetails

Name Description Value
resourceType Set to 'Existing' for type ExistingStorageAccount. 'Existing' (required)