Microsoft.RecoveryServices vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems 2021-10-01

Bicep resource definition

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

resource symbolicname 'Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems@2021-10-01' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    policyId: 'string'
    protectableItemId: 'string'
    providerSpecificDetails: {
      instanceType: 'string'
      // For remaining properties, see EnableProtectionProviderSpecificInputOrReplicationProviderSpecificSettings objects
    }
  }
}

EnableProtectionProviderSpecificInputOrReplicationProviderSpecificSettings objects

Set the instanceType property to specify the type of object.

For A2A, use:

{
  diskEncryptionInfo: {
    diskEncryptionKeyInfo: {
      keyVaultResourceArmId: 'string'
      secretIdentifier: 'string'
    }
    keyEncryptionKeyInfo: {
      keyIdentifier: 'string'
      keyVaultResourceArmId: 'string'
    }
  }
  fabricObjectId: 'string'
  instanceType: 'A2A'
  multiVmGroupId: 'string'
  multiVmGroupName: 'string'
  recoveryAvailabilitySetId: 'string'
  recoveryAvailabilityZone: 'string'
  recoveryAzureNetworkId: 'string'
  recoveryBootDiagStorageAccountId: 'string'
  recoveryCapacityReservationGroupId: 'string'
  recoveryCloudServiceId: 'string'
  recoveryContainerId: 'string'
  recoveryProximityPlacementGroupId: 'string'
  recoveryResourceGroupId: 'string'
  recoverySubnetName: 'string'
  recoveryVirtualMachineScaleSetId: 'string'
  vmDisks: [
    {
      diskUri: 'string'
      primaryStagingAzureStorageAccountId: 'string'
      recoveryAzureStorageAccountId: 'string'
    }
  ]
  vmManagedDisks: [
    {
      diskEncryptionInfo: {
        diskEncryptionKeyInfo: {
          keyVaultResourceArmId: 'string'
          secretIdentifier: 'string'
        }
        keyEncryptionKeyInfo: {
          keyIdentifier: 'string'
          keyVaultResourceArmId: 'string'
        }
      }
      diskId: 'string'
      primaryStagingAzureStorageAccountId: 'string'
      recoveryDiskEncryptionSetId: 'string'
      recoveryReplicaDiskAccountType: 'string'
      recoveryResourceGroupId: 'string'
      recoveryTargetDiskAccountType: 'string'
    }
  ]
}

For A2ACrossClusterMigration, use:

{
  fabricObjectId: 'string'
  instanceType: 'A2ACrossClusterMigration'
  recoveryContainerId: 'string'
}

For HyperVReplicaAzure, use:

{
  diskEncryptionSetId: 'string'
  disksToInclude: [
    'string'
  ]
  disksToIncludeForManagedDisks: [
    {
      diskEncryptionSetId: 'string'
      diskId: 'string'
      diskType: 'string'
      logStorageAccountId: 'string'
    }
  ]
  diskType: 'string'
  enableRdpOnTargetOption: 'string'
  hvHostVmId: 'string'
  instanceType: 'HyperVReplicaAzure'
  licenseType: 'string'
  logStorageAccountId: 'string'
  osType: 'string'
  seedManagedDiskTags: {
    {customized property}: 'string'
  }
  sqlServerLicenseType: 'string'
  targetAvailabilitySetId: 'string'
  targetAvailabilityZone: 'string'
  targetAzureNetworkId: 'string'
  targetAzureSubnetId: 'string'
  targetAzureV1ResourceGroupId: 'string'
  targetAzureV2ResourceGroupId: 'string'
  targetAzureVmName: 'string'
  targetManagedDiskTags: {
    {customized property}: 'string'
  }
  targetNicTags: {
    {customized property}: 'string'
  }
  targetProximityPlacementGroupId: 'string'
  targetStorageAccountId: 'string'
  targetVmSize: 'string'
  targetVmTags: {
    {customized property}: 'string'
  }
  useManagedDisks: 'string'
  useManagedDisksForReplication: 'string'
  vhdId: 'string'
  vmName: 'string'
}

For InMage, use:

{
  datastoreName: 'string'
  diskExclusionInput: {
    diskSignatureOptions: [
      {
        diskSignature: 'string'
      }
    ]
    volumeOptions: [
      {
        onlyExcludeIfSingleVolume: 'string'
        volumeLabel: 'string'
      }
    ]
  }
  disksToInclude: [
    'string'
  ]
  instanceType: 'InMage'
  masterTargetId: 'string'
  multiVmGroupId: 'string'
  multiVmGroupName: 'string'
  processServerId: 'string'
  retentionDrive: 'string'
  runAsAccountId: 'string'
  vmFriendlyName: 'string'
}

For InMageAzureV2, use:

{
  diskEncryptionSetId: 'string'
  disksToInclude: [
    {
      diskEncryptionSetId: 'string'
      diskId: 'string'
      diskType: 'string'
      logStorageAccountId: 'string'
    }
  ]
  diskType: 'string'
  enableRdpOnTargetOption: 'string'
  instanceType: 'InMageAzureV2'
  licenseType: 'string'
  logStorageAccountId: 'string'
  masterTargetId: 'string'
  multiVmGroupId: 'string'
  multiVmGroupName: 'string'
  processServerId: 'string'
  runAsAccountId: 'string'
  seedManagedDiskTags: {
    {customized property}: 'string'
  }
  sqlServerLicenseType: 'string'
  storageAccountId: 'string'
  targetAvailabilitySetId: 'string'
  targetAvailabilityZone: 'string'
  targetAzureNetworkId: 'string'
  targetAzureSubnetId: 'string'
  targetAzureV1ResourceGroupId: 'string'
  targetAzureV2ResourceGroupId: 'string'
  targetAzureVmName: 'string'
  targetManagedDiskTags: {
    {customized property}: 'string'
  }
  targetNicTags: {
    {customized property}: 'string'
  }
  targetProximityPlacementGroupId: 'string'
  targetVmSize: 'string'
  targetVmTags: {
    {customized property}: 'string'
  }
}

For InMageRcm, use:

{
  disksDefault: {
    diskEncryptionSetId: 'string'
    diskType: 'string'
    logStorageAccountId: 'string'
  }
  disksToInclude: [
    {
      diskEncryptionSetId: 'string'
      diskId: 'string'
      diskType: 'string'
      logStorageAccountId: 'string'
    }
  ]
  fabricDiscoveryMachineId: 'string'
  instanceType: 'InMageRcm'
  licenseType: 'string'
  multiVmGroupName: 'string'
  processServerId: 'string'
  runAsAccountId: 'string'
  targetAvailabilitySetId: 'string'
  targetAvailabilityZone: 'string'
  targetBootDiagnosticsStorageAccountId: 'string'
  targetNetworkId: 'string'
  targetProximityPlacementGroupId: 'string'
  targetResourceGroupId: 'string'
  targetSubnetName: 'string'
  targetVmName: 'string'
  targetVmSize: 'string'
  testNetworkId: 'string'
  testSubnetName: 'string'
}

For HyperVReplica2012, use:

{
  instanceType: 'HyperVReplica2012'
}

For HyperVReplica2012R2, use:

{
  instanceType: 'HyperVReplica2012R2'
}

For HyperVReplicaBaseReplicationDetails, use:

{
  instanceType: 'HyperVReplicaBaseReplicationDetails'
}

For InMageRcmFailback, use:

{
  instanceType: 'InMageRcmFailback'
}

Property values

A2ACrossClusterMigrationEnableProtectionInputOrA2ACrossClusterMigrationReplicationDetails

