1. Packages
  2. Azure Classic
  3. API Docs
  4. siterecovery
  5. ReplicationRecoveryPlan

We recommend using Azure Native.

Azure Classic v5.81.0 published on Monday, Jun 24, 2024 by Pulumi

azure.siterecovery.ReplicationRecoveryPlan

Explore with Pulumi AI

azure logo

We recommend using Azure Native.

Azure Classic v5.81.0 published on Monday, Jun 24, 2024 by Pulumi

    Manages a Site Recovery Replication Recovery Plan within a Recovery Services vault. A recovery plan gathers machines into recovery groups for the purpose of failover.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as azure from "@pulumi/azure";
    
    const primary = new azure.core.ResourceGroup("primary", {
        name: "tfex-replicated-vm-primary",
        location: "West US",
    });
    const secondary = new azure.core.ResourceGroup("secondary", {
        name: "tfex-replicated-vm-secondary",
        location: "East US",
    });
    const primaryVirtualNetwork = new azure.network.VirtualNetwork("primary", {
        name: "network1",
        resourceGroupName: primary.name,
        addressSpaces: ["192.168.1.0/24"],
        location: primary.location,
    });
    const primarySubnet = new azure.network.Subnet("primary", {
        name: "network1-subnet",
        resourceGroupName: primary.name,
        virtualNetworkName: primaryVirtualNetwork.name,
        addressPrefixes: ["192.168.1.0/24"],
    });
    const primaryPublicIp = new azure.network.PublicIp("primary", {
        name: "vm-public-ip-primary",
        allocationMethod: "Static",
        location: primary.location,
        resourceGroupName: primary.name,
        sku: "Basic",
    });
    const vmNetworkInterface = new azure.network.NetworkInterface("vm", {
        name: "vm-nic",
        location: primary.location,
        resourceGroupName: primary.name,
        ipConfigurations: [{
            name: "vm",
            subnetId: primarySubnet.id,
            privateIpAddressAllocation: "Dynamic",
            publicIpAddressId: primaryPublicIp.id,
        }],
    });
    const vm = new azure.compute.VirtualMachine("vm", {
        name: "vm",
        location: primary.location,
        resourceGroupName: primary.name,
        vmSize: "Standard_B1s",
        networkInterfaceIds: [vmNetworkInterface.id],
        storageImageReference: {
            publisher: "Canonical",
            offer: "0001-com-ubuntu-server-jammy",
            sku: "22_04-lts",
            version: "latest",
        },
        storageOsDisk: {
            name: "vm-os-disk",
            osType: "Linux",
            caching: "ReadWrite",
            createOption: "FromImage",
            managedDiskType: "Premium_LRS",
        },
        osProfile: {
            adminUsername: "test-admin-123",
            adminPassword: "test-pwd-123",
            computerName: "vm",
        },
        osProfileLinuxConfig: {
            disablePasswordAuthentication: false,
        },
    });
    const vault = new azure.recoveryservices.Vault("vault", {
        name: "example-recovery-vault",
        location: secondary.location,
        resourceGroupName: secondary.name,
        sku: "Standard",
    });
    const primaryFabric = new azure.siterecovery.Fabric("primary", {
        name: "primary-fabric",
        resourceGroupName: secondary.name,
        recoveryVaultName: vault.name,
        location: primary.location,
    });
    const secondaryFabric = new azure.siterecovery.Fabric("secondary", {
        name: "secondary-fabric",
        resourceGroupName: secondary.name,
        recoveryVaultName: vault.name,
        location: secondary.location,
    });
    const primaryProtectionContainer = new azure.siterecovery.ProtectionContainer("primary", {
        name: "primary-protection-container",
        resourceGroupName: secondary.name,
        recoveryVaultName: vault.name,
        recoveryFabricName: primaryFabric.name,
    });
    const secondaryProtectionContainer = new azure.siterecovery.ProtectionContainer("secondary", {
        name: "secondary-protection-container",
        resourceGroupName: secondary.name,
        recoveryVaultName: vault.name,
        recoveryFabricName: secondaryFabric.name,
    });
    const policy = new azure.siterecovery.ReplicationPolicy("policy", {
        name: "policy",
        resourceGroupName: secondary.name,
        recoveryVaultName: vault.name,
        recoveryPointRetentionInMinutes: 24 * 60,
        applicationConsistentSnapshotFrequencyInMinutes: 4 * 60,
    });
    const container_mapping = new azure.siterecovery.ProtectionContainerMapping("container-mapping", {
        name: "container-mapping",
        resourceGroupName: secondary.name,
        recoveryVaultName: vault.name,
        recoveryFabricName: primaryFabric.name,
        recoverySourceProtectionContainerName: primaryProtectionContainer.name,
        recoveryTargetProtectionContainerId: secondaryProtectionContainer.id,
        recoveryReplicationPolicyId: policy.id,
    });
    const secondaryVirtualNetwork = new azure.network.VirtualNetwork("secondary", {
        name: "network2",
        resourceGroupName: secondary.name,
        addressSpaces: ["192.168.2.0/24"],
        location: secondary.location,
    });
    const network_mapping = new azure.siterecovery.NetworkMapping("network-mapping", {
        name: "network-mapping",
        resourceGroupName: secondary.name,
        recoveryVaultName: vault.name,
        sourceRecoveryFabricName: primaryFabric.name,
        targetRecoveryFabricName: secondaryFabric.name,
        sourceNetworkId: primaryVirtualNetwork.id,
        targetNetworkId: secondaryVirtualNetwork.id,
    });
    const primaryAccount = new azure.storage.Account("primary", {
        name: "primaryrecoverycache",
        location: primary.location,
        resourceGroupName: primary.name,
        accountTier: "Standard",
        accountReplicationType: "LRS",
    });
    const secondarySubnet = new azure.network.Subnet("secondary", {
        name: "network2-subnet",
        resourceGroupName: secondary.name,
        virtualNetworkName: secondaryVirtualNetwork.name,
        addressPrefixes: ["192.168.2.0/24"],
    });
    const secondaryPublicIp = new azure.network.PublicIp("secondary", {
        name: "vm-public-ip-secondary",
        allocationMethod: "Static",
        location: secondary.location,
        resourceGroupName: secondary.name,
        sku: "Basic",
    });
    const vm_replication = new azure.siterecovery.ReplicatedVM("vm-replication", {
        name: "vm-replication",
        resourceGroupName: secondary.name,
        recoveryVaultName: vault.name,
        sourceRecoveryFabricName: primaryFabric.name,
        sourceVmId: vm.id,
        recoveryReplicationPolicyId: policy.id,
        sourceRecoveryProtectionContainerName: primaryProtectionContainer.name,
        targetResourceGroupId: secondary.id,
        targetRecoveryFabricId: secondaryFabric.id,
        targetRecoveryProtectionContainerId: secondaryProtectionContainer.id,
        managedDisks: [{
            diskId: vm.storageOsDisk.apply(storageOsDisk => storageOsDisk.managedDiskId),
            stagingStorageAccountId: primaryAccount.id,
            targetResourceGroupId: secondary.id,
            targetDiskType: "Premium_LRS",
            targetReplicaDiskType: "Premium_LRS",
        }],
        networkInterfaces: [{
            sourceNetworkInterfaceId: vmNetworkInterface.id,
            targetSubnetName: secondarySubnet.name,
            recoveryPublicIpAddressId: secondaryPublicIp.id,
        }],
    }, {
        dependsOn: [
            container_mapping,
            network_mapping,
        ],
    });
    const example = new azure.siterecovery.ReplicationRecoveryPlan("example", {
        name: "example-recover-plan",
        recoveryVaultId: vault.id,
        sourceRecoveryFabricId: primaryFabric.id,
        targetRecoveryFabricId: secondaryFabric.id,
        shutdownRecoveryGroup: {},
        failoverRecoveryGroup: {},
        bootRecoveryGroups: [{
            replicatedProtectedItems: [vm_replication.id],
        }],
    });
    
    import pulumi
    import pulumi_azure as azure
    
    primary = azure.core.ResourceGroup("primary",
        name="tfex-replicated-vm-primary",
        location="West US")
    secondary = azure.core.ResourceGroup("secondary",
        name="tfex-replicated-vm-secondary",
        location="East US")
    primary_virtual_network = azure.network.VirtualNetwork("primary",
        name="network1",
        resource_group_name=primary.name,
        address_spaces=["192.168.1.0/24"],
        location=primary.location)
    primary_subnet = azure.network.Subnet("primary",
        name="network1-subnet",
        resource_group_name=primary.name,
        virtual_network_name=primary_virtual_network.name,
        address_prefixes=["192.168.1.0/24"])
    primary_public_ip = azure.network.PublicIp("primary",
        name="vm-public-ip-primary",
        allocation_method="Static",
        location=primary.location,
        resource_group_name=primary.name,
        sku="Basic")
    vm_network_interface = azure.network.NetworkInterface("vm",
        name="vm-nic",
        location=primary.location,
        resource_group_name=primary.name,
        ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(
            name="vm",
            subnet_id=primary_subnet.id,
            private_ip_address_allocation="Dynamic",
            public_ip_address_id=primary_public_ip.id,
        )])
    vm = azure.compute.VirtualMachine("vm",
        name="vm",
        location=primary.location,
        resource_group_name=primary.name,
        vm_size="Standard_B1s",
        network_interface_ids=[vm_network_interface.id],
        storage_image_reference=azure.compute.VirtualMachineStorageImageReferenceArgs(
            publisher="Canonical",
            offer="0001-com-ubuntu-server-jammy",
            sku="22_04-lts",
            version="latest",
        ),
        storage_os_disk=azure.compute.VirtualMachineStorageOsDiskArgs(
            name="vm-os-disk",
            os_type="Linux",
            caching="ReadWrite",
            create_option="FromImage",
            managed_disk_type="Premium_LRS",
        ),
        os_profile=azure.compute.VirtualMachineOsProfileArgs(
            admin_username="test-admin-123",
            admin_password="test-pwd-123",
            computer_name="vm",
        ),
        os_profile_linux_config=azure.compute.VirtualMachineOsProfileLinuxConfigArgs(
            disable_password_authentication=False,
        ))
    vault = azure.recoveryservices.Vault("vault",
        name="example-recovery-vault",
        location=secondary.location,
        resource_group_name=secondary.name,
        sku="Standard")
    primary_fabric = azure.siterecovery.Fabric("primary",
        name="primary-fabric",
        resource_group_name=secondary.name,
        recovery_vault_name=vault.name,
        location=primary.location)
    secondary_fabric = azure.siterecovery.Fabric("secondary",
        name="secondary-fabric",
        resource_group_name=secondary.name,
        recovery_vault_name=vault.name,
        location=secondary.location)
    primary_protection_container = azure.siterecovery.ProtectionContainer("primary",
        name="primary-protection-container",
        resource_group_name=secondary.name,
        recovery_vault_name=vault.name,
        recovery_fabric_name=primary_fabric.name)
    secondary_protection_container = azure.siterecovery.ProtectionContainer("secondary",
        name="secondary-protection-container",
        resource_group_name=secondary.name,
        recovery_vault_name=vault.name,
        recovery_fabric_name=secondary_fabric.name)
    policy = azure.siterecovery.ReplicationPolicy("policy",
        name="policy",
        resource_group_name=secondary.name,
        recovery_vault_name=vault.name,
        recovery_point_retention_in_minutes=24 * 60,
        application_consistent_snapshot_frequency_in_minutes=4 * 60)
    container_mapping = azure.siterecovery.ProtectionContainerMapping("container-mapping",
        name="container-mapping",
        resource_group_name=secondary.name,
        recovery_vault_name=vault.name,
        recovery_fabric_name=primary_fabric.name,
        recovery_source_protection_container_name=primary_protection_container.name,
        recovery_target_protection_container_id=secondary_protection_container.id,
        recovery_replication_policy_id=policy.id)
    secondary_virtual_network = azure.network.VirtualNetwork("secondary",
        name="network2",
        resource_group_name=secondary.name,
        address_spaces=["192.168.2.0/24"],
        location=secondary.location)
    network_mapping = azure.siterecovery.NetworkMapping("network-mapping",
        name="network-mapping",
        resource_group_name=secondary.name,
        recovery_vault_name=vault.name,
        source_recovery_fabric_name=primary_fabric.name,
        target_recovery_fabric_name=secondary_fabric.name,
        source_network_id=primary_virtual_network.id,
        target_network_id=secondary_virtual_network.id)
    primary_account = azure.storage.Account("primary",
        name="primaryrecoverycache",
        location=primary.location,
        resource_group_name=primary.name,
        account_tier="Standard",
        account_replication_type="LRS")
    secondary_subnet = azure.network.Subnet("secondary",
        name="network2-subnet",
        resource_group_name=secondary.name,
        virtual_network_name=secondary_virtual_network.name,
        address_prefixes=["192.168.2.0/24"])
    secondary_public_ip = azure.network.PublicIp("secondary",
        name="vm-public-ip-secondary",
        allocation_method="Static",
        location=secondary.location,
        resource_group_name=secondary.name,
        sku="Basic")
    vm_replication = azure.siterecovery.ReplicatedVM("vm-replication",
        name="vm-replication",
        resource_group_name=secondary.name,
        recovery_vault_name=vault.name,
        source_recovery_fabric_name=primary_fabric.name,
        source_vm_id=vm.id,
        recovery_replication_policy_id=policy.id,
        source_recovery_protection_container_name=primary_protection_container.name,
        target_resource_group_id=secondary.id,
        target_recovery_fabric_id=secondary_fabric.id,
        target_recovery_protection_container_id=secondary_protection_container.id,
        managed_disks=[azure.siterecovery.ReplicatedVMManagedDiskArgs(
            disk_id=vm.storage_os_disk.managed_disk_id,
            staging_storage_account_id=primary_account.id,
            target_resource_group_id=secondary.id,
            target_disk_type="Premium_LRS",
            target_replica_disk_type="Premium_LRS",
        )],
        network_interfaces=[azure.siterecovery.ReplicatedVMNetworkInterfaceArgs(
            source_network_interface_id=vm_network_interface.id,
            target_subnet_name=secondary_subnet.name,
            recovery_public_ip_address_id=secondary_public_ip.id,
        )],
        opts=pulumi.ResourceOptions(depends_on=[
                container_mapping,
                network_mapping,
            ]))
    example = azure.siterecovery.ReplicationRecoveryPlan("example",
        name="example-recover-plan",
        recovery_vault_id=vault.id,
        source_recovery_fabric_id=primary_fabric.id,
        target_recovery_fabric_id=secondary_fabric.id,
        shutdown_recovery_group=azure.siterecovery.ReplicationRecoveryPlanShutdownRecoveryGroupArgs(),
        failover_recovery_group=azure.siterecovery.ReplicationRecoveryPlanFailoverRecoveryGroupArgs(),
        boot_recovery_groups=[azure.siterecovery.ReplicationRecoveryPlanBootRecoveryGroupArgs(
            replicated_protected_items=[vm_replication.id],
        )])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/compute"
    	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
    	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
    	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/recoveryservices"
    	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/siterecovery"
    	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/storage"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		primary, err := core.NewResourceGroup(ctx, "primary", &core.ResourceGroupArgs{
    			Name:     pulumi.String("tfex-replicated-vm-primary"),
    			Location: pulumi.String("West US"),
    		})
    		if err != nil {
    			return err
    		}
    		secondary, err := core.NewResourceGroup(ctx, "secondary", &core.ResourceGroupArgs{
    			Name:     pulumi.String("tfex-replicated-vm-secondary"),
    			Location: pulumi.String("East US"),
    		})
    		if err != nil {
    			return err
    		}
    		primaryVirtualNetwork, err := network.NewVirtualNetwork(ctx, "primary", &network.VirtualNetworkArgs{
    			Name:              pulumi.String("network1"),
    			ResourceGroupName: primary.Name,
    			AddressSpaces: pulumi.StringArray{
    				pulumi.String("192.168.1.0/24"),
    			},
    			Location: primary.Location,
    		})
    		if err != nil {
    			return err
    		}
    		primarySubnet, err := network.NewSubnet(ctx, "primary", &network.SubnetArgs{
    			Name:               pulumi.String("network1-subnet"),
    			ResourceGroupName:  primary.Name,
    			VirtualNetworkName: primaryVirtualNetwork.Name,
    			AddressPrefixes: pulumi.StringArray{
    				pulumi.String("192.168.1.0/24"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		primaryPublicIp, err := network.NewPublicIp(ctx, "primary", &network.PublicIpArgs{
    			Name:              pulumi.String("vm-public-ip-primary"),
    			AllocationMethod:  pulumi.String("Static"),
    			Location:          primary.Location,
    			ResourceGroupName: primary.Name,
    			Sku:               pulumi.String("Basic"),
    		})
    		if err != nil {
    			return err
    		}
    		vmNetworkInterface, err := network.NewNetworkInterface(ctx, "vm", &network.NetworkInterfaceArgs{
    			Name:              pulumi.String("vm-nic"),
    			Location:          primary.Location,
    			ResourceGroupName: primary.Name,
    			IpConfigurations: network.NetworkInterfaceIpConfigurationArray{
    				&network.NetworkInterfaceIpConfigurationArgs{
    					Name:                       pulumi.String("vm"),
    					SubnetId:                   primarySubnet.ID(),
    					PrivateIpAddressAllocation: pulumi.String("Dynamic"),
    					PublicIpAddressId:          primaryPublicIp.ID(),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		vm, err := compute.NewVirtualMachine(ctx, "vm", &compute.VirtualMachineArgs{
    			Name:              pulumi.String("vm"),
    			Location:          primary.Location,
    			ResourceGroupName: primary.Name,
    			VmSize:            pulumi.String("Standard_B1s"),
    			NetworkInterfaceIds: pulumi.StringArray{
    				vmNetworkInterface.ID(),
    			},
    			StorageImageReference: &compute.VirtualMachineStorageImageReferenceArgs{
    				Publisher: pulumi.String("Canonical"),
    				Offer:     pulumi.String("0001-com-ubuntu-server-jammy"),
    				Sku:       pulumi.String("22_04-lts"),
    				Version:   pulumi.String("latest"),
    			},
    			StorageOsDisk: &compute.VirtualMachineStorageOsDiskArgs{
    				Name:            pulumi.String("vm-os-disk"),
    				OsType:          pulumi.String("Linux"),
    				Caching:         pulumi.String("ReadWrite"),
    				CreateOption:    pulumi.String("FromImage"),
    				ManagedDiskType: pulumi.String("Premium_LRS"),
    			},
    			OsProfile: &compute.VirtualMachineOsProfileArgs{
    				AdminUsername: pulumi.String("test-admin-123"),
    				AdminPassword: pulumi.String("test-pwd-123"),
    				ComputerName:  pulumi.String("vm"),
    			},
    			OsProfileLinuxConfig: &compute.VirtualMachineOsProfileLinuxConfigArgs{
    				DisablePasswordAuthentication: pulumi.Bool(false),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		vault, err := recoveryservices.NewVault(ctx, "vault", &recoveryservices.VaultArgs{
    			Name:              pulumi.String("example-recovery-vault"),
    			Location:          secondary.Location,
    			ResourceGroupName: secondary.Name,
    			Sku:               pulumi.String("Standard"),
    		})
    		if err != nil {
    			return err
    		}
    		primaryFabric, err := siterecovery.NewFabric(ctx, "primary", &siterecovery.FabricArgs{
    			Name:              pulumi.String("primary-fabric"),
    			ResourceGroupName: secondary.Name,
    			RecoveryVaultName: vault.Name,
    			Location:          primary.Location,
    		})
    		if err != nil {
    			return err
    		}
    		secondaryFabric, err := siterecovery.NewFabric(ctx, "secondary", &siterecovery.FabricArgs{
    			Name:              pulumi.String("secondary-fabric"),
    			ResourceGroupName: secondary.Name,
    			RecoveryVaultName: vault.Name,
    			Location:          secondary.Location,
    		})
    		if err != nil {
    			return err
    		}
    		primaryProtectionContainer, err := siterecovery.NewProtectionContainer(ctx, "primary", &siterecovery.ProtectionContainerArgs{
    			Name:               pulumi.String("primary-protection-container"),
    			ResourceGroupName:  secondary.Name,
    			RecoveryVaultName:  vault.Name,
    			RecoveryFabricName: primaryFabric.Name,
    		})
    		if err != nil {
    			return err
    		}
    		secondaryProtectionContainer, err := siterecovery.NewProtectionContainer(ctx, "secondary", &siterecovery.ProtectionContainerArgs{
    			Name:               pulumi.String("secondary-protection-container"),
    			ResourceGroupName:  secondary.Name,
    			RecoveryVaultName:  vault.Name,
    			RecoveryFabricName: secondaryFabric.Name,
    		})
    		if err != nil {
    			return err
    		}
    		policy, err := siterecovery.NewReplicationPolicy(ctx, "policy", &siterecovery.ReplicationPolicyArgs{
    			Name:                            pulumi.String("policy"),
    			ResourceGroupName:               secondary.Name,
    			RecoveryVaultName:               vault.Name,
    			RecoveryPointRetentionInMinutes: 24 * 60,
    			ApplicationConsistentSnapshotFrequencyInMinutes: 4 * 60,
    		})
    		if err != nil {
    			return err
    		}
    		_, err = siterecovery.NewProtectionContainerMapping(ctx, "container-mapping", &siterecovery.ProtectionContainerMappingArgs{
    			Name:                                  pulumi.String("container-mapping"),
    			ResourceGroupName:                     secondary.Name,
    			RecoveryVaultName:                     vault.Name,
    			RecoveryFabricName:                    primaryFabric.Name,
    			RecoverySourceProtectionContainerName: primaryProtectionContainer.Name,
    			RecoveryTargetProtectionContainerId:   secondaryProtectionContainer.ID(),
    			RecoveryReplicationPolicyId:           policy.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		secondaryVirtualNetwork, err := network.NewVirtualNetwork(ctx, "secondary", &network.VirtualNetworkArgs{
    			Name:              pulumi.String("network2"),
    			ResourceGroupName: secondary.Name,
    			AddressSpaces: pulumi.StringArray{
    				pulumi.String("192.168.2.0/24"),
    			},
    			Location: secondary.Location,
    		})
    		if err != nil {
    			return err
    		}
    		_, err = siterecovery.NewNetworkMapping(ctx, "network-mapping", &siterecovery.NetworkMappingArgs{
    			Name:                     pulumi.String("network-mapping"),
    			ResourceGroupName:        secondary.Name,
    			RecoveryVaultName:        vault.Name,
    			SourceRecoveryFabricName: primaryFabric.Name,
    			TargetRecoveryFabricName: secondaryFabric.Name,
    			SourceNetworkId:          primaryVirtualNetwork.ID(),
    			TargetNetworkId:          secondaryVirtualNetwork.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		primaryAccount, err := storage.NewAccount(ctx, "primary", &storage.AccountArgs{
    			Name:                   pulumi.String("primaryrecoverycache"),
    			Location:               primary.Location,
    			ResourceGroupName:      primary.Name,
    			AccountTier:            pulumi.String("Standard"),
    			AccountReplicationType: pulumi.String("LRS"),
    		})
    		if err != nil {
    			return err
    		}
    		secondarySubnet, err := network.NewSubnet(ctx, "secondary", &network.SubnetArgs{
    			Name:               pulumi.String("network2-subnet"),
    			ResourceGroupName:  secondary.Name,
    			VirtualNetworkName: secondaryVirtualNetwork.Name,
    			AddressPrefixes: pulumi.StringArray{
    				pulumi.String("192.168.2.0/24"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		secondaryPublicIp, err := network.NewPublicIp(ctx, "secondary", &network.PublicIpArgs{
    			Name:              pulumi.String("vm-public-ip-secondary"),
    			AllocationMethod:  pulumi.String("Static"),
    			Location:          secondary.Location,
    			ResourceGroupName: secondary.Name,
    			Sku:               pulumi.String("Basic"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = siterecovery.NewReplicatedVM(ctx, "vm-replication", &siterecovery.ReplicatedVMArgs{
    			Name:                                  pulumi.String("vm-replication"),
    			ResourceGroupName:                     secondary.Name,
    			RecoveryVaultName:                     vault.Name,
    			SourceRecoveryFabricName:              primaryFabric.Name,
    			SourceVmId:                            vm.ID(),
    			RecoveryReplicationPolicyId:           policy.ID(),
    			SourceRecoveryProtectionContainerName: primaryProtectionContainer.Name,
    			TargetResourceGroupId:                 secondary.ID(),
    			TargetRecoveryFabricId:                secondaryFabric.ID(),
    			TargetRecoveryProtectionContainerId:   secondaryProtectionContainer.ID(),
    			ManagedDisks: siterecovery.ReplicatedVMManagedDiskArray{
    				&siterecovery.ReplicatedVMManagedDiskArgs{
    					DiskId: vm.StorageOsDisk.ApplyT(func(storageOsDisk compute.VirtualMachineStorageOsDisk) (*string, error) {
    						return &storageOsDisk.ManagedDiskId, nil
    					}).(pulumi.StringPtrOutput),
    					StagingStorageAccountId: primaryAccount.ID(),
    					TargetResourceGroupId:   secondary.ID(),
    					TargetDiskType:          pulumi.String("Premium_LRS"),
    					TargetReplicaDiskType:   pulumi.String("Premium_LRS"),
    				},
    			},
    			NetworkInterfaces: siterecovery.ReplicatedVMNetworkInterfaceArray{
    				&siterecovery.ReplicatedVMNetworkInterfaceArgs{
    					SourceNetworkInterfaceId:  vmNetworkInterface.ID(),
    					TargetSubnetName:          secondarySubnet.Name,
    					RecoveryPublicIpAddressId: secondaryPublicIp.ID(),
    				},
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			container_mapping,
    			network_mapping,
    		}))
    		if err != nil {
    			return err
    		}
    		_, err = siterecovery.NewReplicationRecoveryPlan(ctx, "example", &siterecovery.ReplicationRecoveryPlanArgs{
    			Name:                   pulumi.String("example-recover-plan"),
    			RecoveryVaultId:        vault.ID(),
    			SourceRecoveryFabricId: primaryFabric.ID(),
    			TargetRecoveryFabricId: secondaryFabric.ID(),
    			ShutdownRecoveryGroup:  nil,
    			FailoverRecoveryGroup:  nil,
    			BootRecoveryGroups: siterecovery.ReplicationRecoveryPlanBootRecoveryGroupArray{
    				&siterecovery.ReplicationRecoveryPlanBootRecoveryGroupArgs{
    					ReplicatedProtectedItems: pulumi.StringArray{
    						vm_replication.ID(),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Azure = Pulumi.Azure;
    
    return await Deployment.RunAsync(() => 
    {
        var primary = new Azure.Core.ResourceGroup("primary", new()
        {
            Name = "tfex-replicated-vm-primary",
            Location = "West US",
        });
    
        var secondary = new Azure.Core.ResourceGroup("secondary", new()
        {
            Name = "tfex-replicated-vm-secondary",
            Location = "East US",
        });
    
        var primaryVirtualNetwork = new Azure.Network.VirtualNetwork("primary", new()
        {
            Name = "network1",
            ResourceGroupName = primary.Name,
            AddressSpaces = new[]
            {
                "192.168.1.0/24",
            },
            Location = primary.Location,
        });
    
        var primarySubnet = new Azure.Network.Subnet("primary", new()
        {
            Name = "network1-subnet",
            ResourceGroupName = primary.Name,
            VirtualNetworkName = primaryVirtualNetwork.Name,
            AddressPrefixes = new[]
            {
                "192.168.1.0/24",
            },
        });
    
        var primaryPublicIp = new Azure.Network.PublicIp("primary", new()
        {
            Name = "vm-public-ip-primary",
            AllocationMethod = "Static",
            Location = primary.Location,
            ResourceGroupName = primary.Name,
            Sku = "Basic",
        });
    
        var vmNetworkInterface = new Azure.Network.NetworkInterface("vm", new()
        {
            Name = "vm-nic",
            Location = primary.Location,
            ResourceGroupName = primary.Name,
            IpConfigurations = new[]
            {
                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs
                {
                    Name = "vm",
                    SubnetId = primarySubnet.Id,
                    PrivateIpAddressAllocation = "Dynamic",
                    PublicIpAddressId = primaryPublicIp.Id,
                },
            },
        });
    
        var vm = new Azure.Compute.VirtualMachine("vm", new()
        {
            Name = "vm",
            Location = primary.Location,
            ResourceGroupName = primary.Name,
            VmSize = "Standard_B1s",
            NetworkInterfaceIds = new[]
            {
                vmNetworkInterface.Id,
            },
            StorageImageReference = new Azure.Compute.Inputs.VirtualMachineStorageImageReferenceArgs
            {
                Publisher = "Canonical",
                Offer = "0001-com-ubuntu-server-jammy",
                Sku = "22_04-lts",
                Version = "latest",
            },
            StorageOsDisk = new Azure.Compute.Inputs.VirtualMachineStorageOsDiskArgs
            {
                Name = "vm-os-disk",
                OsType = "Linux",
                Caching = "ReadWrite",
                CreateOption = "FromImage",
                ManagedDiskType = "Premium_LRS",
            },
            OsProfile = new Azure.Compute.Inputs.VirtualMachineOsProfileArgs
            {
                AdminUsername = "test-admin-123",
                AdminPassword = "test-pwd-123",
                ComputerName = "vm",
            },
            OsProfileLinuxConfig = new Azure.Compute.Inputs.VirtualMachineOsProfileLinuxConfigArgs
            {
                DisablePasswordAuthentication = false,
            },
        });
    
        var vault = new Azure.RecoveryServices.Vault("vault", new()
        {
            Name = "example-recovery-vault",
            Location = secondary.Location,
            ResourceGroupName = secondary.Name,
            Sku = "Standard",
        });
    
        var primaryFabric = new Azure.SiteRecovery.Fabric("primary", new()
        {
            Name = "primary-fabric",
            ResourceGroupName = secondary.Name,
            RecoveryVaultName = vault.Name,
            Location = primary.Location,
        });
    
        var secondaryFabric = new Azure.SiteRecovery.Fabric("secondary", new()
        {
            Name = "secondary-fabric",
            ResourceGroupName = secondary.Name,
            RecoveryVaultName = vault.Name,
            Location = secondary.Location,
        });
    
        var primaryProtectionContainer = new Azure.SiteRecovery.ProtectionContainer("primary", new()
        {
            Name = "primary-protection-container",
            ResourceGroupName = secondary.Name,
            RecoveryVaultName = vault.Name,
            RecoveryFabricName = primaryFabric.Name,
        });
    
        var secondaryProtectionContainer = new Azure.SiteRecovery.ProtectionContainer("secondary", new()
        {
            Name = "secondary-protection-container",
            ResourceGroupName = secondary.Name,
            RecoveryVaultName = vault.Name,
            RecoveryFabricName = secondaryFabric.Name,
        });
    
        var policy = new Azure.SiteRecovery.ReplicationPolicy("policy", new()
        {
            Name = "policy",
            ResourceGroupName = secondary.Name,
            RecoveryVaultName = vault.Name,
            RecoveryPointRetentionInMinutes = 24 * 60,
            ApplicationConsistentSnapshotFrequencyInMinutes = 4 * 60,
        });
    
        var container_mapping = new Azure.SiteRecovery.ProtectionContainerMapping("container-mapping", new()
        {
            Name = "container-mapping",
            ResourceGroupName = secondary.Name,
            RecoveryVaultName = vault.Name,
            RecoveryFabricName = primaryFabric.Name,
            RecoverySourceProtectionContainerName = primaryProtectionContainer.Name,
            RecoveryTargetProtectionContainerId = secondaryProtectionContainer.Id,
            RecoveryReplicationPolicyId = policy.Id,
        });
    
        var secondaryVirtualNetwork = new Azure.Network.VirtualNetwork("secondary", new()
        {
            Name = "network2",
            ResourceGroupName = secondary.Name,
            AddressSpaces = new[]
            {
                "192.168.2.0/24",
            },
            Location = secondary.Location,
        });
    
        var network_mapping = new Azure.SiteRecovery.NetworkMapping("network-mapping", new()
        {
            Name = "network-mapping",
            ResourceGroupName = secondary.Name,
            RecoveryVaultName = vault.Name,
            SourceRecoveryFabricName = primaryFabric.Name,
            TargetRecoveryFabricName = secondaryFabric.Name,
            SourceNetworkId = primaryVirtualNetwork.Id,
            TargetNetworkId = secondaryVirtualNetwork.Id,
        });
    
        var primaryAccount = new Azure.Storage.Account("primary", new()
        {
            Name = "primaryrecoverycache",
            Location = primary.Location,
            ResourceGroupName = primary.Name,
            AccountTier = "Standard",
            AccountReplicationType = "LRS",
        });
    
        var secondarySubnet = new Azure.Network.Subnet("secondary", new()
        {
            Name = "network2-subnet",
            ResourceGroupName = secondary.Name,
            VirtualNetworkName = secondaryVirtualNetwork.Name,
            AddressPrefixes = new[]
            {
                "192.168.2.0/24",
            },
        });
    
        var secondaryPublicIp = new Azure.Network.PublicIp("secondary", new()
        {
            Name = "vm-public-ip-secondary",
            AllocationMethod = "Static",
            Location = secondary.Location,
            ResourceGroupName = secondary.Name,
            Sku = "Basic",
        });
    
        var vm_replication = new Azure.SiteRecovery.ReplicatedVM("vm-replication", new()
        {
            Name = "vm-replication",
            ResourceGroupName = secondary.Name,
            RecoveryVaultName = vault.Name,
            SourceRecoveryFabricName = primaryFabric.Name,
            SourceVmId = vm.Id,
            RecoveryReplicationPolicyId = policy.Id,
            SourceRecoveryProtectionContainerName = primaryProtectionContainer.Name,
            TargetResourceGroupId = secondary.Id,
            TargetRecoveryFabricId = secondaryFabric.Id,
            TargetRecoveryProtectionContainerId = secondaryProtectionContainer.Id,
            ManagedDisks = new[]
            {
                new Azure.SiteRecovery.Inputs.ReplicatedVMManagedDiskArgs
                {
                    DiskId = vm.StorageOsDisk.Apply(storageOsDisk => storageOsDisk.ManagedDiskId),
                    StagingStorageAccountId = primaryAccount.Id,
                    TargetResourceGroupId = secondary.Id,
                    TargetDiskType = "Premium_LRS",
                    TargetReplicaDiskType = "Premium_LRS",
                },
            },
            NetworkInterfaces = new[]
            {
                new Azure.SiteRecovery.Inputs.ReplicatedVMNetworkInterfaceArgs
                {
                    SourceNetworkInterfaceId = vmNetworkInterface.Id,
                    TargetSubnetName = secondarySubnet.Name,
                    RecoveryPublicIpAddressId = secondaryPublicIp.Id,
                },
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                container_mapping,
                network_mapping,
            },
        });
    
        var example = new Azure.SiteRecovery.ReplicationRecoveryPlan("example", new()
        {
            Name = "example-recover-plan",
            RecoveryVaultId = vault.Id,
            SourceRecoveryFabricId = primaryFabric.Id,
            TargetRecoveryFabricId = secondaryFabric.Id,
            ShutdownRecoveryGroup = null,
            FailoverRecoveryGroup = null,
            BootRecoveryGroups = new[]
            {
                new Azure.SiteRecovery.Inputs.ReplicationRecoveryPlanBootRecoveryGroupArgs
                {
                    ReplicatedProtectedItems = new[]
                    {
                        vm_replication.Id,
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azure.core.ResourceGroup;
    import com.pulumi.azure.core.ResourceGroupArgs;
    import com.pulumi.azure.network.VirtualNetwork;
    import com.pulumi.azure.network.VirtualNetworkArgs;
    import com.pulumi.azure.network.Subnet;
    import com.pulumi.azure.network.SubnetArgs;
    import com.pulumi.azure.network.PublicIp;
    import com.pulumi.azure.network.PublicIpArgs;
    import com.pulumi.azure.network.NetworkInterface;
    import com.pulumi.azure.network.NetworkInterfaceArgs;
    import com.pulumi.azure.network.inputs.NetworkInterfaceIpConfigurationArgs;
    import com.pulumi.azure.compute.VirtualMachine;
    import com.pulumi.azure.compute.VirtualMachineArgs;
    import com.pulumi.azure.compute.inputs.VirtualMachineStorageImageReferenceArgs;
    import com.pulumi.azure.compute.inputs.VirtualMachineStorageOsDiskArgs;
    import com.pulumi.azure.compute.inputs.VirtualMachineOsProfileArgs;
    import com.pulumi.azure.compute.inputs.VirtualMachineOsProfileLinuxConfigArgs;
    import com.pulumi.azure.recoveryservices.Vault;
    import com.pulumi.azure.recoveryservices.VaultArgs;
    import com.pulumi.azure.siterecovery.Fabric;
    import com.pulumi.azure.siterecovery.FabricArgs;
    import com.pulumi.azure.siterecovery.ProtectionContainer;
    import com.pulumi.azure.siterecovery.ProtectionContainerArgs;
    import com.pulumi.azure.siterecovery.ReplicationPolicy;
    import com.pulumi.azure.siterecovery.ReplicationPolicyArgs;
    import com.pulumi.azure.siterecovery.ProtectionContainerMapping;
    import com.pulumi.azure.siterecovery.ProtectionContainerMappingArgs;
    import com.pulumi.azure.siterecovery.NetworkMapping;
    import com.pulumi.azure.siterecovery.NetworkMappingArgs;
    import com.pulumi.azure.storage.Account;
    import com.pulumi.azure.storage.AccountArgs;
    import com.pulumi.azure.siterecovery.ReplicatedVM;
    import com.pulumi.azure.siterecovery.ReplicatedVMArgs;
    import com.pulumi.azure.siterecovery.inputs.ReplicatedVMManagedDiskArgs;
    import com.pulumi.azure.siterecovery.inputs.ReplicatedVMNetworkInterfaceArgs;
    import com.pulumi.azure.siterecovery.ReplicationRecoveryPlan;
    import com.pulumi.azure.siterecovery.ReplicationRecoveryPlanArgs;
    import com.pulumi.azure.siterecovery.inputs.ReplicationRecoveryPlanShutdownRecoveryGroupArgs;
    import com.pulumi.azure.siterecovery.inputs.ReplicationRecoveryPlanFailoverRecoveryGroupArgs;
    import com.pulumi.azure.siterecovery.inputs.ReplicationRecoveryPlanBootRecoveryGroupArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var primary = new ResourceGroup("primary", ResourceGroupArgs.builder()
                .name("tfex-replicated-vm-primary")
                .location("West US")
                .build());
    
            var secondary = new ResourceGroup("secondary", ResourceGroupArgs.builder()
                .name("tfex-replicated-vm-secondary")
                .location("East US")
                .build());
    
            var primaryVirtualNetwork = new VirtualNetwork("primaryVirtualNetwork", VirtualNetworkArgs.builder()
                .name("network1")
                .resourceGroupName(primary.name())
                .addressSpaces("192.168.1.0/24")
                .location(primary.location())
                .build());
    
            var primarySubnet = new Subnet("primarySubnet", SubnetArgs.builder()
                .name("network1-subnet")
                .resourceGroupName(primary.name())
                .virtualNetworkName(primaryVirtualNetwork.name())
                .addressPrefixes("192.168.1.0/24")
                .build());
    
            var primaryPublicIp = new PublicIp("primaryPublicIp", PublicIpArgs.builder()
                .name("vm-public-ip-primary")
                .allocationMethod("Static")
                .location(primary.location())
                .resourceGroupName(primary.name())
                .sku("Basic")
                .build());
    
            var vmNetworkInterface = new NetworkInterface("vmNetworkInterface", NetworkInterfaceArgs.builder()
                .name("vm-nic")
                .location(primary.location())
                .resourceGroupName(primary.name())
                .ipConfigurations(NetworkInterfaceIpConfigurationArgs.builder()
                    .name("vm")
                    .subnetId(primarySubnet.id())
                    .privateIpAddressAllocation("Dynamic")
                    .publicIpAddressId(primaryPublicIp.id())
                    .build())
                .build());
    
            var vm = new VirtualMachine("vm", VirtualMachineArgs.builder()
                .name("vm")
                .location(primary.location())
                .resourceGroupName(primary.name())
                .vmSize("Standard_B1s")
                .networkInterfaceIds(vmNetworkInterface.id())
                .storageImageReference(VirtualMachineStorageImageReferenceArgs.builder()
                    .publisher("Canonical")
                    .offer("0001-com-ubuntu-server-jammy")
                    .sku("22_04-lts")
                    .version("latest")
                    .build())
                .storageOsDisk(VirtualMachineStorageOsDiskArgs.builder()
                    .name("vm-os-disk")
                    .osType("Linux")
                    .caching("ReadWrite")
                    .createOption("FromImage")
                    .managedDiskType("Premium_LRS")
                    .build())
                .osProfile(VirtualMachineOsProfileArgs.builder()
                    .adminUsername("test-admin-123")
                    .adminPassword("test-pwd-123")
                    .computerName("vm")
                    .build())
                .osProfileLinuxConfig(VirtualMachineOsProfileLinuxConfigArgs.builder()
                    .disablePasswordAuthentication(false)
                    .build())
                .build());
    
            var vault = new Vault("vault", VaultArgs.builder()
                .name("example-recovery-vault")
                .location(secondary.location())
                .resourceGroupName(secondary.name())
                .sku("Standard")
                .build());
    
            var primaryFabric = new Fabric("primaryFabric", FabricArgs.builder()
                .name("primary-fabric")
                .resourceGroupName(secondary.name())
                .recoveryVaultName(vault.name())
                .location(primary.location())
                .build());
    
            var secondaryFabric = new Fabric("secondaryFabric", FabricArgs.builder()
                .name("secondary-fabric")
                .resourceGroupName(secondary.name())
                .recoveryVaultName(vault.name())
                .location(secondary.location())
                .build());
    
            var primaryProtectionContainer = new ProtectionContainer("primaryProtectionContainer", ProtectionContainerArgs.builder()
                .name("primary-protection-container")
                .resourceGroupName(secondary.name())
                .recoveryVaultName(vault.name())
                .recoveryFabricName(primaryFabric.name())
                .build());
    
            var secondaryProtectionContainer = new ProtectionContainer("secondaryProtectionContainer", ProtectionContainerArgs.builder()
                .name("secondary-protection-container")
                .resourceGroupName(secondary.name())
                .recoveryVaultName(vault.name())
                .recoveryFabricName(secondaryFabric.name())
                .build());
    
            var policy = new ReplicationPolicy("policy", ReplicationPolicyArgs.builder()
                .name("policy")
                .resourceGroupName(secondary.name())
                .recoveryVaultName(vault.name())
                .recoveryPointRetentionInMinutes(24 * 60)
                .applicationConsistentSnapshotFrequencyInMinutes(4 * 60)
                .build());
    
            var container_mapping = new ProtectionContainerMapping("container-mapping", ProtectionContainerMappingArgs.builder()
                .name("container-mapping")
                .resourceGroupName(secondary.name())
                .recoveryVaultName(vault.name())
                .recoveryFabricName(primaryFabric.name())
                .recoverySourceProtectionContainerName(primaryProtectionContainer.name())
                .recoveryTargetProtectionContainerId(secondaryProtectionContainer.id())
                .recoveryReplicationPolicyId(policy.id())
                .build());
    
            var secondaryVirtualNetwork = new VirtualNetwork("secondaryVirtualNetwork", VirtualNetworkArgs.builder()
                .name("network2")
                .resourceGroupName(secondary.name())
                .addressSpaces("192.168.2.0/24")
                .location(secondary.location())
                .build());
    
            var network_mapping = new NetworkMapping("network-mapping", NetworkMappingArgs.builder()
                .name("network-mapping")
                .resourceGroupName(secondary.name())
                .recoveryVaultName(vault.name())
                .sourceRecoveryFabricName(primaryFabric.name())
                .targetRecoveryFabricName(secondaryFabric.name())
                .sourceNetworkId(primaryVirtualNetwork.id())
                .targetNetworkId(secondaryVirtualNetwork.id())
                .build());
    
            var primaryAccount = new Account("primaryAccount", AccountArgs.builder()
                .name("primaryrecoverycache")
                .location(primary.location())
                .resourceGroupName(primary.name())
                .accountTier("Standard")
                .accountReplicationType("LRS")
                .build());
    
            var secondarySubnet = new Subnet("secondarySubnet", SubnetArgs.builder()
                .name("network2-subnet")
                .resourceGroupName(secondary.name())
                .virtualNetworkName(secondaryVirtualNetwork.name())
                .addressPrefixes("192.168.2.0/24")
                .build());
    
            var secondaryPublicIp = new PublicIp("secondaryPublicIp", PublicIpArgs.builder()
                .name("vm-public-ip-secondary")
                .allocationMethod("Static")
                .location(secondary.location())
                .resourceGroupName(secondary.name())
                .sku("Basic")
                .build());
    
            var vm_replication = new ReplicatedVM("vm-replication", ReplicatedVMArgs.builder()
                .name("vm-replication")
                .resourceGroupName(secondary.name())
                .recoveryVaultName(vault.name())
                .sourceRecoveryFabricName(primaryFabric.name())
                .sourceVmId(vm.id())
                .recoveryReplicationPolicyId(policy.id())
                .sourceRecoveryProtectionContainerName(primaryProtectionContainer.name())
                .targetResourceGroupId(secondary.id())
                .targetRecoveryFabricId(secondaryFabric.id())
                .targetRecoveryProtectionContainerId(secondaryProtectionContainer.id())
                .managedDisks(ReplicatedVMManagedDiskArgs.builder()
                    .diskId(vm.storageOsDisk().applyValue(storageOsDisk -> storageOsDisk.managedDiskId()))
                    .stagingStorageAccountId(primaryAccount.id())
                    .targetResourceGroupId(secondary.id())
                    .targetDiskType("Premium_LRS")
                    .targetReplicaDiskType("Premium_LRS")
                    .build())
                .networkInterfaces(ReplicatedVMNetworkInterfaceArgs.builder()
                    .sourceNetworkInterfaceId(vmNetworkInterface.id())
                    .targetSubnetName(secondarySubnet.name())
                    .recoveryPublicIpAddressId(secondaryPublicIp.id())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(                
                        container_mapping,
                        network_mapping)
                    .build());
    
            var example = new ReplicationRecoveryPlan("example", ReplicationRecoveryPlanArgs.builder()
                .name("example-recover-plan")
                .recoveryVaultId(vault.id())
                .sourceRecoveryFabricId(primaryFabric.id())
                .targetRecoveryFabricId(secondaryFabric.id())
                .shutdownRecoveryGroup()
                .failoverRecoveryGroup()
                .bootRecoveryGroups(ReplicationRecoveryPlanBootRecoveryGroupArgs.builder()
                    .replicatedProtectedItems(vm_replication.id())
                    .build())
                .build());
    
        }
    }
    
    Coming soon!
    

    Create ReplicationRecoveryPlan Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new ReplicationRecoveryPlan(name: string, args: ReplicationRecoveryPlanArgs, opts?: CustomResourceOptions);
    @overload
    def ReplicationRecoveryPlan(resource_name: str,
                                args: ReplicationRecoveryPlanArgs,
                                opts: Optional[ResourceOptions] = None)
    
    @overload
    def ReplicationRecoveryPlan(resource_name: str,
                                opts: Optional[ResourceOptions] = None,
                                recovery_vault_id: Optional[str] = None,
                                source_recovery_fabric_id: Optional[str] = None,
                                target_recovery_fabric_id: Optional[str] = None,
                                azure_to_azure_settings: Optional[ReplicationRecoveryPlanAzureToAzureSettingsArgs] = None,
                                boot_recovery_groups: Optional[Sequence[ReplicationRecoveryPlanBootRecoveryGroupArgs]] = None,
                                failover_recovery_group: Optional[ReplicationRecoveryPlanFailoverRecoveryGroupArgs] = None,
                                name: Optional[str] = None,
                                recovery_groups: Optional[Sequence[ReplicationRecoveryPlanRecoveryGroupArgs]] = None,
                                shutdown_recovery_group: Optional[ReplicationRecoveryPlanShutdownRecoveryGroupArgs] = None)
    func NewReplicationRecoveryPlan(ctx *Context, name string, args ReplicationRecoveryPlanArgs, opts ...ResourceOption) (*ReplicationRecoveryPlan, error)
    public ReplicationRecoveryPlan(string name, ReplicationRecoveryPlanArgs args, CustomResourceOptions? opts = null)
    public ReplicationRecoveryPlan(String name, ReplicationRecoveryPlanArgs args)
    public ReplicationRecoveryPlan(String name, ReplicationRecoveryPlanArgs args, CustomResourceOptions options)
    
    type: azure:siterecovery:ReplicationRecoveryPlan
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args ReplicationRecoveryPlanArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args ReplicationRecoveryPlanArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args ReplicationRecoveryPlanArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ReplicationRecoveryPlanArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ReplicationRecoveryPlanArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var replicationRecoveryPlanResource = new Azure.SiteRecovery.ReplicationRecoveryPlan("replicationRecoveryPlanResource", new()
    {
        RecoveryVaultId = "string",
        SourceRecoveryFabricId = "string",
        TargetRecoveryFabricId = "string",
        AzureToAzureSettings = new Azure.SiteRecovery.Inputs.ReplicationRecoveryPlanAzureToAzureSettingsArgs
        {
            PrimaryEdgeZone = "string",
            PrimaryZone = "string",
            RecoveryEdgeZone = "string",
            RecoveryZone = "string",
        },
        BootRecoveryGroups = new[]
        {
            new Azure.SiteRecovery.Inputs.ReplicationRecoveryPlanBootRecoveryGroupArgs
            {
                PostActions = new[]
                {
                    new Azure.SiteRecovery.Inputs.ReplicationRecoveryPlanBootRecoveryGroupPostActionArgs
                    {
                        FailOverDirections = new[]
                        {
                            "string",
                        },
                        FailOverTypes = new[]
                        {
                            "string",
                        },
                        Name = "string",
                        Type = "string",
                        FabricLocation = "string",
                        ManualActionInstruction = "string",
                        RunbookId = "string",
                        ScriptPath = "string",
                    },
                },
                PreActions = new[]
                {
                    new Azure.SiteRecovery.Inputs.ReplicationRecoveryPlanBootRecoveryGroupPreActionArgs
                    {
                        FailOverDirections = new[]
                        {
                            "string",
                        },
                        FailOverTypes = new[]
                        {
                            "string",
                        },
                        Name = "string",
                        Type = "string",
                        FabricLocation = "string",
                        ManualActionInstruction = "string",
                        RunbookId = "string",
                        ScriptPath = "string",
                    },
                },
                ReplicatedProtectedItems = new[]
                {
                    "string",
                },
            },
        },
        FailoverRecoveryGroup = new Azure.SiteRecovery.Inputs.ReplicationRecoveryPlanFailoverRecoveryGroupArgs
        {
            PostActions = new[]
            {
                new Azure.SiteRecovery.Inputs.ReplicationRecoveryPlanFailoverRecoveryGroupPostActionArgs
                {
                    FailOverDirections = new[]
                    {
                        "string",
                    },
                    FailOverTypes = new[]
                    {
                        "string",
                    },
                    Name = "string",
                    Type = "string",
                    FabricLocation = "string",
                    ManualActionInstruction = "string",
                    RunbookId = "string",
                    ScriptPath = "string",
                },
            },
            PreActions = new[]
            {
                new Azure.SiteRecovery.Inputs.ReplicationRecoveryPlanFailoverRecoveryGroupPreActionArgs
                {
                    FailOverDirections = new[]
                    {
                        "string",
                    },
                    FailOverTypes = new[]
                    {
                        "string",
                    },
                    Name = "string",
                    Type = "string",
                    FabricLocation = "string",
                    ManualActionInstruction = "string",
                    RunbookId = "string",
                    ScriptPath = "string",
                },
            },
        },
        Name = "string",
        ShutdownRecoveryGroup = new Azure.SiteRecovery.Inputs.ReplicationRecoveryPlanShutdownRecoveryGroupArgs
        {
            PostActions = new[]
            {
                new Azure.SiteRecovery.Inputs.ReplicationRecoveryPlanShutdownRecoveryGroupPostActionArgs
                {
                    FailOverDirections = new[]
                    {
                        "string",
                    },
                    FailOverTypes = new[]
                    {
                        "string",
                    },
                    Name = "string",
                    Type = "string",
                    FabricLocation = "string",
                    ManualActionInstruction = "string",
                    RunbookId = "string",
                    ScriptPath = "string",
                },
            },
            PreActions = new[]
            {
                new Azure.SiteRecovery.Inputs.ReplicationRecoveryPlanShutdownRecoveryGroupPreActionArgs
                {
                    FailOverDirections = new[]
                    {
                        "string",
                    },
                    FailOverTypes = new[]
                    {
                        "string",
                    },
                    Name = "string",
                    Type = "string",
                    FabricLocation = "string",
                    ManualActionInstruction = "string",
                    RunbookId = "string",
                    ScriptPath = "string",
                },
            },
        },
    });
    
    example, err := siterecovery.NewReplicationRecoveryPlan(ctx, "replicationRecoveryPlanResource", &siterecovery.ReplicationRecoveryPlanArgs{
    	RecoveryVaultId:        pulumi.String("string"),
    	SourceRecoveryFabricId: pulumi.String("string"),
    	TargetRecoveryFabricId: pulumi.String("string"),
    	AzureToAzureSettings: &siterecovery.ReplicationRecoveryPlanAzureToAzureSettingsArgs{
    		PrimaryEdgeZone:  pulumi.String("string"),
    		PrimaryZone:      pulumi.String("string"),
    		RecoveryEdgeZone: pulumi.String("string"),
    		RecoveryZone:     pulumi.String("string"),
    	},
    	BootRecoveryGroups: siterecovery.ReplicationRecoveryPlanBootRecoveryGroupArray{
    		&siterecovery.ReplicationRecoveryPlanBootRecoveryGroupArgs{
    			PostActions: siterecovery.ReplicationRecoveryPlanBootRecoveryGroupPostActionArray{
    				&siterecovery.ReplicationRecoveryPlanBootRecoveryGroupPostActionArgs{
    					FailOverDirections: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					FailOverTypes: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					Name:                    pulumi.String("string"),
    					Type:                    pulumi.String("string"),
    					FabricLocation:          pulumi.String("string"),
    					ManualActionInstruction: pulumi.String("string"),
    					RunbookId:               pulumi.String("string"),
    					ScriptPath:              pulumi.String("string"),
    				},
    			},
    			PreActions: siterecovery.ReplicationRecoveryPlanBootRecoveryGroupPreActionArray{
    				&siterecovery.ReplicationRecoveryPlanBootRecoveryGroupPreActionArgs{
    					FailOverDirections: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					FailOverTypes: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					Name:                    pulumi.String("string"),
    					Type:                    pulumi.String("string"),
    					FabricLocation:          pulumi.String("string"),
    					ManualActionInstruction: pulumi.String("string"),
    					RunbookId:               pulumi.String("string"),
    					ScriptPath:              pulumi.String("string"),
    				},
    			},
    			ReplicatedProtectedItems: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    	},
    	FailoverRecoveryGroup: &siterecovery.ReplicationRecoveryPlanFailoverRecoveryGroupArgs{
    		PostActions: siterecovery.ReplicationRecoveryPlanFailoverRecoveryGroupPostActionArray{
    			&siterecovery.ReplicationRecoveryPlanFailoverRecoveryGroupPostActionArgs{
    				FailOverDirections: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				FailOverTypes: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				Name:                    pulumi.String("string"),
    				Type:                    pulumi.String("string"),
    				FabricLocation:          pulumi.String("string"),
    				ManualActionInstruction: pulumi.String("string"),
    				RunbookId:               pulumi.String("string"),
    				ScriptPath:              pulumi.String("string"),
    			},
    		},
    		PreActions: siterecovery.ReplicationRecoveryPlanFailoverRecoveryGroupPreActionArray{
    			&siterecovery.ReplicationRecoveryPlanFailoverRecoveryGroupPreActionArgs{
    				FailOverDirections: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				FailOverTypes: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				Name:                    pulumi.String("string"),
    				Type:                    pulumi.String("string"),
    				FabricLocation:          pulumi.String("string"),
    				ManualActionInstruction: pulumi.String("string"),
    				RunbookId:               pulumi.String("string"),
    				ScriptPath:              pulumi.String("string"),
    			},
    		},
    	},
    	Name: pulumi.String("string"),
    	ShutdownRecoveryGroup: &siterecovery.ReplicationRecoveryPlanShutdownRecoveryGroupArgs{
    		PostActions: siterecovery.ReplicationRecoveryPlanShutdownRecoveryGroupPostActionArray{
    			&siterecovery.ReplicationRecoveryPlanShutdownRecoveryGroupPostActionArgs{
    				FailOverDirections: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				FailOverTypes: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				Name:                    pulumi.String("string"),
    				Type:                    pulumi.String("string"),
    				FabricLocation:          pulumi.String("string"),
    				ManualActionInstruction: pulumi.String("string"),
    				RunbookId:               pulumi.String("string"),
    				ScriptPath:              pulumi.String("string"),
    			},
    		},
    		PreActions: siterecovery.ReplicationRecoveryPlanShutdownRecoveryGroupPreActionArray{
    			&siterecovery.ReplicationRecoveryPlanShutdownRecoveryGroupPreActionArgs{
    				FailOverDirections: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				FailOverTypes: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				Name:                    pulumi.String("string"),
    				Type:                    pulumi.String("string"),
    				FabricLocation:          pulumi.String("string"),
    				ManualActionInstruction: pulumi.String("string"),
    				RunbookId:               pulumi.String("string"),
    				ScriptPath:              pulumi.String("string"),
    			},
    		},
    	},
    })
    
    var replicationRecoveryPlanResource = new ReplicationRecoveryPlan("replicationRecoveryPlanResource", ReplicationRecoveryPlanArgs.builder()
        .recoveryVaultId("string")
        .sourceRecoveryFabricId("string")
        .targetRecoveryFabricId("string")
        .azureToAzureSettings(ReplicationRecoveryPlanAzureToAzureSettingsArgs.builder()
            .primaryEdgeZone("string")
            .primaryZone("string")
            .recoveryEdgeZone("string")
            .recoveryZone("string")
            .build())
        .bootRecoveryGroups(ReplicationRecoveryPlanBootRecoveryGroupArgs.builder()
            .postActions(ReplicationRecoveryPlanBootRecoveryGroupPostActionArgs.builder()
                .failOverDirections("string")
                .failOverTypes("string")
                .name("string")
                .type("string")
                .fabricLocation("string")
                .manualActionInstruction("string")
                .runbookId("string")
                .scriptPath("string")
                .build())
            .preActions(ReplicationRecoveryPlanBootRecoveryGroupPreActionArgs.builder()
                .failOverDirections("string")
                .failOverTypes("string")
                .name("string")
                .type("string")
                .fabricLocation("string")
                .manualActionInstruction("string")
                .runbookId("string")
                .scriptPath("string")
                .build())
            .replicatedProtectedItems("string")
            .build())
        .failoverRecoveryGroup(ReplicationRecoveryPlanFailoverRecoveryGroupArgs.builder()
            .postActions(ReplicationRecoveryPlanFailoverRecoveryGroupPostActionArgs.builder()
                .failOverDirections("string")
                .failOverTypes("string")
                .name("string")
                .type("string")
                .fabricLocation("string")
                .manualActionInstruction("string")
                .runbookId("string")
                .scriptPath("string")
                .build())
            .preActions(ReplicationRecoveryPlanFailoverRecoveryGroupPreActionArgs.builder()
                .failOverDirections("string")
                .failOverTypes("string")
                .name("string")
                .type("string")
                .fabricLocation("string")
                .manualActionInstruction("string")
                .runbookId("string")
                .scriptPath("string")
                .build())
            .build())
        .name("string")
        .shutdownRecoveryGroup(ReplicationRecoveryPlanShutdownRecoveryGroupArgs.builder()
            .postActions(ReplicationRecoveryPlanShutdownRecoveryGroupPostActionArgs.builder()
                .failOverDirections("string")
                .failOverTypes("string")
                .name("string")
                .type("string")
                .fabricLocation("string")
                .manualActionInstruction("string")
                .runbookId("string")
                .scriptPath("string")
                .build())
            .preActions(ReplicationRecoveryPlanShutdownRecoveryGroupPreActionArgs.builder()
                .failOverDirections("string")
                .failOverTypes("string")
                .name("string")
                .type("string")
                .fabricLocation("string")
                .manualActionInstruction("string")
                .runbookId("string")
                .scriptPath("string")
                .build())
            .build())
        .build());
    
    replication_recovery_plan_resource = azure.siterecovery.ReplicationRecoveryPlan("replicationRecoveryPlanResource",
        recovery_vault_id="string",
        source_recovery_fabric_id="string",
        target_recovery_fabric_id="string",
        azure_to_azure_settings=azure.siterecovery.ReplicationRecoveryPlanAzureToAzureSettingsArgs(
            primary_edge_zone="string",
            primary_zone="string",
            recovery_edge_zone="string",
            recovery_zone="string",
        ),
        boot_recovery_groups=[azure.siterecovery.ReplicationRecoveryPlanBootRecoveryGroupArgs(
            post_actions=[azure.siterecovery.ReplicationRecoveryPlanBootRecoveryGroupPostActionArgs(
                fail_over_directions=["string"],
                fail_over_types=["string"],
                name="string",
                type="string",
                fabric_location="string",
                manual_action_instruction="string",
                runbook_id="string",
                script_path="string",
            )],
            pre_actions=[azure.siterecovery.ReplicationRecoveryPlanBootRecoveryGroupPreActionArgs(
                fail_over_directions=["string"],
                fail_over_types=["string"],
                name="string",
                type="string",
                fabric_location="string",
                manual_action_instruction="string",
                runbook_id="string",
                script_path="string",
            )],
            replicated_protected_items=["string"],
        )],
        failover_recovery_group=azure.siterecovery.ReplicationRecoveryPlanFailoverRecoveryGroupArgs(
            post_actions=[azure.siterecovery.ReplicationRecoveryPlanFailoverRecoveryGroupPostActionArgs(
                fail_over_directions=["string"],
                fail_over_types=["string"],
                name="string",
                type="string",
                fabric_location="string",
                manual_action_instruction="string",
                runbook_id="string",
                script_path="string",
            )],
            pre_actions=[azure.siterecovery.ReplicationRecoveryPlanFailoverRecoveryGroupPreActionArgs(
                fail_over_directions=["string"],
                fail_over_types=["string"],
                name="string",
                type="string",
                fabric_location="string",
                manual_action_instruction="string",
                runbook_id="string",
                script_path="string",
            )],
        ),
        name="string",
        shutdown_recovery_group=azure.siterecovery.ReplicationRecoveryPlanShutdownRecoveryGroupArgs(
            post_actions=[azure.siterecovery.ReplicationRecoveryPlanShutdownRecoveryGroupPostActionArgs(
                fail_over_directions=["string"],
                fail_over_types=["string"],
                name="string",
                type="string",
                fabric_location="string",
                manual_action_instruction="string",
                runbook_id="string",
                script_path="string",
            )],
            pre_actions=[azure.siterecovery.ReplicationRecoveryPlanShutdownRecoveryGroupPreActionArgs(
                fail_over_directions=["string"],
                fail_over_types=["string"],
                name="string",
                type="string",
                fabric_location="string",
                manual_action_instruction="string",
                runbook_id="string",
                script_path="string",
            )],
        ))
    
    const replicationRecoveryPlanResource = new azure.siterecovery.ReplicationRecoveryPlan("replicationRecoveryPlanResource", {
        recoveryVaultId: "string",
        sourceRecoveryFabricId: "string",
        targetRecoveryFabricId: "string",
        azureToAzureSettings: {
            primaryEdgeZone: "string",
            primaryZone: "string",
            recoveryEdgeZone: "string",
            recoveryZone: "string",
        },
        bootRecoveryGroups: [{
            postActions: [{
                failOverDirections: ["string"],
                failOverTypes: ["string"],
                name: "string",
                type: "string",
                fabricLocation: "string",
                manualActionInstruction: "string",
                runbookId: "string",
                scriptPath: "string",
            }],
            preActions: [{
                failOverDirections: ["string"],
                failOverTypes: ["string"],
                name: "string",
                type: "string",
                fabricLocation: "string",
                manualActionInstruction: "string",
                runbookId: "string",
                scriptPath: "string",
            }],
            replicatedProtectedItems: ["string"],
        }],
        failoverRecoveryGroup: {
            postActions: [{
                failOverDirections: ["string"],
                failOverTypes: ["string"],
                name: "string",
                type: "string",
                fabricLocation: "string",
                manualActionInstruction: "string",
                runbookId: "string",
                scriptPath: "string",
            }],
            preActions: [{
                failOverDirections: ["string"],
                failOverTypes: ["string"],
                name: "string",
                type: "string",
                fabricLocation: "string",
                manualActionInstruction: "string",
                runbookId: "string",
                scriptPath: "string",
            }],
        },
        name: "string",
        shutdownRecoveryGroup: {
            postActions: [{
                failOverDirections: ["string"],
                failOverTypes: ["string"],
                name: "string",
                type: "string",
                fabricLocation: "string",
                manualActionInstruction: "string",
                runbookId: "string",
                scriptPath: "string",
            }],
            preActions: [{
                failOverDirections: ["string"],
                failOverTypes: ["string"],
                name: "string",
                type: "string",
                fabricLocation: "string",
                manualActionInstruction: "string",
                runbookId: "string",
                scriptPath: "string",
            }],
        },
    });
    
    type: azure:siterecovery:ReplicationRecoveryPlan
    properties:
        azureToAzureSettings:
            primaryEdgeZone: string
            primaryZone: string
            recoveryEdgeZone: string
            recoveryZone: string
        bootRecoveryGroups:
            - postActions:
                - fabricLocation: string
                  failOverDirections:
                    - string
                  failOverTypes:
                    - string
                  manualActionInstruction: string
                  name: string
                  runbookId: string
                  scriptPath: string
                  type: string
              preActions:
                - fabricLocation: string
                  failOverDirections:
                    - string
                  failOverTypes:
                    - string
                  manualActionInstruction: string
                  name: string
                  runbookId: string
                  scriptPath: string
                  type: string
              replicatedProtectedItems:
                - string
        failoverRecoveryGroup:
            postActions:
                - fabricLocation: string
                  failOverDirections:
                    - string
                  failOverTypes:
                    - string
                  manualActionInstruction: string
                  name: string
                  runbookId: string
                  scriptPath: string
                  type: string
            preActions:
                - fabricLocation: string
                  failOverDirections:
                    - string
                  failOverTypes:
                    - string
                  manualActionInstruction: string
                  name: string
                  runbookId: string
                  scriptPath: string
                  type: string
        name: string
        recoveryVaultId: string
        shutdownRecoveryGroup:
            postActions:
                - fabricLocation: string
                  failOverDirections:
                    - string
                  failOverTypes:
                    - string
                  manualActionInstruction: string
                  name: string
                  runbookId: string
                  scriptPath: string
                  type: string
            preActions:
                - fabricLocation: string
                  failOverDirections:
                    - string
                  failOverTypes:
                    - string
                  manualActionInstruction: string
                  name: string
                  runbookId: string
                  scriptPath: string
                  type: string
        sourceRecoveryFabricId: string
        targetRecoveryFabricId: string
    

    ReplicationRecoveryPlan Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The ReplicationRecoveryPlan resource accepts the following input properties:

    RecoveryVaultId string
    The ID of the vault that should be updated. Changing this forces a new resource to be created.
    SourceRecoveryFabricId string
    ID of source fabric to be recovered from. Changing this forces a new Replication Plan to be created.
    TargetRecoveryFabricId string
    ID of target fabric to recover. Changing this forces a new Replication Plan to be created.
    AzureToAzureSettings ReplicationRecoveryPlanAzureToAzureSettings
    An azure_to_azure_settings block as defined below.
    BootRecoveryGroups List<ReplicationRecoveryPlanBootRecoveryGroup>

    One or more boot_recovery_group blocks as defined below.

    NOTE: At least one boot_recovery_group block will be required in the next major version of the AzureRM Provider.

    FailoverRecoveryGroup ReplicationRecoveryPlanFailoverRecoveryGroup

    One failover_recovery_group block as defined below.

    NOTE: failover_recovery_group will be required in the next major version of the AzureRM Provider.

    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    RecoveryGroups List<ReplicationRecoveryPlanRecoveryGroup>

    Three or more recovery_group block defined as below.

    Note: The recovery_group block is deprecated in favor of shutdown_recovery_group, failover_recovery_group and boot_recovery_group. It will be removed in v4.0 of the Azure Provider.

    Deprecated: the recovery_group block has been deprecated in favour of the shutdown_recovery_group, failover_recovery_group and boot_recovery_group and will be removed in version 4.0 of the provider.

    ShutdownRecoveryGroup ReplicationRecoveryPlanShutdownRecoveryGroup

    One shutdown_recovery_group block as defined below.

    NOTE: shutdown_recovery_group will be required in the next major version of the AzureRM Provider.

    RecoveryVaultId string
    The ID of the vault that should be updated. Changing this forces a new resource to be created.
    SourceRecoveryFabricId string
    ID of source fabric to be recovered from. Changing this forces a new Replication Plan to be created.
    TargetRecoveryFabricId string
    ID of target fabric to recover. Changing this forces a new Replication Plan to be created.
    AzureToAzureSettings ReplicationRecoveryPlanAzureToAzureSettingsArgs
    An azure_to_azure_settings block as defined below.
    BootRecoveryGroups []ReplicationRecoveryPlanBootRecoveryGroupArgs

    One or more boot_recovery_group blocks as defined below.

    NOTE: At least one boot_recovery_group block will be required in the next major version of the AzureRM Provider.

    FailoverRecoveryGroup ReplicationRecoveryPlanFailoverRecoveryGroupArgs

    One failover_recovery_group block as defined below.

    NOTE: failover_recovery_group will be required in the next major version of the AzureRM Provider.

    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    RecoveryGroups []ReplicationRecoveryPlanRecoveryGroupArgs

    Three or more recovery_group block defined as below.

    Note: The recovery_group block is deprecated in favor of shutdown_recovery_group, failover_recovery_group and boot_recovery_group. It will be removed in v4.0 of the Azure Provider.

    Deprecated: the recovery_group block has been deprecated in favour of the shutdown_recovery_group, failover_recovery_group and boot_recovery_group and will be removed in version 4.0 of the provider.

    ShutdownRecoveryGroup ReplicationRecoveryPlanShutdownRecoveryGroupArgs

    One shutdown_recovery_group block as defined below.

    NOTE: shutdown_recovery_group will be required in the next major version of the AzureRM Provider.

    recoveryVaultId String
    The ID of the vault that should be updated. Changing this forces a new resource to be created.
    sourceRecoveryFabricId String
    ID of source fabric to be recovered from. Changing this forces a new Replication Plan to be created.
    targetRecoveryFabricId String
    ID of target fabric to recover. Changing this forces a new Replication Plan to be created.
    azureToAzureSettings ReplicationRecoveryPlanAzureToAzureSettings
    An azure_to_azure_settings block as defined below.
    bootRecoveryGroups List<ReplicationRecoveryPlanBootRecoveryGroup>

    One or more boot_recovery_group blocks as defined below.

    NOTE: At least one boot_recovery_group block will be required in the next major version of the AzureRM Provider.

    failoverRecoveryGroup ReplicationRecoveryPlanFailoverRecoveryGroup

    One failover_recovery_group block as defined below.

    NOTE: failover_recovery_group will be required in the next major version of the AzureRM Provider.

    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    recoveryGroups List<ReplicationRecoveryPlanRecoveryGroup>

    Three or more recovery_group block defined as below.

    Note: The recovery_group block is deprecated in favor of shutdown_recovery_group, failover_recovery_group and boot_recovery_group. It will be removed in v4.0 of the Azure Provider.

    Deprecated: the recovery_group block has been deprecated in favour of the shutdown_recovery_group, failover_recovery_group and boot_recovery_group and will be removed in version 4.0 of the provider.

    shutdownRecoveryGroup ReplicationRecoveryPlanShutdownRecoveryGroup

    One shutdown_recovery_group block as defined below.

    NOTE: shutdown_recovery_group will be required in the next major version of the AzureRM Provider.

    recoveryVaultId string
    The ID of the vault that should be updated. Changing this forces a new resource to be created.
    sourceRecoveryFabricId string
    ID of source fabric to be recovered from. Changing this forces a new Replication Plan to be created.
    targetRecoveryFabricId string
    ID of target fabric to recover. Changing this forces a new Replication Plan to be created.
    azureToAzureSettings ReplicationRecoveryPlanAzureToAzureSettings
    An azure_to_azure_settings block as defined below.
    bootRecoveryGroups ReplicationRecoveryPlanBootRecoveryGroup[]

    One or more boot_recovery_group blocks as defined below.

    NOTE: At least one boot_recovery_group block will be required in the next major version of the AzureRM Provider.

    failoverRecoveryGroup ReplicationRecoveryPlanFailoverRecoveryGroup

    One failover_recovery_group block as defined below.

    NOTE: failover_recovery_group will be required in the next major version of the AzureRM Provider.

    name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    recoveryGroups ReplicationRecoveryPlanRecoveryGroup[]

    Three or more recovery_group block defined as below.

    Note: The recovery_group block is deprecated in favor of shutdown_recovery_group, failover_recovery_group and boot_recovery_group. It will be removed in v4.0 of the Azure Provider.

    Deprecated: the recovery_group block has been deprecated in favour of the shutdown_recovery_group, failover_recovery_group and boot_recovery_group and will be removed in version 4.0 of the provider.

    shutdownRecoveryGroup ReplicationRecoveryPlanShutdownRecoveryGroup

    One shutdown_recovery_group block as defined below.

    NOTE: shutdown_recovery_group will be required in the next major version of the AzureRM Provider.

    recovery_vault_id str
    The ID of the vault that should be updated. Changing this forces a new resource to be created.
    source_recovery_fabric_id str
    ID of source fabric to be recovered from. Changing this forces a new Replication Plan to be created.
    target_recovery_fabric_id str
    ID of target fabric to recover. Changing this forces a new Replication Plan to be created.
    azure_to_azure_settings ReplicationRecoveryPlanAzureToAzureSettingsArgs
    An azure_to_azure_settings block as defined below.
    boot_recovery_groups Sequence[ReplicationRecoveryPlanBootRecoveryGroupArgs]

    One or more boot_recovery_group blocks as defined below.

    NOTE: At least one boot_recovery_group block will be required in the next major version of the AzureRM Provider.

    failover_recovery_group ReplicationRecoveryPlanFailoverRecoveryGroupArgs

    One failover_recovery_group block as defined below.

    NOTE: failover_recovery_group will be required in the next major version of the AzureRM Provider.

    name str
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    recovery_groups Sequence[ReplicationRecoveryPlanRecoveryGroupArgs]

    Three or more recovery_group block defined as below.

    Note: The recovery_group block is deprecated in favor of shutdown_recovery_group, failover_recovery_group and boot_recovery_group. It will be removed in v4.0 of the Azure Provider.

    Deprecated: the recovery_group block has been deprecated in favour of the shutdown_recovery_group, failover_recovery_group and boot_recovery_group and will be removed in version 4.0 of the provider.

    shutdown_recovery_group ReplicationRecoveryPlanShutdownRecoveryGroupArgs

    One shutdown_recovery_group block as defined below.

    NOTE: shutdown_recovery_group will be required in the next major version of the AzureRM Provider.

    recoveryVaultId String
    The ID of the vault that should be updated. Changing this forces a new resource to be created.
    sourceRecoveryFabricId String
    ID of source fabric to be recovered from. Changing this forces a new Replication Plan to be created.
    targetRecoveryFabricId String
    ID of target fabric to recover. Changing this forces a new Replication Plan to be created.
    azureToAzureSettings Property Map
    An azure_to_azure_settings block as defined below.
    bootRecoveryGroups List<Property Map>

    One or more boot_recovery_group blocks as defined below.

    NOTE: At least one boot_recovery_group block will be required in the next major version of the AzureRM Provider.

    failoverRecoveryGroup Property Map

    One failover_recovery_group block as defined below.

    NOTE: failover_recovery_group will be required in the next major version of the AzureRM Provider.

    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    recoveryGroups List<Property Map>

    Three or more recovery_group block defined as below.

    Note: The recovery_group block is deprecated in favor of shutdown_recovery_group, failover_recovery_group and boot_recovery_group. It will be removed in v4.0 of the Azure Provider.

    Deprecated: the recovery_group block has been deprecated in favour of the shutdown_recovery_group, failover_recovery_group and boot_recovery_group and will be removed in version 4.0 of the provider.

    shutdownRecoveryGroup Property Map

    One shutdown_recovery_group block as defined below.

    NOTE: shutdown_recovery_group will be required in the next major version of the AzureRM Provider.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the ReplicationRecoveryPlan resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing ReplicationRecoveryPlan Resource

    Get an existing ReplicationRecoveryPlan resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: ReplicationRecoveryPlanState, opts?: CustomResourceOptions): ReplicationRecoveryPlan
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            azure_to_azure_settings: Optional[ReplicationRecoveryPlanAzureToAzureSettingsArgs] = None,
            boot_recovery_groups: Optional[Sequence[ReplicationRecoveryPlanBootRecoveryGroupArgs]] = None,
            failover_recovery_group: Optional[ReplicationRecoveryPlanFailoverRecoveryGroupArgs] = None,
            name: Optional[str] = None,
            recovery_groups: Optional[Sequence[ReplicationRecoveryPlanRecoveryGroupArgs]] = None,
            recovery_vault_id: Optional[str] = None,
            shutdown_recovery_group: Optional[ReplicationRecoveryPlanShutdownRecoveryGroupArgs] = None,
            source_recovery_fabric_id: Optional[str] = None,
            target_recovery_fabric_id: Optional[str] = None) -> ReplicationRecoveryPlan
    func GetReplicationRecoveryPlan(ctx *Context, name string, id IDInput, state *ReplicationRecoveryPlanState, opts ...ResourceOption) (*ReplicationRecoveryPlan, error)
    public static ReplicationRecoveryPlan Get(string name, Input<string> id, ReplicationRecoveryPlanState? state, CustomResourceOptions? opts = null)
    public static ReplicationRecoveryPlan get(String name, Output<String> id, ReplicationRecoveryPlanState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AzureToAzureSettings ReplicationRecoveryPlanAzureToAzureSettings
    An azure_to_azure_settings block as defined below.
    BootRecoveryGroups List<ReplicationRecoveryPlanBootRecoveryGroup>

    One or more boot_recovery_group blocks as defined below.

    NOTE: At least one boot_recovery_group block will be required in the next major version of the AzureRM Provider.

    FailoverRecoveryGroup ReplicationRecoveryPlanFailoverRecoveryGroup

    One failover_recovery_group block as defined below.

    NOTE: failover_recovery_group will be required in the next major version of the AzureRM Provider.

    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    RecoveryGroups List<ReplicationRecoveryPlanRecoveryGroup>

    Three or more recovery_group block defined as below.

    Note: The recovery_group block is deprecated in favor of shutdown_recovery_group, failover_recovery_group and boot_recovery_group. It will be removed in v4.0 of the Azure Provider.

    Deprecated: the recovery_group block has been deprecated in favour of the shutdown_recovery_group, failover_recovery_group and boot_recovery_group and will be removed in version 4.0 of the provider.

    RecoveryVaultId string
    The ID of the vault that should be updated. Changing this forces a new resource to be created.
    ShutdownRecoveryGroup ReplicationRecoveryPlanShutdownRecoveryGroup

    One shutdown_recovery_group block as defined below.

    NOTE: shutdown_recovery_group will be required in the next major version of the AzureRM Provider.

    SourceRecoveryFabricId string
    ID of source fabric to be recovered from. Changing this forces a new Replication Plan to be created.
    TargetRecoveryFabricId string
    ID of target fabric to recover. Changing this forces a new Replication Plan to be created.
    AzureToAzureSettings ReplicationRecoveryPlanAzureToAzureSettingsArgs
    An azure_to_azure_settings block as defined below.
    BootRecoveryGroups []ReplicationRecoveryPlanBootRecoveryGroupArgs

    One or more boot_recovery_group blocks as defined below.

    NOTE: At least one boot_recovery_group block will be required in the next major version of the AzureRM Provider.

    FailoverRecoveryGroup ReplicationRecoveryPlanFailoverRecoveryGroupArgs

    One failover_recovery_group block as defined below.

    NOTE: failover_recovery_group will be required in the next major version of the AzureRM Provider.

    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    RecoveryGroups []ReplicationRecoveryPlanRecoveryGroupArgs

    Three or more recovery_group block defined as below.

    Note: The recovery_group block is deprecated in favor of shutdown_recovery_group, failover_recovery_group and boot_recovery_group. It will be removed in v4.0 of the Azure Provider.

    Deprecated: the recovery_group block has been deprecated in favour of the shutdown_recovery_group, failover_recovery_group and boot_recovery_group and will be removed in version 4.0 of the provider.

    RecoveryVaultId string
    The ID of the vault that should be updated. Changing this forces a new resource to be created.
    ShutdownRecoveryGroup ReplicationRecoveryPlanShutdownRecoveryGroupArgs

    One shutdown_recovery_group block as defined below.

    NOTE: shutdown_recovery_group will be required in the next major version of the AzureRM Provider.

    SourceRecoveryFabricId string
    ID of source fabric to be recovered from. Changing this forces a new Replication Plan to be created.
    TargetRecoveryFabricId string
    ID of target fabric to recover. Changing this forces a new Replication Plan to be created.
    azureToAzureSettings ReplicationRecoveryPlanAzureToAzureSettings
    An azure_to_azure_settings block as defined below.
    bootRecoveryGroups List<ReplicationRecoveryPlanBootRecoveryGroup>

    One or more boot_recovery_group blocks as defined below.

    NOTE: At least one boot_recovery_group block will be required in the next major version of the AzureRM Provider.

    failoverRecoveryGroup ReplicationRecoveryPlanFailoverRecoveryGroup

    One failover_recovery_group block as defined below.

    NOTE: failover_recovery_group will be required in the next major version of the AzureRM Provider.

    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    recoveryGroups List<ReplicationRecoveryPlanRecoveryGroup>

    Three or more recovery_group block defined as below.

    Note: The recovery_group block is deprecated in favor of shutdown_recovery_group, failover_recovery_group and boot_recovery_group. It will be removed in v4.0 of the Azure Provider.

    Deprecated: the recovery_group block has been deprecated in favour of the shutdown_recovery_group, failover_recovery_group and boot_recovery_group and will be removed in version 4.0 of the provider.

    recoveryVaultId String
    The ID of the vault that should be updated. Changing this forces a new resource to be created.
    shutdownRecoveryGroup ReplicationRecoveryPlanShutdownRecoveryGroup

    One shutdown_recovery_group block as defined below.

    NOTE: shutdown_recovery_group will be required in the next major version of the AzureRM Provider.

    sourceRecoveryFabricId String
    ID of source fabric to be recovered from. Changing this forces a new Replication Plan to be created.
    targetRecoveryFabricId String
    ID of target fabric to recover. Changing this forces a new Replication Plan to be created.
    azureToAzureSettings ReplicationRecoveryPlanAzureToAzureSettings
    An azure_to_azure_settings block as defined below.
    bootRecoveryGroups ReplicationRecoveryPlanBootRecoveryGroup[]

    One or more boot_recovery_group blocks as defined below.

    NOTE: At least one boot_recovery_group block will be required in the next major version of the AzureRM Provider.

    failoverRecoveryGroup ReplicationRecoveryPlanFailoverRecoveryGroup

    One failover_recovery_group block as defined below.

    NOTE: failover_recovery_group will be required in the next major version of the AzureRM Provider.

    name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    recoveryGroups ReplicationRecoveryPlanRecoveryGroup[]

    Three or more recovery_group block defined as below.

    Note: The recovery_group block is deprecated in favor of shutdown_recovery_group, failover_recovery_group and boot_recovery_group. It will be removed in v4.0 of the Azure Provider.

    Deprecated: the recovery_group block has been deprecated in favour of the shutdown_recovery_group, failover_recovery_group and boot_recovery_group and will be removed in version 4.0 of the provider.

    recoveryVaultId string
    The ID of the vault that should be updated. Changing this forces a new resource to be created.
    shutdownRecoveryGroup ReplicationRecoveryPlanShutdownRecoveryGroup

    One shutdown_recovery_group block as defined below.

    NOTE: shutdown_recovery_group will be required in the next major version of the AzureRM Provider.

    sourceRecoveryFabricId string
    ID of source fabric to be recovered from. Changing this forces a new Replication Plan to be created.
    targetRecoveryFabricId string
    ID of target fabric to recover. Changing this forces a new Replication Plan to be created.
    azure_to_azure_settings ReplicationRecoveryPlanAzureToAzureSettingsArgs
    An azure_to_azure_settings block as defined below.
    boot_recovery_groups Sequence[ReplicationRecoveryPlanBootRecoveryGroupArgs]

    One or more boot_recovery_group blocks as defined below.

    NOTE: At least one boot_recovery_group block will be required in the next major version of the AzureRM Provider.

    failover_recovery_group ReplicationRecoveryPlanFailoverRecoveryGroupArgs

    One failover_recovery_group block as defined below.

    NOTE: failover_recovery_group will be required in the next major version of the AzureRM Provider.

    name str
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    recovery_groups Sequence[ReplicationRecoveryPlanRecoveryGroupArgs]

    Three or more recovery_group block defined as below.

    Note: The recovery_group block is deprecated in favor of shutdown_recovery_group, failover_recovery_group and boot_recovery_group. It will be removed in v4.0 of the Azure Provider.

    Deprecated: the recovery_group block has been deprecated in favour of the shutdown_recovery_group, failover_recovery_group and boot_recovery_group and will be removed in version 4.0 of the provider.

    recovery_vault_id str
    The ID of the vault that should be updated. Changing this forces a new resource to be created.
    shutdown_recovery_group ReplicationRecoveryPlanShutdownRecoveryGroupArgs

    One shutdown_recovery_group block as defined below.

    NOTE: shutdown_recovery_group will be required in the next major version of the AzureRM Provider.

    source_recovery_fabric_id str
    ID of source fabric to be recovered from. Changing this forces a new Replication Plan to be created.
    target_recovery_fabric_id str
    ID of target fabric to recover. Changing this forces a new Replication Plan to be created.
    azureToAzureSettings Property Map
    An azure_to_azure_settings block as defined below.
    bootRecoveryGroups List<Property Map>

    One or more boot_recovery_group blocks as defined below.

    NOTE: At least one boot_recovery_group block will be required in the next major version of the AzureRM Provider.

    failoverRecoveryGroup Property Map

    One failover_recovery_group block as defined below.

    NOTE: failover_recovery_group will be required in the next major version of the AzureRM Provider.

    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    recoveryGroups List<Property Map>

    Three or more recovery_group block defined as below.

    Note: The recovery_group block is deprecated in favor of shutdown_recovery_group, failover_recovery_group and boot_recovery_group. It will be removed in v4.0 of the Azure Provider.

    Deprecated: the recovery_group block has been deprecated in favour of the shutdown_recovery_group, failover_recovery_group and boot_recovery_group and will be removed in version 4.0 of the provider.

    recoveryVaultId String
    The ID of the vault that should be updated. Changing this forces a new resource to be created.
    shutdownRecoveryGroup Property Map

    One shutdown_recovery_group block as defined below.

    NOTE: shutdown_recovery_group will be required in the next major version of the AzureRM Provider.

    sourceRecoveryFabricId String
    ID of source fabric to be recovered from. Changing this forces a new Replication Plan to be created.
    targetRecoveryFabricId String
    ID of target fabric to recover. Changing this forces a new Replication Plan to be created.

    Supporting Types

    ReplicationRecoveryPlanAzureToAzureSettings, ReplicationRecoveryPlanAzureToAzureSettingsArgs

    PrimaryEdgeZone string
    The Edge Zone within the Azure Region where the VM exists. Changing this forces a new Site Recovery Replication Recovery Plan to be created.
    PrimaryZone string
    The Availability Zone in which the VM is located. Changing this forces a new Site Recovery Replication Recovery Plan to be created.
    RecoveryEdgeZone string

    The Edge Zone within the Azure Region where the VM is recovered. Changing this forces a new Site Recovery Replication Recovery Plan to be created.

    Note: primary_edge_zone and recovery_edge_zone must be specified together.

    RecoveryZone string

    The Availability Zone in which the VM is recovered. Changing this forces a new Site Recovery Replication Recovery Plan to be created.

    Note: primary_zone and recovery_zone must be specified together.

    PrimaryEdgeZone string
    The Edge Zone within the Azure Region where the VM exists. Changing this forces a new Site Recovery Replication Recovery Plan to be created.
    PrimaryZone string
    The Availability Zone in which the VM is located. Changing this forces a new Site Recovery Replication Recovery Plan to be created.
    RecoveryEdgeZone string

    The Edge Zone within the Azure Region where the VM is recovered. Changing this forces a new Site Recovery Replication Recovery Plan to be created.

    Note: primary_edge_zone and recovery_edge_zone must be specified together.

    RecoveryZone string

    The Availability Zone in which the VM is recovered. Changing this forces a new Site Recovery Replication Recovery Plan to be created.

    Note: primary_zone and recovery_zone must be specified together.

    primaryEdgeZone String
    The Edge Zone within the Azure Region where the VM exists. Changing this forces a new Site Recovery Replication Recovery Plan to be created.
    primaryZone String
    The Availability Zone in which the VM is located. Changing this forces a new Site Recovery Replication Recovery Plan to be created.
    recoveryEdgeZone String

    The Edge Zone within the Azure Region where the VM is recovered. Changing this forces a new Site Recovery Replication Recovery Plan to be created.

    Note: primary_edge_zone and recovery_edge_zone must be specified together.

    recoveryZone String

    The Availability Zone in which the VM is recovered. Changing this forces a new Site Recovery Replication Recovery Plan to be created.

    Note: primary_zone and recovery_zone must be specified together.

    primaryEdgeZone string
    The Edge Zone within the Azure Region where the VM exists. Changing this forces a new Site Recovery Replication Recovery Plan to be created.
    primaryZone string
    The Availability Zone in which the VM is located. Changing this forces a new Site Recovery Replication Recovery Plan to be created.
    recoveryEdgeZone string

    The Edge Zone within the Azure Region where the VM is recovered. Changing this forces a new Site Recovery Replication Recovery Plan to be created.

    Note: primary_edge_zone and recovery_edge_zone must be specified together.

    recoveryZone string

    The Availability Zone in which the VM is recovered. Changing this forces a new Site Recovery Replication Recovery Plan to be created.

    Note: primary_zone and recovery_zone must be specified together.

    primary_edge_zone str
    The Edge Zone within the Azure Region where the VM exists. Changing this forces a new Site Recovery Replication Recovery Plan to be created.
    primary_zone str
    The Availability Zone in which the VM is located. Changing this forces a new Site Recovery Replication Recovery Plan to be created.
    recovery_edge_zone str

    The Edge Zone within the Azure Region where the VM is recovered. Changing this forces a new Site Recovery Replication Recovery Plan to be created.

    Note: primary_edge_zone and recovery_edge_zone must be specified together.

    recovery_zone str

    The Availability Zone in which the VM is recovered. Changing this forces a new Site Recovery Replication Recovery Plan to be created.

    Note: primary_zone and recovery_zone must be specified together.

    primaryEdgeZone String
    The Edge Zone within the Azure Region where the VM exists. Changing this forces a new Site Recovery Replication Recovery Plan to be created.
    primaryZone String
    The Availability Zone in which the VM is located. Changing this forces a new Site Recovery Replication Recovery Plan to be created.
    recoveryEdgeZone String

    The Edge Zone within the Azure Region where the VM is recovered. Changing this forces a new Site Recovery Replication Recovery Plan to be created.

    Note: primary_edge_zone and recovery_edge_zone must be specified together.

    recoveryZone String

    The Availability Zone in which the VM is recovered. Changing this forces a new Site Recovery Replication Recovery Plan to be created.

    Note: primary_zone and recovery_zone must be specified together.

    ReplicationRecoveryPlanBootRecoveryGroup, ReplicationRecoveryPlanBootRecoveryGroupArgs

    PostActions List<ReplicationRecoveryPlanBootRecoveryGroupPostAction>
    one or more action block as defined below. which will be executed after the group recovery.
    PreActions List<ReplicationRecoveryPlanBootRecoveryGroupPreAction>
    one or more action block as defined below. which will be executed before the group recovery.
    ReplicatedProtectedItems List<string>
    One or more protected VM IDs. It must not be specified when type is Shutdown.
    PostActions []ReplicationRecoveryPlanBootRecoveryGroupPostAction
    one or more action block as defined below. which will be executed after the group recovery.
    PreActions []ReplicationRecoveryPlanBootRecoveryGroupPreAction
    one or more action block as defined below. which will be executed before the group recovery.
    ReplicatedProtectedItems []string
    One or more protected VM IDs. It must not be specified when type is Shutdown.
    postActions List<ReplicationRecoveryPlanBootRecoveryGroupPostAction>
    one or more action block as defined below. which will be executed after the group recovery.
    preActions List<ReplicationRecoveryPlanBootRecoveryGroupPreAction>
    one or more action block as defined below. which will be executed before the group recovery.
    replicatedProtectedItems List<String>
    One or more protected VM IDs. It must not be specified when type is Shutdown.
    postActions ReplicationRecoveryPlanBootRecoveryGroupPostAction[]
    one or more action block as defined below. which will be executed after the group recovery.
    preActions ReplicationRecoveryPlanBootRecoveryGroupPreAction[]
    one or more action block as defined below. which will be executed before the group recovery.
    replicatedProtectedItems string[]
    One or more protected VM IDs. It must not be specified when type is Shutdown.
    post_actions Sequence[ReplicationRecoveryPlanBootRecoveryGroupPostAction]
    one or more action block as defined below. which will be executed after the group recovery.
    pre_actions Sequence[ReplicationRecoveryPlanBootRecoveryGroupPreAction]
    one or more action block as defined below. which will be executed before the group recovery.
    replicated_protected_items Sequence[str]
    One or more protected VM IDs. It must not be specified when type is Shutdown.
    postActions List<Property Map>
    one or more action block as defined below. which will be executed after the group recovery.
    preActions List<Property Map>
    one or more action block as defined below. which will be executed before the group recovery.
    replicatedProtectedItems List<String>
    One or more protected VM IDs. It must not be specified when type is Shutdown.

    ReplicationRecoveryPlanBootRecoveryGroupPostAction, ReplicationRecoveryPlanBootRecoveryGroupPostActionArgs

    FailOverDirections List<string>
    FailOverTypes List<string>
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    FailOverDirections []string
    FailOverTypes []string
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String
    failOverDirections string[]
    failOverTypes string[]
    name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type string
    fabricLocation string
    manualActionInstruction string
    runbookId string
    scriptPath string
    fail_over_directions Sequence[str]
    fail_over_types Sequence[str]
    name str
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type str
    fabric_location str
    manual_action_instruction str
    runbook_id str
    script_path str
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String

    ReplicationRecoveryPlanBootRecoveryGroupPreAction, ReplicationRecoveryPlanBootRecoveryGroupPreActionArgs

    FailOverDirections List<string>
    FailOverTypes List<string>
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    FailOverDirections []string
    FailOverTypes []string
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String
    failOverDirections string[]
    failOverTypes string[]
    name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type string
    fabricLocation string
    manualActionInstruction string
    runbookId string
    scriptPath string
    fail_over_directions Sequence[str]
    fail_over_types Sequence[str]
    name str
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type str
    fabric_location str
    manual_action_instruction str
    runbook_id str
    script_path str
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String

    ReplicationRecoveryPlanFailoverRecoveryGroup, ReplicationRecoveryPlanFailoverRecoveryGroupArgs

    PostActions List<ReplicationRecoveryPlanFailoverRecoveryGroupPostAction>
    one or more action block as defined below. which will be executed after the group recovery.
    PreActions List<ReplicationRecoveryPlanFailoverRecoveryGroupPreAction>
    one or more action block as defined below. which will be executed before the group recovery.
    PostActions []ReplicationRecoveryPlanFailoverRecoveryGroupPostAction
    one or more action block as defined below. which will be executed after the group recovery.
    PreActions []ReplicationRecoveryPlanFailoverRecoveryGroupPreAction
    one or more action block as defined below. which will be executed before the group recovery.
    postActions List<ReplicationRecoveryPlanFailoverRecoveryGroupPostAction>
    one or more action block as defined below. which will be executed after the group recovery.
    preActions List<ReplicationRecoveryPlanFailoverRecoveryGroupPreAction>
    one or more action block as defined below. which will be executed before the group recovery.
    postActions ReplicationRecoveryPlanFailoverRecoveryGroupPostAction[]
    one or more action block as defined below. which will be executed after the group recovery.
    preActions ReplicationRecoveryPlanFailoverRecoveryGroupPreAction[]
    one or more action block as defined below. which will be executed before the group recovery.
    post_actions Sequence[ReplicationRecoveryPlanFailoverRecoveryGroupPostAction]
    one or more action block as defined below. which will be executed after the group recovery.
    pre_actions Sequence[ReplicationRecoveryPlanFailoverRecoveryGroupPreAction]
    one or more action block as defined below. which will be executed before the group recovery.
    postActions List<Property Map>
    one or more action block as defined below. which will be executed after the group recovery.
    preActions List<Property Map>
    one or more action block as defined below. which will be executed before the group recovery.

    ReplicationRecoveryPlanFailoverRecoveryGroupPostAction, ReplicationRecoveryPlanFailoverRecoveryGroupPostActionArgs

    FailOverDirections List<string>
    FailOverTypes List<string>
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    FailOverDirections []string
    FailOverTypes []string
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String
    failOverDirections string[]
    failOverTypes string[]
    name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type string
    fabricLocation string
    manualActionInstruction string
    runbookId string
    scriptPath string
    fail_over_directions Sequence[str]
    fail_over_types Sequence[str]
    name str
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type str
    fabric_location str
    manual_action_instruction str
    runbook_id str
    script_path str
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String

    ReplicationRecoveryPlanFailoverRecoveryGroupPreAction, ReplicationRecoveryPlanFailoverRecoveryGroupPreActionArgs

    FailOverDirections List<string>
    FailOverTypes List<string>
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    FailOverDirections []string
    FailOverTypes []string
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String
    failOverDirections string[]
    failOverTypes string[]
    name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type string
    fabricLocation string
    manualActionInstruction string
    runbookId string
    scriptPath string
    fail_over_directions Sequence[str]
    fail_over_types Sequence[str]
    name str
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type str
    fabric_location str
    manual_action_instruction str
    runbook_id str
    script_path str
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String

    ReplicationRecoveryPlanRecoveryGroup, ReplicationRecoveryPlanRecoveryGroupArgs

    Type string
    The Recovery Plan Group Type. Possible values are Boot, Failover and Shutdown.
    PostActions List<ReplicationRecoveryPlanRecoveryGroupPostAction>
    one or more action block as defined below. which will be executed after the group recovery.
    PreActions List<ReplicationRecoveryPlanRecoveryGroupPreAction>
    one or more action block as defined below. which will be executed before the group recovery.
    ReplicatedProtectedItems List<string>
    One or more protected VM IDs. It must not be specified when type is Shutdown.
    Type string
    The Recovery Plan Group Type. Possible values are Boot, Failover and Shutdown.
    PostActions []ReplicationRecoveryPlanRecoveryGroupPostAction
    one or more action block as defined below. which will be executed after the group recovery.
    PreActions []ReplicationRecoveryPlanRecoveryGroupPreAction
    one or more action block as defined below. which will be executed before the group recovery.
    ReplicatedProtectedItems []string
    One or more protected VM IDs. It must not be specified when type is Shutdown.
    type String
    The Recovery Plan Group Type. Possible values are Boot, Failover and Shutdown.
    postActions List<ReplicationRecoveryPlanRecoveryGroupPostAction>
    one or more action block as defined below. which will be executed after the group recovery.
    preActions List<ReplicationRecoveryPlanRecoveryGroupPreAction>
    one or more action block as defined below. which will be executed before the group recovery.
    replicatedProtectedItems List<String>
    One or more protected VM IDs. It must not be specified when type is Shutdown.
    type string
    The Recovery Plan Group Type. Possible values are Boot, Failover and Shutdown.
    postActions ReplicationRecoveryPlanRecoveryGroupPostAction[]
    one or more action block as defined below. which will be executed after the group recovery.
    preActions ReplicationRecoveryPlanRecoveryGroupPreAction[]
    one or more action block as defined below. which will be executed before the group recovery.
    replicatedProtectedItems string[]
    One or more protected VM IDs. It must not be specified when type is Shutdown.
    type str
    The Recovery Plan Group Type. Possible values are Boot, Failover and Shutdown.
    post_actions Sequence[ReplicationRecoveryPlanRecoveryGroupPostAction]
    one or more action block as defined below. which will be executed after the group recovery.
    pre_actions Sequence[ReplicationRecoveryPlanRecoveryGroupPreAction]
    one or more action block as defined below. which will be executed before the group recovery.
    replicated_protected_items Sequence[str]
    One or more protected VM IDs. It must not be specified when type is Shutdown.
    type String
    The Recovery Plan Group Type. Possible values are Boot, Failover and Shutdown.
    postActions List<Property Map>
    one or more action block as defined below. which will be executed after the group recovery.
    preActions List<Property Map>
    one or more action block as defined below. which will be executed before the group recovery.
    replicatedProtectedItems List<String>
    One or more protected VM IDs. It must not be specified when type is Shutdown.

    ReplicationRecoveryPlanRecoveryGroupPostAction, ReplicationRecoveryPlanRecoveryGroupPostActionArgs

    FailOverDirections List<string>
    FailOverTypes List<string>
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    FailOverDirections []string
    FailOverTypes []string
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String
    failOverDirections string[]
    failOverTypes string[]
    name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type string
    fabricLocation string
    manualActionInstruction string
    runbookId string
    scriptPath string
    fail_over_directions Sequence[str]
    fail_over_types Sequence[str]
    name str
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type str
    fabric_location str
    manual_action_instruction str
    runbook_id str
    script_path str
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String

    ReplicationRecoveryPlanRecoveryGroupPreAction, ReplicationRecoveryPlanRecoveryGroupPreActionArgs

    FailOverDirections List<string>
    FailOverTypes List<string>
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    FailOverDirections []string
    FailOverTypes []string
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String
    failOverDirections string[]
    failOverTypes string[]
    name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type string
    fabricLocation string
    manualActionInstruction string
    runbookId string
    scriptPath string
    fail_over_directions Sequence[str]
    fail_over_types Sequence[str]
    name str
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type str
    fabric_location str
    manual_action_instruction str
    runbook_id str
    script_path str
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String

    ReplicationRecoveryPlanShutdownRecoveryGroup, ReplicationRecoveryPlanShutdownRecoveryGroupArgs

    PostActions List<ReplicationRecoveryPlanShutdownRecoveryGroupPostAction>
    one or more action block as defined below. which will be executed after the group recovery.
    PreActions List<ReplicationRecoveryPlanShutdownRecoveryGroupPreAction>
    one or more action block as defined below. which will be executed before the group recovery.
    PostActions []ReplicationRecoveryPlanShutdownRecoveryGroupPostAction
    one or more action block as defined below. which will be executed after the group recovery.
    PreActions []ReplicationRecoveryPlanShutdownRecoveryGroupPreAction
    one or more action block as defined below. which will be executed before the group recovery.
    postActions List<ReplicationRecoveryPlanShutdownRecoveryGroupPostAction>
    one or more action block as defined below. which will be executed after the group recovery.
    preActions List<ReplicationRecoveryPlanShutdownRecoveryGroupPreAction>
    one or more action block as defined below. which will be executed before the group recovery.
    postActions ReplicationRecoveryPlanShutdownRecoveryGroupPostAction[]
    one or more action block as defined below. which will be executed after the group recovery.
    preActions ReplicationRecoveryPlanShutdownRecoveryGroupPreAction[]
    one or more action block as defined below. which will be executed before the group recovery.
    post_actions Sequence[ReplicationRecoveryPlanShutdownRecoveryGroupPostAction]
    one or more action block as defined below. which will be executed after the group recovery.
    pre_actions Sequence[ReplicationRecoveryPlanShutdownRecoveryGroupPreAction]
    one or more action block as defined below. which will be executed before the group recovery.
    postActions List<Property Map>
    one or more action block as defined below. which will be executed after the group recovery.
    preActions List<Property Map>
    one or more action block as defined below. which will be executed before the group recovery.

    ReplicationRecoveryPlanShutdownRecoveryGroupPostAction, ReplicationRecoveryPlanShutdownRecoveryGroupPostActionArgs

    FailOverDirections List<string>
    FailOverTypes List<string>
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    FailOverDirections []string
    FailOverTypes []string
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String
    failOverDirections string[]
    failOverTypes string[]
    name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type string
    fabricLocation string
    manualActionInstruction string
    runbookId string
    scriptPath string
    fail_over_directions Sequence[str]
    fail_over_types Sequence[str]
    name str
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type str
    fabric_location str
    manual_action_instruction str
    runbook_id str
    script_path str
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String

    ReplicationRecoveryPlanShutdownRecoveryGroupPreAction, ReplicationRecoveryPlanShutdownRecoveryGroupPreActionArgs

    FailOverDirections List<string>
    FailOverTypes List<string>
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    FailOverDirections []string
    FailOverTypes []string
    Name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    Type string
    FabricLocation string
    ManualActionInstruction string
    RunbookId string
    ScriptPath string
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String
    failOverDirections string[]
    failOverTypes string[]
    name string
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type string
    fabricLocation string
    manualActionInstruction string
    runbookId string
    scriptPath string
    fail_over_directions Sequence[str]
    fail_over_types Sequence[str]
    name str
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type str
    fabric_location str
    manual_action_instruction str
    runbook_id str
    script_path str
    failOverDirections List<String>
    failOverTypes List<String>
    name String
    The name of the Replication Plan. The name can contain only letters, numbers, and hyphens. It should start with a letter and end with a letter or a number. Can be a maximum of 63 characters. Changing this forces a new resource to be created.
    type String
    fabricLocation String
    manualActionInstruction String
    runbookId String
    scriptPath String

    Import

    Site Recovery Fabric can be imported using the resource id, e.g.

    $ pulumi import azure:siterecovery/replicationRecoveryPlan:ReplicationRecoveryPlan azurerm_site_recovery_replication_recovery_plan.example /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/groupName/providers/Microsoft.RecoveryServices/vaults/vaultName/replicationRecoveryPlans/planName
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Azure Classic pulumi/pulumi-azure
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the azurerm Terraform Provider.
    azure logo

    We recommend using Azure Native.

    Azure Classic v5.81.0 published on Monday, Jun 24, 2024 by Pulumi