Name Description Value
fabricObjectId The fabric specific object Id of the virtual machine. string
instanceType The class type. 'A2ACrossClusterMigration' (required)
recoveryContainerId The recovery container Id. string

A2AEnableProtectionInputOrA2AReplicationDetails

Name Description Value
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
recoveryAvailabilitySetId The recovery availability set Id. string
recoveryAvailabilityZone The recovery availability zone. string
recoveryAzureNetworkId The recovery Azure virtual network ARM id. string
recoveryBootDiagStorageAccountId The boot diagnostic storage account. string
recoveryCapacityReservationGroupId The recovery capacity reservation group Id. string
recoveryCloudServiceId The recovery cloud service Id. Valid for V1 scenarios. string
recoveryContainerId The recovery container Id. string
recoveryProximityPlacementGroupId The recovery proximity placement group Id. string
recoveryResourceGroupId The recovery resource group Id. Valid for V2 scenarios. string
recoverySubnetName The recovery subnet name. string
recoveryVirtualMachineScaleSetId The virtual machine scale set Id. string
vmDisks The list of vm disk details. A2AVmDiskInputDetails[]
vmManagedDisks The list of vm managed disk details. A2AVmManagedDiskInputDetails[]

A2AVmDiskInputDetails

Name Description Value
diskUri The disk Uri. string (required)
primaryStagingAzureStorageAccountId The primary staging storage account Id. string (required)
recoveryAzureStorageAccountId The recovery VHD storage account Id. string (required)

A2AVmManagedDiskInputDetails

Name Description Value
diskEncryptionInfo The recovery disk encryption information (for one / single pass flows). DiskEncryptionInfo
diskId The disk Id. string (required)
primaryStagingAzureStorageAccountId The primary staging storage account Arm Id. string (required)
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
recoveryResourceGroupId The target resource group Arm Id. string (required)
recoveryTargetDiskAccountType The target disk type after failover. Its an optional value and will be same as source disk type if not user provided. string

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

EnableProtectionInputPropertiesOrReplicationProtectedItemProperties

Name Description Value
policyId The Policy Id. string
protectableItemId The protectable item Id. string
providerSpecificDetails The ReplicationProviderInput. For HyperVReplicaAzure provider, it will be AzureEnableProtectionInput object. For San provider, it will be SanEnableProtectionInput object. For HyperVReplicaAzure provider, it can be null. EnableProtectionProviderSpecificInputOrReplicationProviderSpecificSettings

EnableProtectionProviderSpecificInputOrReplicationProviderSpecificSettings

Name Description Value
instanceType Set to 'A2A' for type A2AEnableProtectionInputOrA2AReplicationDetails. Set to 'A2ACrossClusterMigration' for type A2ACrossClusterMigrationEnableProtectionInputOrA2ACrossClusterMigrationReplicationDetails. Set to 'HyperVReplicaAzure' for type HyperVReplicaAzureEnableProtectionInputOrHyperVReplicaAzureReplicationDetails. Set to 'InMage' for type InMageEnableProtectionInputOrInMageReplicationDetails. Set to 'InMageAzureV2' for type InMageAzureV2EnableProtectionInputOrInMageAzureV2ReplicationDetails. Set to 'InMageRcm' for type InMageRcmEnableProtectionInputOrInMageRcmReplicationDetails. Set to 'HyperVReplica2012' for type HyperVReplicaReplicationDetails. Set to 'HyperVReplica2012R2' for type HyperVReplicaBlueReplicationDetails. Set to 'HyperVReplicaBaseReplicationDetails' for type HyperVReplicaBaseReplicationDetails. Set to 'InMageRcmFailback' for type InMageRcmFailbackReplicationDetails. 'A2A'
'A2ACrossClusterMigration'
'HyperVReplica2012'
'HyperVReplica2012R2'
'HyperVReplicaAzure'
'HyperVReplicaBaseReplicationDetails'
'InMage'
'InMageAzureV2'
'InMageRcm'
'InMageRcmFailback' (required)

HyperVReplicaAzureDiskInputDetails

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM ID. string
diskId The DiskId. string
diskType The DiskType. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS'
logStorageAccountId The LogStorageAccountId. string

HyperVReplicaAzureEnableProtectionInputOrHyperVReplicaAzureReplicationDetails

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM Id. string
disksToInclude The list of VHD Ids of disks to be protected. string[]
disksToIncludeForManagedDisks The disks to include list for managed disks. HyperVReplicaAzureDiskInputDetails[]
diskType The DiskType. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS'
enableRdpOnTargetOption The selected option to enable RDP\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. string
hvHostVmId The Hyper-V host VM Id. string
instanceType The class type. 'HyperVReplicaAzure' (required)
licenseType License type. 'NoLicenseType'
'NotSpecified'
'WindowsServer'
logStorageAccountId The storage account to be used for logging during replication. string
osType The OS type associated with VM. string
seedManagedDiskTags The tags for the seed managed disks. HyperVReplicaAzureEnableProtectionInputSeedManagedDiskTags
sqlServerLicenseType The SQL Server license type. 'AHUB'
'NoLicenseType'
'NotSpecified'
'PAYG'
targetAvailabilitySetId The target availability set ARM Id for resource manager deployment. string
targetAvailabilityZone The target availability zone. string
targetAzureNetworkId The selected target Azure network Id. string
targetAzureSubnetId The selected target Azure subnet Id. string
targetAzureV1ResourceGroupId The Id of the target resource group (for classic deployment) in which the failover VM is to be created. string
targetAzureV2ResourceGroupId The Id of the target resource group (for resource manager deployment) in which the failover VM is to be created. string
targetAzureVmName The target azure VM Name. string
targetManagedDiskTags The tags for the target managed disks. HyperVReplicaAzureEnableProtectionInputTargetManagedDiskTags
targetNicTags The tags for the target NICs. HyperVReplicaAzureEnableProtectionInputTargetNicTags
targetProximityPlacementGroupId The proximity placement group ARM Id. string
targetStorageAccountId The storage account Id. string
targetVmSize The target VM size. string
targetVmTags The target VM tags. HyperVReplicaAzureEnableProtectionInputTargetVmTags
useManagedDisks A value indicating whether managed disks should be used during failover. string
useManagedDisksForReplication A value indicating whether managed disks should be used during replication. string
vhdId The OS disk VHD id associated with VM. string
vmName The VM Name. string

HyperVReplicaAzureEnableProtectionInputSeedManagedDiskTags

Name Description Value

HyperVReplicaAzureEnableProtectionInputTargetManagedDiskTags

Name Description Value

HyperVReplicaAzureEnableProtectionInputTargetNicTags

Name Description Value

HyperVReplicaAzureEnableProtectionInputTargetVmTags

Name Description Value

HyperVReplicaBaseReplicationDetails

Name Description Value
instanceType The class type. 'HyperVReplicaBaseReplicationDetails' (required)

HyperVReplicaBlueReplicationDetails

Name Description Value
instanceType The class type. 'HyperVReplica2012R2' (required)

HyperVReplicaReplicationDetails

Name Description Value
instanceType The class type. 'HyperVReplica2012' (required)

InMageAzureV2DiskInputDetails

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM ID. string
diskId The DiskId. string
diskType The DiskType. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS'
logStorageAccountId The LogStorageAccountId. string

InMageAzureV2EnableProtectionInputOrInMageAzureV2ReplicationDetails

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM Id. string
disksToInclude The disks to include list. InMageAzureV2DiskInputDetails[]
diskType The DiskType. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS'
enableRdpOnTargetOption The selected option to enable RDP\SSH on target VM after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. string
instanceType The class type. 'InMageAzureV2' (required)
licenseType License type. 'NoLicenseType'
'NotSpecified'
'WindowsServer'
logStorageAccountId The storage account to be used for logging during replication. string
masterTargetId The Master target Id. string
multiVmGroupId The multi VM group Id. string
multiVmGroupName The multi VM group name. string
processServerId The Process Server Id. string
runAsAccountId The CS account Id. string
seedManagedDiskTags The tags for the seed managed disks. InMageAzureV2EnableProtectionInputSeedManagedDiskTags
sqlServerLicenseType The SQL Server license type. 'AHUB'
'NoLicenseType'
'NotSpecified'
'PAYG'
storageAccountId The storage account Id. string
targetAvailabilitySetId The target availability set ARM Id for resource manager deployment. string
targetAvailabilityZone The target availability zone. string
targetAzureNetworkId The selected target Azure network Id. string
targetAzureSubnetId The selected target Azure subnet Id. string
targetAzureV1ResourceGroupId The Id of the target resource group (for classic deployment) in which the failover VM is to be created. string
targetAzureV2ResourceGroupId The Id of the target resource group (for resource manager deployment) in which the failover VM is to be created. string
targetAzureVmName The target azure VM Name. string
targetManagedDiskTags The tags for the target managed disks. InMageAzureV2EnableProtectionInputTargetManagedDiskTags
targetNicTags The tags for the target NICs. InMageAzureV2EnableProtectionInputTargetNicTags
targetProximityPlacementGroupId The proximity placement group ARM Id. string
targetVmSize The target VM size. string
targetVmTags The target VM tags. InMageAzureV2EnableProtectionInputTargetVmTags

InMageAzureV2EnableProtectionInputSeedManagedDiskTags

Name Description Value

InMageAzureV2EnableProtectionInputTargetManagedDiskTags

Name Description Value

InMageAzureV2EnableProtectionInputTargetNicTags

Name Description Value

InMageAzureV2EnableProtectionInputTargetVmTags

Name Description Value

InMageDiskExclusionInput

Name Description Value
diskSignatureOptions The guest disk signature based option for disk exclusion. InMageDiskSignatureExclusionOptions[]
volumeOptions The volume label based option for disk exclusion. InMageVolumeExclusionOptions[]

InMageDiskSignatureExclusionOptions

Name Description Value
diskSignature The guest signature of disk to be excluded from replication. string

InMageEnableProtectionInputOrInMageReplicationDetails

Name Description Value
datastoreName The target datastore name. string
diskExclusionInput The enable disk exclusion input. InMageDiskExclusionInput
disksToInclude The disks to include list. string[]
instanceType The class type. 'InMage' (required)
masterTargetId The Master Target Id. string (required)
multiVmGroupId The multi VM group Id. string (required)
multiVmGroupName The multi VM group name. string (required)
processServerId The Process Server Id. string (required)
retentionDrive The retention drive to use on the MT. string (required)
runAsAccountId The CS account Id. string
vmFriendlyName The VM Name. string

InMageRcmDiskInput

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM Id. string
diskId The disk Id. string (required)
diskType The disk type. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS' (required)
logStorageAccountId The log storage account ARM Id. string (required)

InMageRcmDisksDefaultInput

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM Id. string
diskType The disk type. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS' (required)
logStorageAccountId The log storage account ARM Id. string (required)

InMageRcmEnableProtectionInputOrInMageRcmReplicationDetails

Name Description Value
disksDefault The default disk input. InMageRcmDisksDefaultInput
disksToInclude The disks to include list. InMageRcmDiskInput[]
fabricDiscoveryMachineId The ARM Id of discovered machine. string (required)
instanceType The class type. 'InMageRcm' (required)
licenseType The license type. 'NoLicenseType'
'NotSpecified'
'WindowsServer'
multiVmGroupName The multi VM group name. string
processServerId The process server Id. string (required)
runAsAccountId The run-as account Id. string
targetAvailabilitySetId The target availability set ARM Id. string
targetAvailabilityZone The target availability zone. string
targetBootDiagnosticsStorageAccountId The target boot diagnostics storage account ARM Id. string
targetNetworkId The selected target network ARM Id. string
targetProximityPlacementGroupId The target proximity placement group Id. string
targetResourceGroupId The target resource group ARM Id. string (required)
targetSubnetName The selected target subnet name. string
targetVmName The target VM name. string
targetVmSize The target VM size. string
testNetworkId The selected test network ARM Id. string
testSubnetName The selected test subnet name. string

InMageRcmFailbackReplicationDetails

Name Description Value
instanceType The class type. 'InMageRcmFailback' (required)

InMageVolumeExclusionOptions

Name Description Value
onlyExcludeIfSingleVolume The value indicating whether to exclude multi volume disk or not. If a disk has multiple volumes and one of the volume has label matching with VolumeLabel this disk will be excluded from replication if OnlyExcludeIfSingleVolume is false. string
volumeLabel The volume label. The disk having any volume with this label will be excluded from replication. string

KeyEncryptionKeyInfo

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

Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems

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/replicationFabrics/replicationProtectionContainers
properties Enable protection input properties. EnableProtectionInputPropertiesOrReplicationProtectedItemProperties

ARM template resource definition

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

{
  "type": "Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems",
  "apiVersion": "2021-10-01",
  "name": "string",
  "properties": {
    "policyId": "string",
    "protectableItemId": "string",
    "providerSpecificDetails": {
      "instanceType": "string"
      // For remaining properties, see EnableProtectionProviderSpecificInputOrReplicationProviderSpecificSettings objects
    }
  }
}

EnableProtectionProviderSpecificInputOrReplicationProviderSpecificSettings objects

Set the instanceType property to specify the type of object.

For A2A, use:

{
  "diskEncryptionInfo": {
    "diskEncryptionKeyInfo": {
      "keyVaultResourceArmId": "string",
      "secretIdentifier": "string"
    },
    "keyEncryptionKeyInfo": {
      "keyIdentifier": "string",
      "keyVaultResourceArmId": "string"
    }
  },
  "fabricObjectId": "string",
  "instanceType": "A2A",
  "multiVmGroupId": "string",
  "multiVmGroupName": "string",
  "recoveryAvailabilitySetId": "string",
  "recoveryAvailabilityZone": "string",
  "recoveryAzureNetworkId": "string",
  "recoveryBootDiagStorageAccountId": "string",
  "recoveryCapacityReservationGroupId": "string",
  "recoveryCloudServiceId": "string",
  "recoveryContainerId": "string",
  "recoveryProximityPlacementGroupId": "string",
  "recoveryResourceGroupId": "string",
  "recoverySubnetName": "string",
  "recoveryVirtualMachineScaleSetId": "string",
  "vmDisks": [
    {
      "diskUri": "string",
      "primaryStagingAzureStorageAccountId": "string",
      "recoveryAzureStorageAccountId": "string"
    }
  ],
  "vmManagedDisks": [
    {
      "diskEncryptionInfo": {
        "diskEncryptionKeyInfo": {
          "keyVaultResourceArmId": "string",
          "secretIdentifier": "string"
        },
        "keyEncryptionKeyInfo": {
          "keyIdentifier": "string",
          "keyVaultResourceArmId": "string"
        }
      },
      "diskId": "string",
      "primaryStagingAzureStorageAccountId": "string",
      "recoveryDiskEncryptionSetId": "string",
      "recoveryReplicaDiskAccountType": "string",
      "recoveryResourceGroupId": "string",
      "recoveryTargetDiskAccountType": "string"
    }
  ]
}

For A2ACrossClusterMigration, use:

{
  "fabricObjectId": "string",
  "instanceType": "A2ACrossClusterMigration",
  "recoveryContainerId": "string"
}

For HyperVReplicaAzure, use:

{
  "diskEncryptionSetId": "string",
  "disksToInclude": [ "string" ],
  "disksToIncludeForManagedDisks": [
    {
      "diskEncryptionSetId": "string",
      "diskId": "string",
      "diskType": "string",
      "logStorageAccountId": "string"
    }
  ],
  "diskType": "string",
  "enableRdpOnTargetOption": "string",
  "hvHostVmId": "string",
  "instanceType": "HyperVReplicaAzure",
  "licenseType": "string",
  "logStorageAccountId": "string",
  "osType": "string",
  "seedManagedDiskTags": {
    "{customized property}": "string"
  },
  "sqlServerLicenseType": "string",
  "targetAvailabilitySetId": "string",
  "targetAvailabilityZone": "string",
  "targetAzureNetworkId": "string",
  "targetAzureSubnetId": "string",
  "targetAzureV1ResourceGroupId": "string",
  "targetAzureV2ResourceGroupId": "string",
  "targetAzureVmName": "string",
  "targetManagedDiskTags": {
    "{customized property}": "string"
  },
  "targetNicTags": {
    "{customized property}": "string"
  },
  "targetProximityPlacementGroupId": "string",
  "targetStorageAccountId": "string",
  "targetVmSize": "string",
  "targetVmTags": {
    "{customized property}": "string"
  },
  "useManagedDisks": "string",
  "useManagedDisksForReplication": "string",
  "vhdId": "string",
  "vmName": "string"
}

For InMage, use:

{
  "datastoreName": "string",
  "diskExclusionInput": {
    "diskSignatureOptions": [
      {
        "diskSignature": "string"
      }
    ],
    "volumeOptions": [
      {
        "onlyExcludeIfSingleVolume": "string",
        "volumeLabel": "string"
      }
    ]
  },
  "disksToInclude": [ "string" ],
  "instanceType": "InMage",
  "masterTargetId": "string",
  "multiVmGroupId": "string",
  "multiVmGroupName": "string",
  "processServerId": "string",
  "retentionDrive": "string",
  "runAsAccountId": "string",
  "vmFriendlyName": "string"
}

For InMageAzureV2, use:

{
  "diskEncryptionSetId": "string",
  "disksToInclude": [
    {
      "diskEncryptionSetId": "string",
      "diskId": "string",
      "diskType": "string",
      "logStorageAccountId": "string"
    }
  ],
  "diskType": "string",
  "enableRdpOnTargetOption": "string",
  "instanceType": "InMageAzureV2",
  "licenseType": "string",
  "logStorageAccountId": "string",
  "masterTargetId": "string",
  "multiVmGroupId": "string",
  "multiVmGroupName": "string",
  "processServerId": "string",
  "runAsAccountId": "string",
  "seedManagedDiskTags": {
    "{customized property}": "string"
  },
  "sqlServerLicenseType": "string",
  "storageAccountId": "string",
  "targetAvailabilitySetId": "string",
  "targetAvailabilityZone": "string",
  "targetAzureNetworkId": "string",
  "targetAzureSubnetId": "string",
  "targetAzureV1ResourceGroupId": "string",
  "targetAzureV2ResourceGroupId": "string",
  "targetAzureVmName": "string",
  "targetManagedDiskTags": {
    "{customized property}": "string"
  },
  "targetNicTags": {
    "{customized property}": "string"
  },
  "targetProximityPlacementGroupId": "string",
  "targetVmSize": "string",
  "targetVmTags": {
    "{customized property}": "string"
  }
}

For InMageRcm, use:

{
  "disksDefault": {
    "diskEncryptionSetId": "string",
    "diskType": "string",
    "logStorageAccountId": "string"
  },
  "disksToInclude": [
    {
      "diskEncryptionSetId": "string",
      "diskId": "string",
      "diskType": "string",
      "logStorageAccountId": "string"
    }
  ],
  "fabricDiscoveryMachineId": "string",
  "instanceType": "InMageRcm",
  "licenseType": "string",
  "multiVmGroupName": "string",
  "processServerId": "string",
  "runAsAccountId": "string",
  "targetAvailabilitySetId": "string",
  "targetAvailabilityZone": "string",
  "targetBootDiagnosticsStorageAccountId": "string",
  "targetNetworkId": "string",
  "targetProximityPlacementGroupId": "string",
  "targetResourceGroupId": "string",
  "targetSubnetName": "string",
  "targetVmName": "string",
  "targetVmSize": "string",
  "testNetworkId": "string",
  "testSubnetName": "string"
}

For HyperVReplica2012, use:

{
  "instanceType": "HyperVReplica2012"
}

For HyperVReplica2012R2, use:

{
  "instanceType": "HyperVReplica2012R2"
}

For HyperVReplicaBaseReplicationDetails, use:

{
  "instanceType": "HyperVReplicaBaseReplicationDetails"
}

For InMageRcmFailback, use:

{
  "instanceType": "InMageRcmFailback"
}

Property values

A2ACrossClusterMigrationEnableProtectionInputOrA2ACrossClusterMigrationReplicationDetails

Name Description Value
fabricObjectId The fabric specific object Id of the virtual machine. string
instanceType The class type. 'A2ACrossClusterMigration' (required)
recoveryContainerId The recovery container Id. string

A2AEnableProtectionInputOrA2AReplicationDetails

Name Description Value
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
recoveryAvailabilitySetId The recovery availability set Id. string
recoveryAvailabilityZone The recovery availability zone. string
recoveryAzureNetworkId The recovery Azure virtual network ARM id. string
recoveryBootDiagStorageAccountId The boot diagnostic storage account. string
recoveryCapacityReservationGroupId The recovery capacity reservation group Id. string
recoveryCloudServiceId The recovery cloud service Id. Valid for V1 scenarios. string
recoveryContainerId The recovery container Id. string
recoveryProximityPlacementGroupId The recovery proximity placement group Id. string
recoveryResourceGroupId The recovery resource group Id. Valid for V2 scenarios. string
recoverySubnetName The recovery subnet name. string
recoveryVirtualMachineScaleSetId The virtual machine scale set Id. string
vmDisks The list of vm disk details. A2AVmDiskInputDetails[]
vmManagedDisks The list of vm managed disk details. A2AVmManagedDiskInputDetails[]

A2AVmDiskInputDetails

Name Description Value
diskUri The disk Uri. string (required)
primaryStagingAzureStorageAccountId The primary staging storage account Id. string (required)
recoveryAzureStorageAccountId The recovery VHD storage account Id. string (required)

A2AVmManagedDiskInputDetails

Name Description Value
diskEncryptionInfo The recovery disk encryption information (for one / single pass flows). DiskEncryptionInfo
diskId The disk Id. string (required)
primaryStagingAzureStorageAccountId The primary staging storage account Arm Id. string (required)
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
recoveryResourceGroupId The target resource group Arm Id. string (required)
recoveryTargetDiskAccountType The target disk type after failover. Its an optional value and will be same as source disk type if not user provided. string

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

EnableProtectionInputPropertiesOrReplicationProtectedItemProperties

Name Description Value
policyId The Policy Id. string
protectableItemId The protectable item Id. string
providerSpecificDetails The ReplicationProviderInput. For HyperVReplicaAzure provider, it will be AzureEnableProtectionInput object. For San provider, it will be SanEnableProtectionInput object. For HyperVReplicaAzure provider, it can be null. EnableProtectionProviderSpecificInputOrReplicationProviderSpecificSettings

EnableProtectionProviderSpecificInputOrReplicationProviderSpecificSettings

Name Description Value
instanceType Set to 'A2A' for type A2AEnableProtectionInputOrA2AReplicationDetails. Set to 'A2ACrossClusterMigration' for type A2ACrossClusterMigrationEnableProtectionInputOrA2ACrossClusterMigrationReplicationDetails. Set to 'HyperVReplicaAzure' for type HyperVReplicaAzureEnableProtectionInputOrHyperVReplicaAzureReplicationDetails. Set to 'InMage' for type InMageEnableProtectionInputOrInMageReplicationDetails. Set to 'InMageAzureV2' for type InMageAzureV2EnableProtectionInputOrInMageAzureV2ReplicationDetails. Set to 'InMageRcm' for type InMageRcmEnableProtectionInputOrInMageRcmReplicationDetails. Set to 'HyperVReplica2012' for type HyperVReplicaReplicationDetails. Set to 'HyperVReplica2012R2' for type HyperVReplicaBlueReplicationDetails. Set to 'HyperVReplicaBaseReplicationDetails' for type HyperVReplicaBaseReplicationDetails. Set to 'InMageRcmFailback' for type InMageRcmFailbackReplicationDetails. 'A2A'
'A2ACrossClusterMigration'
'HyperVReplica2012'
'HyperVReplica2012R2'
'HyperVReplicaAzure'
'HyperVReplicaBaseReplicationDetails'
'InMage'
'InMageAzureV2'
'InMageRcm'
'InMageRcmFailback' (required)

HyperVReplicaAzureDiskInputDetails

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM ID. string
diskId The DiskId. string
diskType The DiskType. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS'
logStorageAccountId The LogStorageAccountId. string

HyperVReplicaAzureEnableProtectionInputOrHyperVReplicaAzureReplicationDetails

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM Id. string
disksToInclude The list of VHD Ids of disks to be protected. string[]
disksToIncludeForManagedDisks The disks to include list for managed disks. HyperVReplicaAzureDiskInputDetails[]
diskType The DiskType. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS'
enableRdpOnTargetOption The selected option to enable RDP\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. string
hvHostVmId The Hyper-V host VM Id. string
instanceType The class type. 'HyperVReplicaAzure' (required)
licenseType License type. 'NoLicenseType'
'NotSpecified'
'WindowsServer'
logStorageAccountId The storage account to be used for logging during replication. string
osType The OS type associated with VM. string
seedManagedDiskTags The tags for the seed managed disks. HyperVReplicaAzureEnableProtectionInputSeedManagedDiskTags
sqlServerLicenseType The SQL Server license type. 'AHUB'
'NoLicenseType'
'NotSpecified'
'PAYG'
targetAvailabilitySetId The target availability set ARM Id for resource manager deployment. string
targetAvailabilityZone The target availability zone. string
targetAzureNetworkId The selected target Azure network Id. string
targetAzureSubnetId The selected target Azure subnet Id. string
targetAzureV1ResourceGroupId The Id of the target resource group (for classic deployment) in which the failover VM is to be created. string
targetAzureV2ResourceGroupId The Id of the target resource group (for resource manager deployment) in which the failover VM is to be created. string
targetAzureVmName The target azure VM Name. string
targetManagedDiskTags The tags for the target managed disks. HyperVReplicaAzureEnableProtectionInputTargetManagedDiskTags
targetNicTags The tags for the target NICs. HyperVReplicaAzureEnableProtectionInputTargetNicTags
targetProximityPlacementGroupId The proximity placement group ARM Id. string
targetStorageAccountId The storage account Id. string
targetVmSize The target VM size. string
targetVmTags The target VM tags. HyperVReplicaAzureEnableProtectionInputTargetVmTags
useManagedDisks A value indicating whether managed disks should be used during failover. string
useManagedDisksForReplication A value indicating whether managed disks should be used during replication. string
vhdId The OS disk VHD id associated with VM. string
vmName The VM Name. string

HyperVReplicaAzureEnableProtectionInputSeedManagedDiskTags

Name Description Value

HyperVReplicaAzureEnableProtectionInputTargetManagedDiskTags

Name Description Value

HyperVReplicaAzureEnableProtectionInputTargetNicTags

Name Description Value

HyperVReplicaAzureEnableProtectionInputTargetVmTags

Name Description Value

HyperVReplicaBaseReplicationDetails

Name Description Value
instanceType The class type. 'HyperVReplicaBaseReplicationDetails' (required)

HyperVReplicaBlueReplicationDetails

Name Description Value
instanceType The class type. 'HyperVReplica2012R2' (required)

HyperVReplicaReplicationDetails

Name Description Value
instanceType The class type. 'HyperVReplica2012' (required)

InMageAzureV2DiskInputDetails

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM ID. string
diskId The DiskId. string
diskType The DiskType. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS'
logStorageAccountId The LogStorageAccountId. string

InMageAzureV2EnableProtectionInputOrInMageAzureV2ReplicationDetails

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM Id. string
disksToInclude The disks to include list. InMageAzureV2DiskInputDetails[]
diskType The DiskType. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS'
enableRdpOnTargetOption The selected option to enable RDP\SSH on target VM after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. string
instanceType The class type. 'InMageAzureV2' (required)
licenseType License type. 'NoLicenseType'
'NotSpecified'
'WindowsServer'
logStorageAccountId The storage account to be used for logging during replication. string
masterTargetId The Master target Id. string
multiVmGroupId The multi VM group Id. string
multiVmGroupName The multi VM group name. string
processServerId The Process Server Id. string
runAsAccountId The CS account Id. string
seedManagedDiskTags The tags for the seed managed disks. InMageAzureV2EnableProtectionInputSeedManagedDiskTags
sqlServerLicenseType The SQL Server license type. 'AHUB'
'NoLicenseType'
'NotSpecified'
'PAYG'
storageAccountId The storage account Id. string
targetAvailabilitySetId The target availability set ARM Id for resource manager deployment. string
targetAvailabilityZone The target availability zone. string
targetAzureNetworkId The selected target Azure network Id. string
targetAzureSubnetId The selected target Azure subnet Id. string
targetAzureV1ResourceGroupId The Id of the target resource group (for classic deployment) in which the failover VM is to be created. string
targetAzureV2ResourceGroupId The Id of the target resource group (for resource manager deployment) in which the failover VM is to be created. string
targetAzureVmName The target azure VM Name. string
targetManagedDiskTags The tags for the target managed disks. InMageAzureV2EnableProtectionInputTargetManagedDiskTags
targetNicTags The tags for the target NICs. InMageAzureV2EnableProtectionInputTargetNicTags
targetProximityPlacementGroupId The proximity placement group ARM Id. string
targetVmSize The target VM size. string
targetVmTags The target VM tags. InMageAzureV2EnableProtectionInputTargetVmTags

InMageAzureV2EnableProtectionInputSeedManagedDiskTags

Name Description Value

InMageAzureV2EnableProtectionInputTargetManagedDiskTags

Name Description Value

InMageAzureV2EnableProtectionInputTargetNicTags

Name Description Value

InMageAzureV2EnableProtectionInputTargetVmTags

Name Description Value

InMageDiskExclusionInput

Name Description Value
diskSignatureOptions The guest disk signature based option for disk exclusion. InMageDiskSignatureExclusionOptions[]
volumeOptions The volume label based option for disk exclusion. InMageVolumeExclusionOptions[]

InMageDiskSignatureExclusionOptions

Name Description Value
diskSignature The guest signature of disk to be excluded from replication. string

InMageEnableProtectionInputOrInMageReplicationDetails

Name Description Value
datastoreName The target datastore name. string
diskExclusionInput The enable disk exclusion input. InMageDiskExclusionInput
disksToInclude The disks to include list. string[]
instanceType The class type. 'InMage' (required)
masterTargetId The Master Target Id. string (required)
multiVmGroupId The multi VM group Id. string (required)
multiVmGroupName The multi VM group name. string (required)
processServerId The Process Server Id. string (required)
retentionDrive The retention drive to use on the MT. string (required)
runAsAccountId The CS account Id. string
vmFriendlyName The VM Name. string

InMageRcmDiskInput

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM Id. string
diskId The disk Id. string (required)
diskType The disk type. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS' (required)
logStorageAccountId The log storage account ARM Id. string (required)

InMageRcmDisksDefaultInput

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM Id. string
diskType The disk type. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS' (required)
logStorageAccountId The log storage account ARM Id. string (required)

InMageRcmEnableProtectionInputOrInMageRcmReplicationDetails

Name Description Value
disksDefault The default disk input. InMageRcmDisksDefaultInput
disksToInclude The disks to include list. InMageRcmDiskInput[]
fabricDiscoveryMachineId The ARM Id of discovered machine. string (required)
instanceType The class type. 'InMageRcm' (required)
licenseType The license type. 'NoLicenseType'
'NotSpecified'
'WindowsServer'
multiVmGroupName The multi VM group name. string
processServerId The process server Id. string (required)
runAsAccountId The run-as account Id. string
targetAvailabilitySetId The target availability set ARM Id. string
targetAvailabilityZone The target availability zone. string
targetBootDiagnosticsStorageAccountId The target boot diagnostics storage account ARM Id. string
targetNetworkId The selected target network ARM Id. string
targetProximityPlacementGroupId The target proximity placement group Id. string
targetResourceGroupId The target resource group ARM Id. string (required)
targetSubnetName The selected target subnet name. string
targetVmName The target VM name. string
targetVmSize The target VM size. string
testNetworkId The selected test network ARM Id. string
testSubnetName The selected test subnet name. string

InMageRcmFailbackReplicationDetails

Name Description Value
instanceType The class type. 'InMageRcmFailback' (required)

InMageVolumeExclusionOptions

Name Description Value
onlyExcludeIfSingleVolume The value indicating whether to exclude multi volume disk or not. If a disk has multiple volumes and one of the volume has label matching with VolumeLabel this disk will be excluded from replication if OnlyExcludeIfSingleVolume is false. string
volumeLabel The volume label. The disk having any volume with this label will be excluded from replication. string

KeyEncryptionKeyInfo

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

Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems

Name Description Value
apiVersion The api version '2021-10-01'
name The resource name string (required)
properties Enable protection input properties. EnableProtectionInputPropertiesOrReplicationProtectedItemProperties
type The resource type 'Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems'

Terraform (AzAPI provider) resource definition

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems@2021-10-01"
  name = "string"
  body = jsonencode({
    properties = {
      policyId = "string"
      protectableItemId = "string"
      providerSpecificDetails = {
        instanceType = "string"
        // For remaining properties, see EnableProtectionProviderSpecificInputOrReplicationProviderSpecificSettings objects
      }
    }
  })
}

EnableProtectionProviderSpecificInputOrReplicationProviderSpecificSettings objects

Set the instanceType property to specify the type of object.

For A2A, use:

{
  diskEncryptionInfo = {
    diskEncryptionKeyInfo = {
      keyVaultResourceArmId = "string"
      secretIdentifier = "string"
    }
    keyEncryptionKeyInfo = {
      keyIdentifier = "string"
      keyVaultResourceArmId = "string"
    }
  }
  fabricObjectId = "string"
  instanceType = "A2A"
  multiVmGroupId = "string"
  multiVmGroupName = "string"
  recoveryAvailabilitySetId = "string"
  recoveryAvailabilityZone = "string"
  recoveryAzureNetworkId = "string"
  recoveryBootDiagStorageAccountId = "string"
  recoveryCapacityReservationGroupId = "string"
  recoveryCloudServiceId = "string"
  recoveryContainerId = "string"
  recoveryProximityPlacementGroupId = "string"
  recoveryResourceGroupId = "string"
  recoverySubnetName = "string"
  recoveryVirtualMachineScaleSetId = "string"
  vmDisks = [
    {
      diskUri = "string"
      primaryStagingAzureStorageAccountId = "string"
      recoveryAzureStorageAccountId = "string"
    }
  ]
  vmManagedDisks = [
    {
      diskEncryptionInfo = {
        diskEncryptionKeyInfo = {
          keyVaultResourceArmId = "string"
          secretIdentifier = "string"
        }
        keyEncryptionKeyInfo = {
          keyIdentifier = "string"
          keyVaultResourceArmId = "string"
        }
      }
      diskId = "string"
      primaryStagingAzureStorageAccountId = "string"
      recoveryDiskEncryptionSetId = "string"
      recoveryReplicaDiskAccountType = "string"
      recoveryResourceGroupId = "string"
      recoveryTargetDiskAccountType = "string"
    }
  ]
}

For A2ACrossClusterMigration, use:

{
  fabricObjectId = "string"
  instanceType = "A2ACrossClusterMigration"
  recoveryContainerId = "string"
}

For HyperVReplicaAzure, use:

{
  diskEncryptionSetId = "string"
  disksToInclude = [
    "string"
  ]
  disksToIncludeForManagedDisks = [
    {
      diskEncryptionSetId = "string"
      diskId = "string"
      diskType = "string"
      logStorageAccountId = "string"
    }
  ]
  diskType = "string"
  enableRdpOnTargetOption = "string"
  hvHostVmId = "string"
  instanceType = "HyperVReplicaAzure"
  licenseType = "string"
  logStorageAccountId = "string"
  osType = "string"
  seedManagedDiskTags = {
    {customized property} = "string"
  }
  sqlServerLicenseType = "string"
  targetAvailabilitySetId = "string"
  targetAvailabilityZone = "string"
  targetAzureNetworkId = "string"
  targetAzureSubnetId = "string"
  targetAzureV1ResourceGroupId = "string"
  targetAzureV2ResourceGroupId = "string"
  targetAzureVmName = "string"
  targetManagedDiskTags = {
    {customized property} = "string"
  }
  targetNicTags = {
    {customized property} = "string"
  }
  targetProximityPlacementGroupId = "string"
  targetStorageAccountId = "string"
  targetVmSize = "string"
  targetVmTags = {
    {customized property} = "string"
  }
  useManagedDisks = "string"
  useManagedDisksForReplication = "string"
  vhdId = "string"
  vmName = "string"
}

For InMage, use:

{
  datastoreName = "string"
  diskExclusionInput = {
    diskSignatureOptions = [
      {
        diskSignature = "string"
      }
    ]
    volumeOptions = [
      {
        onlyExcludeIfSingleVolume = "string"
        volumeLabel = "string"
      }
    ]
  }
  disksToInclude = [
    "string"
  ]
  instanceType = "InMage"
  masterTargetId = "string"
  multiVmGroupId = "string"
  multiVmGroupName = "string"
  processServerId = "string"
  retentionDrive = "string"
  runAsAccountId = "string"
  vmFriendlyName = "string"
}

For InMageAzureV2, use:

{
  diskEncryptionSetId = "string"
  disksToInclude = [
    {
      diskEncryptionSetId = "string"
      diskId = "string"
      diskType = "string"
      logStorageAccountId = "string"
    }
  ]
  diskType = "string"
  enableRdpOnTargetOption = "string"
  instanceType = "InMageAzureV2"
  licenseType = "string"
  logStorageAccountId = "string"
  masterTargetId = "string"
  multiVmGroupId = "string"
  multiVmGroupName = "string"
  processServerId = "string"
  runAsAccountId = "string"
  seedManagedDiskTags = {
    {customized property} = "string"
  }
  sqlServerLicenseType = "string"
  storageAccountId = "string"
  targetAvailabilitySetId = "string"
  targetAvailabilityZone = "string"
  targetAzureNetworkId = "string"
  targetAzureSubnetId = "string"
  targetAzureV1ResourceGroupId = "string"
  targetAzureV2ResourceGroupId = "string"
  targetAzureVmName = "string"
  targetManagedDiskTags = {
    {customized property} = "string"
  }
  targetNicTags = {
    {customized property} = "string"
  }
  targetProximityPlacementGroupId = "string"
  targetVmSize = "string"
  targetVmTags = {
    {customized property} = "string"
  }
}

For InMageRcm, use:

{
  disksDefault = {
    diskEncryptionSetId = "string"
    diskType = "string"
    logStorageAccountId = "string"
  }
  disksToInclude = [
    {
      diskEncryptionSetId = "string"
      diskId = "string"
      diskType = "string"
      logStorageAccountId = "string"
    }
  ]
  fabricDiscoveryMachineId = "string"
  instanceType = "InMageRcm"
  licenseType = "string"
  multiVmGroupName = "string"
  processServerId = "string"
  runAsAccountId = "string"
  targetAvailabilitySetId = "string"
  targetAvailabilityZone = "string"
  targetBootDiagnosticsStorageAccountId = "string"
  targetNetworkId = "string"
  targetProximityPlacementGroupId = "string"
  targetResourceGroupId = "string"
  targetSubnetName = "string"
  targetVmName = "string"
  targetVmSize = "string"
  testNetworkId = "string"
  testSubnetName = "string"
}

For HyperVReplica2012, use:

{
  instanceType = "HyperVReplica2012"
}

For HyperVReplica2012R2, use:

{
  instanceType = "HyperVReplica2012R2"
}

For HyperVReplicaBaseReplicationDetails, use:

{
  instanceType = "HyperVReplicaBaseReplicationDetails"
}

For InMageRcmFailback, use:

{
  instanceType = "InMageRcmFailback"
}

Property values

A2ACrossClusterMigrationEnableProtectionInputOrA2ACrossClusterMigrationReplicationDetails

Name Description Value
fabricObjectId The fabric specific object Id of the virtual machine. string
instanceType The class type. 'A2ACrossClusterMigration' (required)
recoveryContainerId The recovery container Id. string

A2AEnableProtectionInputOrA2AReplicationDetails

Name Description Value
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
recoveryAvailabilitySetId The recovery availability set Id. string
recoveryAvailabilityZone The recovery availability zone. string
recoveryAzureNetworkId The recovery Azure virtual network ARM id. string
recoveryBootDiagStorageAccountId The boot diagnostic storage account. string
recoveryCapacityReservationGroupId The recovery capacity reservation group Id. string
recoveryCloudServiceId The recovery cloud service Id. Valid for V1 scenarios. string
recoveryContainerId The recovery container Id. string
recoveryProximityPlacementGroupId The recovery proximity placement group Id. string
recoveryResourceGroupId The recovery resource group Id. Valid for V2 scenarios. string
recoverySubnetName The recovery subnet name. string
recoveryVirtualMachineScaleSetId The virtual machine scale set Id. string
vmDisks The list of vm disk details. A2AVmDiskInputDetails[]
vmManagedDisks The list of vm managed disk details. A2AVmManagedDiskInputDetails[]

A2AVmDiskInputDetails

Name Description Value
diskUri The disk Uri. string (required)
primaryStagingAzureStorageAccountId The primary staging storage account Id. string (required)
recoveryAzureStorageAccountId The recovery VHD storage account Id. string (required)

A2AVmManagedDiskInputDetails

Name Description Value
diskEncryptionInfo The recovery disk encryption information (for one / single pass flows). DiskEncryptionInfo
diskId The disk Id. string (required)
primaryStagingAzureStorageAccountId The primary staging storage account Arm Id. string (required)
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
recoveryResourceGroupId The target resource group Arm Id. string (required)
recoveryTargetDiskAccountType The target disk type after failover. Its an optional value and will be same as source disk type if not user provided. string

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

EnableProtectionInputPropertiesOrReplicationProtectedItemProperties

Name Description Value
policyId The Policy Id. string
protectableItemId The protectable item Id. string
providerSpecificDetails The ReplicationProviderInput. For HyperVReplicaAzure provider, it will be AzureEnableProtectionInput object. For San provider, it will be SanEnableProtectionInput object. For HyperVReplicaAzure provider, it can be null. EnableProtectionProviderSpecificInputOrReplicationProviderSpecificSettings

EnableProtectionProviderSpecificInputOrReplicationProviderSpecificSettings

Name Description Value
instanceType Set to 'A2A' for type A2AEnableProtectionInputOrA2AReplicationDetails. Set to 'A2ACrossClusterMigration' for type A2ACrossClusterMigrationEnableProtectionInputOrA2ACrossClusterMigrationReplicationDetails. Set to 'HyperVReplicaAzure' for type HyperVReplicaAzureEnableProtectionInputOrHyperVReplicaAzureReplicationDetails. Set to 'InMage' for type InMageEnableProtectionInputOrInMageReplicationDetails. Set to 'InMageAzureV2' for type InMageAzureV2EnableProtectionInputOrInMageAzureV2ReplicationDetails. Set to 'InMageRcm' for type InMageRcmEnableProtectionInputOrInMageRcmReplicationDetails. Set to 'HyperVReplica2012' for type HyperVReplicaReplicationDetails. Set to 'HyperVReplica2012R2' for type HyperVReplicaBlueReplicationDetails. Set to 'HyperVReplicaBaseReplicationDetails' for type HyperVReplicaBaseReplicationDetails. Set to 'InMageRcmFailback' for type InMageRcmFailbackReplicationDetails. 'A2A'
'A2ACrossClusterMigration'
'HyperVReplica2012'
'HyperVReplica2012R2'
'HyperVReplicaAzure'
'HyperVReplicaBaseReplicationDetails'
'InMage'
'InMageAzureV2'
'InMageRcm'
'InMageRcmFailback' (required)

HyperVReplicaAzureDiskInputDetails

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM ID. string
diskId The DiskId. string
diskType The DiskType. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS'
logStorageAccountId The LogStorageAccountId. string

HyperVReplicaAzureEnableProtectionInputOrHyperVReplicaAzureReplicationDetails

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM Id. string
disksToInclude The list of VHD Ids of disks to be protected. string[]
disksToIncludeForManagedDisks The disks to include list for managed disks. HyperVReplicaAzureDiskInputDetails[]
diskType The DiskType. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS'
enableRdpOnTargetOption The selected option to enable RDP\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. string
hvHostVmId The Hyper-V host VM Id. string
instanceType The class type. 'HyperVReplicaAzure' (required)
licenseType License type. 'NoLicenseType'
'NotSpecified'
'WindowsServer'
logStorageAccountId The storage account to be used for logging during replication. string
osType The OS type associated with VM. string
seedManagedDiskTags The tags for the seed managed disks. HyperVReplicaAzureEnableProtectionInputSeedManagedDiskTags
sqlServerLicenseType The SQL Server license type. 'AHUB'
'NoLicenseType'
'NotSpecified'
'PAYG'
targetAvailabilitySetId The target availability set ARM Id for resource manager deployment. string
targetAvailabilityZone The target availability zone. string
targetAzureNetworkId The selected target Azure network Id. string
targetAzureSubnetId The selected target Azure subnet Id. string
targetAzureV1ResourceGroupId The Id of the target resource group (for classic deployment) in which the failover VM is to be created. string
targetAzureV2ResourceGroupId The Id of the target resource group (for resource manager deployment) in which the failover VM is to be created. string
targetAzureVmName The target azure VM Name. string
targetManagedDiskTags The tags for the target managed disks. HyperVReplicaAzureEnableProtectionInputTargetManagedDiskTags
targetNicTags The tags for the target NICs. HyperVReplicaAzureEnableProtectionInputTargetNicTags
targetProximityPlacementGroupId The proximity placement group ARM Id. string
targetStorageAccountId The storage account Id. string
targetVmSize The target VM size. string
targetVmTags The target VM tags. HyperVReplicaAzureEnableProtectionInputTargetVmTags
useManagedDisks A value indicating whether managed disks should be used during failover. string
useManagedDisksForReplication A value indicating whether managed disks should be used during replication. string
vhdId The OS disk VHD id associated with VM. string
vmName The VM Name. string

HyperVReplicaAzureEnableProtectionInputSeedManagedDiskTags

Name Description Value

HyperVReplicaAzureEnableProtectionInputTargetManagedDiskTags

Name Description Value

HyperVReplicaAzureEnableProtectionInputTargetNicTags

Name Description Value

HyperVReplicaAzureEnableProtectionInputTargetVmTags

Name Description Value

HyperVReplicaBaseReplicationDetails

Name Description Value
instanceType The class type. 'HyperVReplicaBaseReplicationDetails' (required)

HyperVReplicaBlueReplicationDetails

Name Description Value
instanceType The class type. 'HyperVReplica2012R2' (required)

HyperVReplicaReplicationDetails

Name Description Value
instanceType The class type. 'HyperVReplica2012' (required)

InMageAzureV2DiskInputDetails

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM ID. string
diskId The DiskId. string
diskType The DiskType. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS'
logStorageAccountId The LogStorageAccountId. string

InMageAzureV2EnableProtectionInputOrInMageAzureV2ReplicationDetails

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM Id. string
disksToInclude The disks to include list. InMageAzureV2DiskInputDetails[]
diskType The DiskType. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS'
enableRdpOnTargetOption The selected option to enable RDP\SSH on target VM after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. string
instanceType The class type. 'InMageAzureV2' (required)
licenseType License type. 'NoLicenseType'
'NotSpecified'
'WindowsServer'
logStorageAccountId The storage account to be used for logging during replication. string
masterTargetId The Master target Id. string
multiVmGroupId The multi VM group Id. string
multiVmGroupName The multi VM group name. string
processServerId The Process Server Id. string
runAsAccountId The CS account Id. string
seedManagedDiskTags The tags for the seed managed disks. InMageAzureV2EnableProtectionInputSeedManagedDiskTags
sqlServerLicenseType The SQL Server license type. 'AHUB'
'NoLicenseType'
'NotSpecified'
'PAYG'
storageAccountId The storage account Id. string
targetAvailabilitySetId The target availability set ARM Id for resource manager deployment. string
targetAvailabilityZone The target availability zone. string
targetAzureNetworkId The selected target Azure network Id. string
targetAzureSubnetId The selected target Azure subnet Id. string
targetAzureV1ResourceGroupId The Id of the target resource group (for classic deployment) in which the failover VM is to be created. string
targetAzureV2ResourceGroupId The Id of the target resource group (for resource manager deployment) in which the failover VM is to be created. string
targetAzureVmName The target azure VM Name. string
targetManagedDiskTags The tags for the target managed disks. InMageAzureV2EnableProtectionInputTargetManagedDiskTags
targetNicTags The tags for the target NICs. InMageAzureV2EnableProtectionInputTargetNicTags
targetProximityPlacementGroupId The proximity placement group ARM Id. string
targetVmSize The target VM size. string
targetVmTags The target VM tags. InMageAzureV2EnableProtectionInputTargetVmTags

InMageAzureV2EnableProtectionInputSeedManagedDiskTags

Name Description Value

InMageAzureV2EnableProtectionInputTargetManagedDiskTags

Name Description Value

InMageAzureV2EnableProtectionInputTargetNicTags

Name Description Value

InMageAzureV2EnableProtectionInputTargetVmTags

Name Description Value

InMageDiskExclusionInput

Name Description Value
diskSignatureOptions The guest disk signature based option for disk exclusion. InMageDiskSignatureExclusionOptions[]
volumeOptions The volume label based option for disk exclusion. InMageVolumeExclusionOptions[]

InMageDiskSignatureExclusionOptions

Name Description Value
diskSignature The guest signature of disk to be excluded from replication. string

InMageEnableProtectionInputOrInMageReplicationDetails

Name Description Value
datastoreName The target datastore name. string
diskExclusionInput The enable disk exclusion input. InMageDiskExclusionInput
disksToInclude The disks to include list. string[]
instanceType The class type. 'InMage' (required)
masterTargetId The Master Target Id. string (required)
multiVmGroupId The multi VM group Id. string (required)
multiVmGroupName The multi VM group name. string (required)
processServerId The Process Server Id. string (required)
retentionDrive The retention drive to use on the MT. string (required)
runAsAccountId The CS account Id. string
vmFriendlyName The VM Name. string

InMageRcmDiskInput

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM Id. string
diskId The disk Id. string (required)
diskType The disk type. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS' (required)
logStorageAccountId The log storage account ARM Id. string (required)

InMageRcmDisksDefaultInput

Name Description Value
diskEncryptionSetId The DiskEncryptionSet ARM Id. string
diskType The disk type. 'Premium_LRS'
'StandardSSD_LRS'
'Standard_LRS' (required)
logStorageAccountId The log storage account ARM Id. string (required)

InMageRcmEnableProtectionInputOrInMageRcmReplicationDetails

Name Description Value
disksDefault The default disk input. InMageRcmDisksDefaultInput
disksToInclude The disks to include list. InMageRcmDiskInput[]
fabricDiscoveryMachineId The ARM Id of discovered machine. string (required)
instanceType The class type. 'InMageRcm' (required)
licenseType The license type. 'NoLicenseType'
'NotSpecified'
'WindowsServer'
multiVmGroupName The multi VM group name. string
processServerId The process server Id. string (required)
runAsAccountId The run-as account Id. string
targetAvailabilitySetId The target availability set ARM Id. string
targetAvailabilityZone The target availability zone. string
targetBootDiagnosticsStorageAccountId The target boot diagnostics storage account ARM Id. string
targetNetworkId The selected target network ARM Id. string
targetProximityPlacementGroupId The target proximity placement group Id. string
targetResourceGroupId The target resource group ARM Id. string (required)
targetSubnetName The selected target subnet name. string
targetVmName The target VM name. string
targetVmSize The target VM size. string
testNetworkId The selected test network ARM Id. string
testSubnetName The selected test subnet name. string

InMageRcmFailbackReplicationDetails

Name Description Value
instanceType The class type. 'InMageRcmFailback' (required)

InMageVolumeExclusionOptions

Name Description Value
onlyExcludeIfSingleVolume The value indicating whether to exclude multi volume disk or not. If a disk has multiple volumes and one of the volume has label matching with VolumeLabel this disk will be excluded from replication if OnlyExcludeIfSingleVolume is false. string
volumeLabel The volume label. The disk having any volume with this label will be excluded from replication. string

KeyEncryptionKeyInfo

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

Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems

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/replicationFabrics/replicationProtectionContainers
properties Enable protection input properties. EnableProtectionInputPropertiesOrReplicationProtectedItemProperties
type The resource type "Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems@2021-10-01"