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

We recommend using Azure Native.

Azure v6.13.0 published on Monday, Dec 9, 2024 by Pulumi

azure.siterecovery.ReplicatedVM

Explore with Pulumi AI

azure logo

We recommend using Azure Native.

Azure v6.13.0 published on Monday, Dec 9, 2024 by Pulumi

    Manages a VM replicated using Azure Site Recovery (Azure to Azure only). A replicated VM keeps a copiously updated image of the VM in another region in order to be able to start the VM in that region in case of a disaster.

    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,
        ],
    });
    
    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=[{
            "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={
            "publisher": "Canonical",
            "offer": "0001-com-ubuntu-server-jammy",
            "sku": "22_04-lts",
            "version": "latest",
        },
        storage_os_disk={
            "name": "vm-os-disk",
            "os_type": "Linux",
            "caching": "ReadWrite",
            "create_option": "FromImage",
            "managed_disk_type": "Premium_LRS",
        },
        os_profile={
            "admin_username": "test-admin-123",
            "admin_password": "test-pwd-123",
            "computer_name": "vm",
        },
        os_profile_linux_config={
            "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=[{
            "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=[{
            "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,
            ]))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/compute"
    	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
    	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
    	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/recoveryservices"
    	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/siterecovery"
    	"github.com/pulumi/pulumi-azure/sdk/v6/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: int(24 * 60),
    			ApplicationConsistentSnapshotFrequencyInMinutes: int(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
    		}
    		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,
            },
        });
    
    });
    
    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.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());
    
        }
    }
    
    Coming soon!
    

    Create ReplicatedVM Resource

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

    Constructor syntax

    new ReplicatedVM(name: string, args: ReplicatedVMArgs, opts?: CustomResourceOptions);
    @overload
    def ReplicatedVM(resource_name: str,
                     args: ReplicatedVMArgs,
                     opts: Optional[ResourceOptions] = None)
    
    @overload
    def ReplicatedVM(resource_name: str,
                     opts: Optional[ResourceOptions] = None,
                     target_resource_group_id: Optional[str] = None,
                     target_recovery_fabric_id: Optional[str] = None,
                     target_recovery_protection_container_id: Optional[str] = None,
                     source_vm_id: Optional[str] = None,
                     recovery_replication_policy_id: Optional[str] = None,
                     recovery_vault_name: Optional[str] = None,
                     resource_group_name: Optional[str] = None,
                     source_recovery_fabric_name: Optional[str] = None,
                     source_recovery_protection_container_name: Optional[str] = None,
                     target_capacity_reservation_group_id: Optional[str] = None,
                     name: Optional[str] = None,
                     target_zone: Optional[str] = None,
                     multi_vm_group_name: Optional[str] = None,
                     target_edge_zone: Optional[str] = None,
                     network_interfaces: Optional[Sequence[ReplicatedVMNetworkInterfaceArgs]] = None,
                     unmanaged_disks: Optional[Sequence[ReplicatedVMUnmanagedDiskArgs]] = None,
                     target_network_id: Optional[str] = None,
                     target_proximity_placement_group_id: Optional[str] = None,
                     managed_disks: Optional[Sequence[ReplicatedVMManagedDiskArgs]] = None,
                     target_virtual_machine_scale_set_id: Optional[str] = None,
                     target_virtual_machine_size: Optional[str] = None,
                     target_boot_diagnostic_storage_account_id: Optional[str] = None,
                     test_network_id: Optional[str] = None,
                     target_availability_set_id: Optional[str] = None)
    func NewReplicatedVM(ctx *Context, name string, args ReplicatedVMArgs, opts ...ResourceOption) (*ReplicatedVM, error)
    public ReplicatedVM(string name, ReplicatedVMArgs args, CustomResourceOptions? opts = null)
    public ReplicatedVM(String name, ReplicatedVMArgs args)
    public ReplicatedVM(String name, ReplicatedVMArgs args, CustomResourceOptions options)
    
    type: azure:siterecovery:ReplicatedVM
    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 ReplicatedVMArgs
    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 ReplicatedVMArgs
    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 ReplicatedVMArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ReplicatedVMArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ReplicatedVMArgs
    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 replicatedVMResource = new Azure.SiteRecovery.ReplicatedVM("replicatedVMResource", new()
    {
        TargetResourceGroupId = "string",
        TargetRecoveryFabricId = "string",
        TargetRecoveryProtectionContainerId = "string",
        SourceVmId = "string",
        RecoveryReplicationPolicyId = "string",
        RecoveryVaultName = "string",
        ResourceGroupName = "string",
        SourceRecoveryFabricName = "string",
        SourceRecoveryProtectionContainerName = "string",
        TargetCapacityReservationGroupId = "string",
        Name = "string",
        TargetZone = "string",
        MultiVmGroupName = "string",
        TargetEdgeZone = "string",
        NetworkInterfaces = new[]
        {
            new Azure.SiteRecovery.Inputs.ReplicatedVMNetworkInterfaceArgs
            {
                FailoverTestPublicIpAddressId = "string",
                FailoverTestStaticIp = "string",
                FailoverTestSubnetName = "string",
                RecoveryPublicIpAddressId = "string",
                SourceNetworkInterfaceId = "string",
                TargetStaticIp = "string",
                TargetSubnetName = "string",
            },
        },
        UnmanagedDisks = new[]
        {
            new Azure.SiteRecovery.Inputs.ReplicatedVMUnmanagedDiskArgs
            {
                DiskUri = "string",
                StagingStorageAccountId = "string",
                TargetStorageAccountId = "string",
            },
        },
        TargetNetworkId = "string",
        TargetProximityPlacementGroupId = "string",
        ManagedDisks = new[]
        {
            new Azure.SiteRecovery.Inputs.ReplicatedVMManagedDiskArgs
            {
                DiskId = "string",
                StagingStorageAccountId = "string",
                TargetDiskType = "string",
                TargetReplicaDiskType = "string",
                TargetResourceGroupId = "string",
                TargetDiskEncryption = new Azure.SiteRecovery.Inputs.ReplicatedVMManagedDiskTargetDiskEncryptionArgs
                {
                    DiskEncryptionKey = new Azure.SiteRecovery.Inputs.ReplicatedVMManagedDiskTargetDiskEncryptionDiskEncryptionKeyArgs
                    {
                        SecretUrl = "string",
                        VaultId = "string",
                    },
                    KeyEncryptionKey = new Azure.SiteRecovery.Inputs.ReplicatedVMManagedDiskTargetDiskEncryptionKeyEncryptionKeyArgs
                    {
                        KeyUrl = "string",
                        VaultId = "string",
                    },
                },
                TargetDiskEncryptionSetId = "string",
            },
        },
        TargetVirtualMachineScaleSetId = "string",
        TargetVirtualMachineSize = "string",
        TargetBootDiagnosticStorageAccountId = "string",
        TestNetworkId = "string",
        TargetAvailabilitySetId = "string",
    });
    
    example, err := siterecovery.NewReplicatedVM(ctx, "replicatedVMResource", &siterecovery.ReplicatedVMArgs{
    	TargetResourceGroupId:                 pulumi.String("string"),
    	TargetRecoveryFabricId:                pulumi.String("string"),
    	TargetRecoveryProtectionContainerId:   pulumi.String("string"),
    	SourceVmId:                            pulumi.String("string"),
    	RecoveryReplicationPolicyId:           pulumi.String("string"),
    	RecoveryVaultName:                     pulumi.String("string"),
    	ResourceGroupName:                     pulumi.String("string"),
    	SourceRecoveryFabricName:              pulumi.String("string"),
    	SourceRecoveryProtectionContainerName: pulumi.String("string"),
    	TargetCapacityReservationGroupId:      pulumi.String("string"),
    	Name:                                  pulumi.String("string"),
    	TargetZone:                            pulumi.String("string"),
    	MultiVmGroupName:                      pulumi.String("string"),
    	TargetEdgeZone:                        pulumi.String("string"),
    	NetworkInterfaces: siterecovery.ReplicatedVMNetworkInterfaceArray{
    		&siterecovery.ReplicatedVMNetworkInterfaceArgs{
    			FailoverTestPublicIpAddressId: pulumi.String("string"),
    			FailoverTestStaticIp:          pulumi.String("string"),
    			FailoverTestSubnetName:        pulumi.String("string"),
    			RecoveryPublicIpAddressId:     pulumi.String("string"),
    			SourceNetworkInterfaceId:      pulumi.String("string"),
    			TargetStaticIp:                pulumi.String("string"),
    			TargetSubnetName:              pulumi.String("string"),
    		},
    	},
    	UnmanagedDisks: siterecovery.ReplicatedVMUnmanagedDiskArray{
    		&siterecovery.ReplicatedVMUnmanagedDiskArgs{
    			DiskUri:                 pulumi.String("string"),
    			StagingStorageAccountId: pulumi.String("string"),
    			TargetStorageAccountId:  pulumi.String("string"),
    		},
    	},
    	TargetNetworkId:                 pulumi.String("string"),
    	TargetProximityPlacementGroupId: pulumi.String("string"),
    	ManagedDisks: siterecovery.ReplicatedVMManagedDiskArray{
    		&siterecovery.ReplicatedVMManagedDiskArgs{
    			DiskId:                  pulumi.String("string"),
    			StagingStorageAccountId: pulumi.String("string"),
    			TargetDiskType:          pulumi.String("string"),
    			TargetReplicaDiskType:   pulumi.String("string"),
    			TargetResourceGroupId:   pulumi.String("string"),
    			TargetDiskEncryption: &siterecovery.ReplicatedVMManagedDiskTargetDiskEncryptionArgs{
    				DiskEncryptionKey: &siterecovery.ReplicatedVMManagedDiskTargetDiskEncryptionDiskEncryptionKeyArgs{
    					SecretUrl: pulumi.String("string"),
    					VaultId:   pulumi.String("string"),
    				},
    				KeyEncryptionKey: &siterecovery.ReplicatedVMManagedDiskTargetDiskEncryptionKeyEncryptionKeyArgs{
    					KeyUrl:  pulumi.String("string"),
    					VaultId: pulumi.String("string"),
    				},
    			},
    			TargetDiskEncryptionSetId: pulumi.String("string"),
    		},
    	},
    	TargetVirtualMachineScaleSetId:       pulumi.String("string"),
    	TargetVirtualMachineSize:             pulumi.String("string"),
    	TargetBootDiagnosticStorageAccountId: pulumi.String("string"),
    	TestNetworkId:                        pulumi.String("string"),
    	TargetAvailabilitySetId:              pulumi.String("string"),
    })
    
    var replicatedVMResource = new ReplicatedVM("replicatedVMResource", ReplicatedVMArgs.builder()
        .targetResourceGroupId("string")
        .targetRecoveryFabricId("string")
        .targetRecoveryProtectionContainerId("string")
        .sourceVmId("string")
        .recoveryReplicationPolicyId("string")
        .recoveryVaultName("string")
        .resourceGroupName("string")
        .sourceRecoveryFabricName("string")
        .sourceRecoveryProtectionContainerName("string")
        .targetCapacityReservationGroupId("string")
        .name("string")
        .targetZone("string")
        .multiVmGroupName("string")
        .targetEdgeZone("string")
        .networkInterfaces(ReplicatedVMNetworkInterfaceArgs.builder()
            .failoverTestPublicIpAddressId("string")
            .failoverTestStaticIp("string")
            .failoverTestSubnetName("string")
            .recoveryPublicIpAddressId("string")
            .sourceNetworkInterfaceId("string")
            .targetStaticIp("string")
            .targetSubnetName("string")
            .build())
        .unmanagedDisks(ReplicatedVMUnmanagedDiskArgs.builder()
            .diskUri("string")
            .stagingStorageAccountId("string")
            .targetStorageAccountId("string")
            .build())
        .targetNetworkId("string")
        .targetProximityPlacementGroupId("string")
        .managedDisks(ReplicatedVMManagedDiskArgs.builder()
            .diskId("string")
            .stagingStorageAccountId("string")
            .targetDiskType("string")
            .targetReplicaDiskType("string")
            .targetResourceGroupId("string")
            .targetDiskEncryption(ReplicatedVMManagedDiskTargetDiskEncryptionArgs.builder()
                .diskEncryptionKey(ReplicatedVMManagedDiskTargetDiskEncryptionDiskEncryptionKeyArgs.builder()
                    .secretUrl("string")
                    .vaultId("string")
                    .build())
                .keyEncryptionKey(ReplicatedVMManagedDiskTargetDiskEncryptionKeyEncryptionKeyArgs.builder()
                    .keyUrl("string")
                    .vaultId("string")
                    .build())
                .build())
            .targetDiskEncryptionSetId("string")
            .build())
        .targetVirtualMachineScaleSetId("string")
        .targetVirtualMachineSize("string")
        .targetBootDiagnosticStorageAccountId("string")
        .testNetworkId("string")
        .targetAvailabilitySetId("string")
        .build());
    
    replicated_vm_resource = azure.siterecovery.ReplicatedVM("replicatedVMResource",
        target_resource_group_id="string",
        target_recovery_fabric_id="string",
        target_recovery_protection_container_id="string",
        source_vm_id="string",
        recovery_replication_policy_id="string",
        recovery_vault_name="string",
        resource_group_name="string",
        source_recovery_fabric_name="string",
        source_recovery_protection_container_name="string",
        target_capacity_reservation_group_id="string",
        name="string",
        target_zone="string",
        multi_vm_group_name="string",
        target_edge_zone="string",
        network_interfaces=[{
            "failover_test_public_ip_address_id": "string",
            "failover_test_static_ip": "string",
            "failover_test_subnet_name": "string",
            "recovery_public_ip_address_id": "string",
            "source_network_interface_id": "string",
            "target_static_ip": "string",
            "target_subnet_name": "string",
        }],
        unmanaged_disks=[{
            "disk_uri": "string",
            "staging_storage_account_id": "string",
            "target_storage_account_id": "string",
        }],
        target_network_id="string",
        target_proximity_placement_group_id="string",
        managed_disks=[{
            "disk_id": "string",
            "staging_storage_account_id": "string",
            "target_disk_type": "string",
            "target_replica_disk_type": "string",
            "target_resource_group_id": "string",
            "target_disk_encryption": {
                "disk_encryption_key": {
                    "secret_url": "string",
                    "vault_id": "string",
                },
                "key_encryption_key": {
                    "key_url": "string",
                    "vault_id": "string",
                },
            },
            "target_disk_encryption_set_id": "string",
        }],
        target_virtual_machine_scale_set_id="string",
        target_virtual_machine_size="string",
        target_boot_diagnostic_storage_account_id="string",
        test_network_id="string",
        target_availability_set_id="string")
    
    const replicatedVMResource = new azure.siterecovery.ReplicatedVM("replicatedVMResource", {
        targetResourceGroupId: "string",
        targetRecoveryFabricId: "string",
        targetRecoveryProtectionContainerId: "string",
        sourceVmId: "string",
        recoveryReplicationPolicyId: "string",
        recoveryVaultName: "string",
        resourceGroupName: "string",
        sourceRecoveryFabricName: "string",
        sourceRecoveryProtectionContainerName: "string",
        targetCapacityReservationGroupId: "string",
        name: "string",
        targetZone: "string",
        multiVmGroupName: "string",
        targetEdgeZone: "string",
        networkInterfaces: [{
            failoverTestPublicIpAddressId: "string",
            failoverTestStaticIp: "string",
            failoverTestSubnetName: "string",
            recoveryPublicIpAddressId: "string",
            sourceNetworkInterfaceId: "string",
            targetStaticIp: "string",
            targetSubnetName: "string",
        }],
        unmanagedDisks: [{
            diskUri: "string",
            stagingStorageAccountId: "string",
            targetStorageAccountId: "string",
        }],
        targetNetworkId: "string",
        targetProximityPlacementGroupId: "string",
        managedDisks: [{
            diskId: "string",
            stagingStorageAccountId: "string",
            targetDiskType: "string",
            targetReplicaDiskType: "string",
            targetResourceGroupId: "string",
            targetDiskEncryption: {
                diskEncryptionKey: {
                    secretUrl: "string",
                    vaultId: "string",
                },
                keyEncryptionKey: {
                    keyUrl: "string",
                    vaultId: "string",
                },
            },
            targetDiskEncryptionSetId: "string",
        }],
        targetVirtualMachineScaleSetId: "string",
        targetVirtualMachineSize: "string",
        targetBootDiagnosticStorageAccountId: "string",
        testNetworkId: "string",
        targetAvailabilitySetId: "string",
    });
    
    type: azure:siterecovery:ReplicatedVM
    properties:
        managedDisks:
            - diskId: string
              stagingStorageAccountId: string
              targetDiskEncryption:
                diskEncryptionKey:
                    secretUrl: string
                    vaultId: string
                keyEncryptionKey:
                    keyUrl: string
                    vaultId: string
              targetDiskEncryptionSetId: string
              targetDiskType: string
              targetReplicaDiskType: string
              targetResourceGroupId: string
        multiVmGroupName: string
        name: string
        networkInterfaces:
            - failoverTestPublicIpAddressId: string
              failoverTestStaticIp: string
              failoverTestSubnetName: string
              recoveryPublicIpAddressId: string
              sourceNetworkInterfaceId: string
              targetStaticIp: string
              targetSubnetName: string
        recoveryReplicationPolicyId: string
        recoveryVaultName: string
        resourceGroupName: string
        sourceRecoveryFabricName: string
        sourceRecoveryProtectionContainerName: string
        sourceVmId: string
        targetAvailabilitySetId: string
        targetBootDiagnosticStorageAccountId: string
        targetCapacityReservationGroupId: string
        targetEdgeZone: string
        targetNetworkId: string
        targetProximityPlacementGroupId: string
        targetRecoveryFabricId: string
        targetRecoveryProtectionContainerId: string
        targetResourceGroupId: string
        targetVirtualMachineScaleSetId: string
        targetVirtualMachineSize: string
        targetZone: string
        testNetworkId: string
        unmanagedDisks:
            - diskUri: string
              stagingStorageAccountId: string
              targetStorageAccountId: string
    

    ReplicatedVM Resource Properties

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

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The ReplicatedVM resource accepts the following input properties:

    RecoveryReplicationPolicyId string
    Id of the policy to use for this replicated vm. Changing this forces a new resource to be created.
    RecoveryVaultName string
    The name of the vault that should be updated. Changing this forces a new resource to be created.
    ResourceGroupName string
    Name of the resource group where the vault that should be updated is located. Changing this forces a new resource to be created.
    SourceRecoveryFabricName string
    Name of fabric that should contain this replication. Changing this forces a new resource to be created.
    SourceRecoveryProtectionContainerName string
    Name of the protection container to use. Changing this forces a new resource to be created.
    SourceVmId string
    Id of the VM to replicate Changing this forces a new resource to be created.
    TargetRecoveryFabricId string
    Id of fabric where the VM replication should be handled when a failover is done. Changing this forces a new resource to be created.
    TargetRecoveryProtectionContainerId string
    Id of protection container where the VM replication should be created when a failover is done. Changing this forces a new resource to be created.
    TargetResourceGroupId string
    Id of resource group where the VM should be created when a failover is done. Changing this forces a new resource to be created.
    ManagedDisks List<ReplicatedVMManagedDisk>
    One or more managed_disk block as defined below. Changing this forces a new resource to be created.
    MultiVmGroupName string
    Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
    Name string
    The name of the replication for the replicated VM. Changing this forces a new resource to be created.
    NetworkInterfaces List<ReplicatedVMNetworkInterface>
    One or more network_interface block as defined below.
    TargetAvailabilitySetId string
    Id of availability set that the new VM should belong to when a failover is done.
    TargetBootDiagnosticStorageAccountId string
    Id of the storage account which the new VM should used for boot diagnostic when a failover is done.
    TargetCapacityReservationGroupId string
    Id of the Capacity reservation group where the new VM should belong to when a failover is done.
    TargetEdgeZone string
    Specifies the Edge Zone within the Azure Region where this Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.
    TargetNetworkId string
    Network to use when a failover is done (recommended to set if any network_interface is configured for failover).
    TargetProximityPlacementGroupId string
    Id of Proximity Placement Group the new VM should belong to when a failover is done.
    TargetVirtualMachineScaleSetId string
    Id of the Virtual Machine Scale Set which the new Vm should belong to when a failover is done.
    TargetVirtualMachineSize string
    Specifies the size the Virtual Machine should have.
    TargetZone string
    Specifies the Availability Zone where the Failover VM should exist. Changing this forces a new resource to be created.
    TestNetworkId string
    Network to use when a test failover is done.
    UnmanagedDisks List<ReplicatedVMUnmanagedDisk>
    One or more unmanaged_disk block as defined below. Changing this forces a new resource to be created.
    RecoveryReplicationPolicyId string
    Id of the policy to use for this replicated vm. Changing this forces a new resource to be created.
    RecoveryVaultName string
    The name of the vault that should be updated. Changing this forces a new resource to be created.
    ResourceGroupName string
    Name of the resource group where the vault that should be updated is located. Changing this forces a new resource to be created.
    SourceRecoveryFabricName string
    Name of fabric that should contain this replication. Changing this forces a new resource to be created.
    SourceRecoveryProtectionContainerName string
    Name of the protection container to use. Changing this forces a new resource to be created.
    SourceVmId string
    Id of the VM to replicate Changing this forces a new resource to be created.
    TargetRecoveryFabricId string
    Id of fabric where the VM replication should be handled when a failover is done. Changing this forces a new resource to be created.
    TargetRecoveryProtectionContainerId string
    Id of protection container where the VM replication should be created when a failover is done. Changing this forces a new resource to be created.
    TargetResourceGroupId string
    Id of resource group where the VM should be created when a failover is done. Changing this forces a new resource to be created.
    ManagedDisks []ReplicatedVMManagedDiskArgs
    One or more managed_disk block as defined below. Changing this forces a new resource to be created.
    MultiVmGroupName string
    Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
    Name string
    The name of the replication for the replicated VM. Changing this forces a new resource to be created.
    NetworkInterfaces []ReplicatedVMNetworkInterfaceArgs
    One or more network_interface block as defined below.
    TargetAvailabilitySetId string
    Id of availability set that the new VM should belong to when a failover is done.
    TargetBootDiagnosticStorageAccountId string
    Id of the storage account which the new VM should used for boot diagnostic when a failover is done.
    TargetCapacityReservationGroupId string
    Id of the Capacity reservation group where the new VM should belong to when a failover is done.
    TargetEdgeZone string
    Specifies the Edge Zone within the Azure Region where this Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.
    TargetNetworkId string
    Network to use when a failover is done (recommended to set if any network_interface is configured for failover).
    TargetProximityPlacementGroupId string
    Id of Proximity Placement Group the new VM should belong to when a failover is done.
    TargetVirtualMachineScaleSetId string
    Id of the Virtual Machine Scale Set which the new Vm should belong to when a failover is done.
    TargetVirtualMachineSize string
    Specifies the size the Virtual Machine should have.
    TargetZone string
    Specifies the Availability Zone where the Failover VM should exist. Changing this forces a new resource to be created.
    TestNetworkId string
    Network to use when a test failover is done.
    UnmanagedDisks []ReplicatedVMUnmanagedDiskArgs
    One or more unmanaged_disk block as defined below. Changing this forces a new resource to be created.
    recoveryReplicationPolicyId String
    Id of the policy to use for this replicated vm. Changing this forces a new resource to be created.
    recoveryVaultName String
    The name of the vault that should be updated. Changing this forces a new resource to be created.
    resourceGroupName String
    Name of the resource group where the vault that should be updated is located. Changing this forces a new resource to be created.
    sourceRecoveryFabricName String
    Name of fabric that should contain this replication. Changing this forces a new resource to be created.
    sourceRecoveryProtectionContainerName String
    Name of the protection container to use. Changing this forces a new resource to be created.
    sourceVmId String
    Id of the VM to replicate Changing this forces a new resource to be created.
    targetRecoveryFabricId String
    Id of fabric where the VM replication should be handled when a failover is done. Changing this forces a new resource to be created.
    targetRecoveryProtectionContainerId String
    Id of protection container where the VM replication should be created when a failover is done. Changing this forces a new resource to be created.
    targetResourceGroupId String
    Id of resource group where the VM should be created when a failover is done. Changing this forces a new resource to be created.
    managedDisks List<ReplicatedVMManagedDisk>
    One or more managed_disk block as defined below. Changing this forces a new resource to be created.
    multiVmGroupName String
    Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
    name String
    The name of the replication for the replicated VM. Changing this forces a new resource to be created.
    networkInterfaces List<ReplicatedVMNetworkInterface>
    One or more network_interface block as defined below.
    targetAvailabilitySetId String
    Id of availability set that the new VM should belong to when a failover is done.
    targetBootDiagnosticStorageAccountId String
    Id of the storage account which the new VM should used for boot diagnostic when a failover is done.
    targetCapacityReservationGroupId String
    Id of the Capacity reservation group where the new VM should belong to when a failover is done.
    targetEdgeZone String
    Specifies the Edge Zone within the Azure Region where this Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.
    targetNetworkId String
    Network to use when a failover is done (recommended to set if any network_interface is configured for failover).
    targetProximityPlacementGroupId String
    Id of Proximity Placement Group the new VM should belong to when a failover is done.
    targetVirtualMachineScaleSetId String
    Id of the Virtual Machine Scale Set which the new Vm should belong to when a failover is done.
    targetVirtualMachineSize String
    Specifies the size the Virtual Machine should have.
    targetZone String
    Specifies the Availability Zone where the Failover VM should exist. Changing this forces a new resource to be created.
    testNetworkId String
    Network to use when a test failover is done.
    unmanagedDisks List<ReplicatedVMUnmanagedDisk>
    One or more unmanaged_disk block as defined below. Changing this forces a new resource to be created.
    recoveryReplicationPolicyId string
    Id of the policy to use for this replicated vm. Changing this forces a new resource to be created.
    recoveryVaultName string
    The name of the vault that should be updated. Changing this forces a new resource to be created.
    resourceGroupName string
    Name of the resource group where the vault that should be updated is located. Changing this forces a new resource to be created.
    sourceRecoveryFabricName string
    Name of fabric that should contain this replication. Changing this forces a new resource to be created.
    sourceRecoveryProtectionContainerName string
    Name of the protection container to use. Changing this forces a new resource to be created.
    sourceVmId string
    Id of the VM to replicate Changing this forces a new resource to be created.
    targetRecoveryFabricId string
    Id of fabric where the VM replication should be handled when a failover is done. Changing this forces a new resource to be created.
    targetRecoveryProtectionContainerId string
    Id of protection container where the VM replication should be created when a failover is done. Changing this forces a new resource to be created.
    targetResourceGroupId string
    Id of resource group where the VM should be created when a failover is done. Changing this forces a new resource to be created.
    managedDisks ReplicatedVMManagedDisk[]
    One or more managed_disk block as defined below. Changing this forces a new resource to be created.
    multiVmGroupName string
    Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
    name string
    The name of the replication for the replicated VM. Changing this forces a new resource to be created.
    networkInterfaces ReplicatedVMNetworkInterface[]
    One or more network_interface block as defined below.
    targetAvailabilitySetId string
    Id of availability set that the new VM should belong to when a failover is done.
    targetBootDiagnosticStorageAccountId string
    Id of the storage account which the new VM should used for boot diagnostic when a failover is done.
    targetCapacityReservationGroupId string
    Id of the Capacity reservation group where the new VM should belong to when a failover is done.
    targetEdgeZone string
    Specifies the Edge Zone within the Azure Region where this Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.
    targetNetworkId string
    Network to use when a failover is done (recommended to set if any network_interface is configured for failover).
    targetProximityPlacementGroupId string
    Id of Proximity Placement Group the new VM should belong to when a failover is done.
    targetVirtualMachineScaleSetId string
    Id of the Virtual Machine Scale Set which the new Vm should belong to when a failover is done.
    targetVirtualMachineSize string
    Specifies the size the Virtual Machine should have.
    targetZone string
    Specifies the Availability Zone where the Failover VM should exist. Changing this forces a new resource to be created.
    testNetworkId string
    Network to use when a test failover is done.
    unmanagedDisks ReplicatedVMUnmanagedDisk[]
    One or more unmanaged_disk block as defined below. Changing this forces a new resource to be created.
    recovery_replication_policy_id str
    Id of the policy to use for this replicated vm. Changing this forces a new resource to be created.
    recovery_vault_name str
    The name of the vault that should be updated. Changing this forces a new resource to be created.
    resource_group_name str
    Name of the resource group where the vault that should be updated is located. Changing this forces a new resource to be created.
    source_recovery_fabric_name str
    Name of fabric that should contain this replication. Changing this forces a new resource to be created.
    source_recovery_protection_container_name str
    Name of the protection container to use. Changing this forces a new resource to be created.
    source_vm_id str
    Id of the VM to replicate Changing this forces a new resource to be created.
    target_recovery_fabric_id str
    Id of fabric where the VM replication should be handled when a failover is done. Changing this forces a new resource to be created.
    target_recovery_protection_container_id str
    Id of protection container where the VM replication should be created when a failover is done. Changing this forces a new resource to be created.
    target_resource_group_id str
    Id of resource group where the VM should be created when a failover is done. Changing this forces a new resource to be created.
    managed_disks Sequence[ReplicatedVMManagedDiskArgs]
    One or more managed_disk block as defined below. Changing this forces a new resource to be created.
    multi_vm_group_name str
    Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
    name str
    The name of the replication for the replicated VM. Changing this forces a new resource to be created.
    network_interfaces Sequence[ReplicatedVMNetworkInterfaceArgs]
    One or more network_interface block as defined below.
    target_availability_set_id str
    Id of availability set that the new VM should belong to when a failover is done.
    target_boot_diagnostic_storage_account_id str
    Id of the storage account which the new VM should used for boot diagnostic when a failover is done.
    target_capacity_reservation_group_id str
    Id of the Capacity reservation group where the new VM should belong to when a failover is done.
    target_edge_zone str
    Specifies the Edge Zone within the Azure Region where this Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.
    target_network_id str
    Network to use when a failover is done (recommended to set if any network_interface is configured for failover).
    target_proximity_placement_group_id str
    Id of Proximity Placement Group the new VM should belong to when a failover is done.
    target_virtual_machine_scale_set_id str
    Id of the Virtual Machine Scale Set which the new Vm should belong to when a failover is done.
    target_virtual_machine_size str
    Specifies the size the Virtual Machine should have.
    target_zone str
    Specifies the Availability Zone where the Failover VM should exist. Changing this forces a new resource to be created.
    test_network_id str
    Network to use when a test failover is done.
    unmanaged_disks Sequence[ReplicatedVMUnmanagedDiskArgs]
    One or more unmanaged_disk block as defined below. Changing this forces a new resource to be created.
    recoveryReplicationPolicyId String
    Id of the policy to use for this replicated vm. Changing this forces a new resource to be created.
    recoveryVaultName String
    The name of the vault that should be updated. Changing this forces a new resource to be created.
    resourceGroupName String
    Name of the resource group where the vault that should be updated is located. Changing this forces a new resource to be created.
    sourceRecoveryFabricName String
    Name of fabric that should contain this replication. Changing this forces a new resource to be created.
    sourceRecoveryProtectionContainerName String
    Name of the protection container to use. Changing this forces a new resource to be created.
    sourceVmId String
    Id of the VM to replicate Changing this forces a new resource to be created.
    targetRecoveryFabricId String
    Id of fabric where the VM replication should be handled when a failover is done. Changing this forces a new resource to be created.
    targetRecoveryProtectionContainerId String
    Id of protection container where the VM replication should be created when a failover is done. Changing this forces a new resource to be created.
    targetResourceGroupId String
    Id of resource group where the VM should be created when a failover is done. Changing this forces a new resource to be created.
    managedDisks List<Property Map>
    One or more managed_disk block as defined below. Changing this forces a new resource to be created.
    multiVmGroupName String
    Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
    name String
    The name of the replication for the replicated VM. Changing this forces a new resource to be created.
    networkInterfaces List<Property Map>
    One or more network_interface block as defined below.
    targetAvailabilitySetId String
    Id of availability set that the new VM should belong to when a failover is done.
    targetBootDiagnosticStorageAccountId String
    Id of the storage account which the new VM should used for boot diagnostic when a failover is done.
    targetCapacityReservationGroupId String
    Id of the Capacity reservation group where the new VM should belong to when a failover is done.
    targetEdgeZone String
    Specifies the Edge Zone within the Azure Region where this Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.
    targetNetworkId String
    Network to use when a failover is done (recommended to set if any network_interface is configured for failover).
    targetProximityPlacementGroupId String
    Id of Proximity Placement Group the new VM should belong to when a failover is done.
    targetVirtualMachineScaleSetId String
    Id of the Virtual Machine Scale Set which the new Vm should belong to when a failover is done.
    targetVirtualMachineSize String
    Specifies the size the Virtual Machine should have.
    targetZone String
    Specifies the Availability Zone where the Failover VM should exist. Changing this forces a new resource to be created.
    testNetworkId String
    Network to use when a test failover is done.
    unmanagedDisks List<Property Map>
    One or more unmanaged_disk block as defined below. Changing this forces a new resource to be created.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the ReplicatedVM 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 ReplicatedVM Resource

    Get an existing ReplicatedVM 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?: ReplicatedVMState, opts?: CustomResourceOptions): ReplicatedVM
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            managed_disks: Optional[Sequence[ReplicatedVMManagedDiskArgs]] = None,
            multi_vm_group_name: Optional[str] = None,
            name: Optional[str] = None,
            network_interfaces: Optional[Sequence[ReplicatedVMNetworkInterfaceArgs]] = None,
            recovery_replication_policy_id: Optional[str] = None,
            recovery_vault_name: Optional[str] = None,
            resource_group_name: Optional[str] = None,
            source_recovery_fabric_name: Optional[str] = None,
            source_recovery_protection_container_name: Optional[str] = None,
            source_vm_id: Optional[str] = None,
            target_availability_set_id: Optional[str] = None,
            target_boot_diagnostic_storage_account_id: Optional[str] = None,
            target_capacity_reservation_group_id: Optional[str] = None,
            target_edge_zone: Optional[str] = None,
            target_network_id: Optional[str] = None,
            target_proximity_placement_group_id: Optional[str] = None,
            target_recovery_fabric_id: Optional[str] = None,
            target_recovery_protection_container_id: Optional[str] = None,
            target_resource_group_id: Optional[str] = None,
            target_virtual_machine_scale_set_id: Optional[str] = None,
            target_virtual_machine_size: Optional[str] = None,
            target_zone: Optional[str] = None,
            test_network_id: Optional[str] = None,
            unmanaged_disks: Optional[Sequence[ReplicatedVMUnmanagedDiskArgs]] = None) -> ReplicatedVM
    func GetReplicatedVM(ctx *Context, name string, id IDInput, state *ReplicatedVMState, opts ...ResourceOption) (*ReplicatedVM, error)
    public static ReplicatedVM Get(string name, Input<string> id, ReplicatedVMState? state, CustomResourceOptions? opts = null)
    public static ReplicatedVM get(String name, Output<String> id, ReplicatedVMState 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:
    ManagedDisks List<ReplicatedVMManagedDisk>
    One or more managed_disk block as defined below. Changing this forces a new resource to be created.
    MultiVmGroupName string
    Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
    Name string
    The name of the replication for the replicated VM. Changing this forces a new resource to be created.
    NetworkInterfaces List<ReplicatedVMNetworkInterface>
    One or more network_interface block as defined below.
    RecoveryReplicationPolicyId string
    Id of the policy to use for this replicated vm. Changing this forces a new resource to be created.
    RecoveryVaultName string
    The name of the vault that should be updated. Changing this forces a new resource to be created.
    ResourceGroupName string
    Name of the resource group where the vault that should be updated is located. Changing this forces a new resource to be created.
    SourceRecoveryFabricName string
    Name of fabric that should contain this replication. Changing this forces a new resource to be created.
    SourceRecoveryProtectionContainerName string
    Name of the protection container to use. Changing this forces a new resource to be created.
    SourceVmId string
    Id of the VM to replicate Changing this forces a new resource to be created.
    TargetAvailabilitySetId string
    Id of availability set that the new VM should belong to when a failover is done.
    TargetBootDiagnosticStorageAccountId string
    Id of the storage account which the new VM should used for boot diagnostic when a failover is done.
    TargetCapacityReservationGroupId string
    Id of the Capacity reservation group where the new VM should belong to when a failover is done.
    TargetEdgeZone string
    Specifies the Edge Zone within the Azure Region where this Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.
    TargetNetworkId string
    Network to use when a failover is done (recommended to set if any network_interface is configured for failover).
    TargetProximityPlacementGroupId string
    Id of Proximity Placement Group the new VM should belong to when a failover is done.
    TargetRecoveryFabricId string
    Id of fabric where the VM replication should be handled when a failover is done. Changing this forces a new resource to be created.
    TargetRecoveryProtectionContainerId string
    Id of protection container where the VM replication should be created when a failover is done. Changing this forces a new resource to be created.
    TargetResourceGroupId string
    Id of resource group where the VM should be created when a failover is done. Changing this forces a new resource to be created.
    TargetVirtualMachineScaleSetId string
    Id of the Virtual Machine Scale Set which the new Vm should belong to when a failover is done.
    TargetVirtualMachineSize string
    Specifies the size the Virtual Machine should have.
    TargetZone string
    Specifies the Availability Zone where the Failover VM should exist. Changing this forces a new resource to be created.
    TestNetworkId string
    Network to use when a test failover is done.
    UnmanagedDisks List<ReplicatedVMUnmanagedDisk>
    One or more unmanaged_disk block as defined below. Changing this forces a new resource to be created.
    ManagedDisks []ReplicatedVMManagedDiskArgs
    One or more managed_disk block as defined below. Changing this forces a new resource to be created.
    MultiVmGroupName string
    Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
    Name string
    The name of the replication for the replicated VM. Changing this forces a new resource to be created.
    NetworkInterfaces []ReplicatedVMNetworkInterfaceArgs
    One or more network_interface block as defined below.
    RecoveryReplicationPolicyId string
    Id of the policy to use for this replicated vm. Changing this forces a new resource to be created.
    RecoveryVaultName string
    The name of the vault that should be updated. Changing this forces a new resource to be created.
    ResourceGroupName string
    Name of the resource group where the vault that should be updated is located. Changing this forces a new resource to be created.
    SourceRecoveryFabricName string
    Name of fabric that should contain this replication. Changing this forces a new resource to be created.
    SourceRecoveryProtectionContainerName string
    Name of the protection container to use. Changing this forces a new resource to be created.
    SourceVmId string
    Id of the VM to replicate Changing this forces a new resource to be created.
    TargetAvailabilitySetId string
    Id of availability set that the new VM should belong to when a failover is done.
    TargetBootDiagnosticStorageAccountId string
    Id of the storage account which the new VM should used for boot diagnostic when a failover is done.
    TargetCapacityReservationGroupId string
    Id of the Capacity reservation group where the new VM should belong to when a failover is done.
    TargetEdgeZone string
    Specifies the Edge Zone within the Azure Region where this Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.
    TargetNetworkId string
    Network to use when a failover is done (recommended to set if any network_interface is configured for failover).
    TargetProximityPlacementGroupId string
    Id of Proximity Placement Group the new VM should belong to when a failover is done.
    TargetRecoveryFabricId string
    Id of fabric where the VM replication should be handled when a failover is done. Changing this forces a new resource to be created.
    TargetRecoveryProtectionContainerId string
    Id of protection container where the VM replication should be created when a failover is done. Changing this forces a new resource to be created.
    TargetResourceGroupId string
    Id of resource group where the VM should be created when a failover is done. Changing this forces a new resource to be created.
    TargetVirtualMachineScaleSetId string
    Id of the Virtual Machine Scale Set which the new Vm should belong to when a failover is done.
    TargetVirtualMachineSize string
    Specifies the size the Virtual Machine should have.
    TargetZone string
    Specifies the Availability Zone where the Failover VM should exist. Changing this forces a new resource to be created.
    TestNetworkId string
    Network to use when a test failover is done.
    UnmanagedDisks []ReplicatedVMUnmanagedDiskArgs
    One or more unmanaged_disk block as defined below. Changing this forces a new resource to be created.
    managedDisks List<ReplicatedVMManagedDisk>
    One or more managed_disk block as defined below. Changing this forces a new resource to be created.
    multiVmGroupName String
    Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
    name String
    The name of the replication for the replicated VM. Changing this forces a new resource to be created.
    networkInterfaces List<ReplicatedVMNetworkInterface>
    One or more network_interface block as defined below.
    recoveryReplicationPolicyId String
    Id of the policy to use for this replicated vm. Changing this forces a new resource to be created.
    recoveryVaultName String
    The name of the vault that should be updated. Changing this forces a new resource to be created.
    resourceGroupName String
    Name of the resource group where the vault that should be updated is located. Changing this forces a new resource to be created.
    sourceRecoveryFabricName String
    Name of fabric that should contain this replication. Changing this forces a new resource to be created.
    sourceRecoveryProtectionContainerName String
    Name of the protection container to use. Changing this forces a new resource to be created.
    sourceVmId String
    Id of the VM to replicate Changing this forces a new resource to be created.
    targetAvailabilitySetId String
    Id of availability set that the new VM should belong to when a failover is done.
    targetBootDiagnosticStorageAccountId String
    Id of the storage account which the new VM should used for boot diagnostic when a failover is done.
    targetCapacityReservationGroupId String
    Id of the Capacity reservation group where the new VM should belong to when a failover is done.
    targetEdgeZone String
    Specifies the Edge Zone within the Azure Region where this Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.
    targetNetworkId String
    Network to use when a failover is done (recommended to set if any network_interface is configured for failover).
    targetProximityPlacementGroupId String
    Id of Proximity Placement Group the new VM should belong to when a failover is done.
    targetRecoveryFabricId String
    Id of fabric where the VM replication should be handled when a failover is done. Changing this forces a new resource to be created.
    targetRecoveryProtectionContainerId String
    Id of protection container where the VM replication should be created when a failover is done. Changing this forces a new resource to be created.
    targetResourceGroupId String
    Id of resource group where the VM should be created when a failover is done. Changing this forces a new resource to be created.
    targetVirtualMachineScaleSetId String
    Id of the Virtual Machine Scale Set which the new Vm should belong to when a failover is done.
    targetVirtualMachineSize String
    Specifies the size the Virtual Machine should have.
    targetZone String
    Specifies the Availability Zone where the Failover VM should exist. Changing this forces a new resource to be created.
    testNetworkId String
    Network to use when a test failover is done.
    unmanagedDisks List<ReplicatedVMUnmanagedDisk>
    One or more unmanaged_disk block as defined below. Changing this forces a new resource to be created.
    managedDisks ReplicatedVMManagedDisk[]
    One or more managed_disk block as defined below. Changing this forces a new resource to be created.
    multiVmGroupName string
    Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
    name string
    The name of the replication for the replicated VM. Changing this forces a new resource to be created.
    networkInterfaces ReplicatedVMNetworkInterface[]
    One or more network_interface block as defined below.
    recoveryReplicationPolicyId string
    Id of the policy to use for this replicated vm. Changing this forces a new resource to be created.
    recoveryVaultName string
    The name of the vault that should be updated. Changing this forces a new resource to be created.
    resourceGroupName string
    Name of the resource group where the vault that should be updated is located. Changing this forces a new resource to be created.
    sourceRecoveryFabricName string
    Name of fabric that should contain this replication. Changing this forces a new resource to be created.
    sourceRecoveryProtectionContainerName string
    Name of the protection container to use. Changing this forces a new resource to be created.
    sourceVmId string
    Id of the VM to replicate Changing this forces a new resource to be created.
    targetAvailabilitySetId string
    Id of availability set that the new VM should belong to when a failover is done.
    targetBootDiagnosticStorageAccountId string
    Id of the storage account which the new VM should used for boot diagnostic when a failover is done.
    targetCapacityReservationGroupId string
    Id of the Capacity reservation group where the new VM should belong to when a failover is done.
    targetEdgeZone string
    Specifies the Edge Zone within the Azure Region where this Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.
    targetNetworkId string
    Network to use when a failover is done (recommended to set if any network_interface is configured for failover).
    targetProximityPlacementGroupId string
    Id of Proximity Placement Group the new VM should belong to when a failover is done.
    targetRecoveryFabricId string
    Id of fabric where the VM replication should be handled when a failover is done. Changing this forces a new resource to be created.
    targetRecoveryProtectionContainerId string
    Id of protection container where the VM replication should be created when a failover is done. Changing this forces a new resource to be created.
    targetResourceGroupId string
    Id of resource group where the VM should be created when a failover is done. Changing this forces a new resource to be created.
    targetVirtualMachineScaleSetId string
    Id of the Virtual Machine Scale Set which the new Vm should belong to when a failover is done.
    targetVirtualMachineSize string
    Specifies the size the Virtual Machine should have.
    targetZone string
    Specifies the Availability Zone where the Failover VM should exist. Changing this forces a new resource to be created.
    testNetworkId string
    Network to use when a test failover is done.
    unmanagedDisks ReplicatedVMUnmanagedDisk[]
    One or more unmanaged_disk block as defined below. Changing this forces a new resource to be created.
    managed_disks Sequence[ReplicatedVMManagedDiskArgs]
    One or more managed_disk block as defined below. Changing this forces a new resource to be created.
    multi_vm_group_name str
    Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
    name str
    The name of the replication for the replicated VM. Changing this forces a new resource to be created.
    network_interfaces Sequence[ReplicatedVMNetworkInterfaceArgs]
    One or more network_interface block as defined below.
    recovery_replication_policy_id str
    Id of the policy to use for this replicated vm. Changing this forces a new resource to be created.
    recovery_vault_name str
    The name of the vault that should be updated. Changing this forces a new resource to be created.
    resource_group_name str
    Name of the resource group where the vault that should be updated is located. Changing this forces a new resource to be created.
    source_recovery_fabric_name str
    Name of fabric that should contain this replication. Changing this forces a new resource to be created.
    source_recovery_protection_container_name str
    Name of the protection container to use. Changing this forces a new resource to be created.
    source_vm_id str
    Id of the VM to replicate Changing this forces a new resource to be created.
    target_availability_set_id str
    Id of availability set that the new VM should belong to when a failover is done.
    target_boot_diagnostic_storage_account_id str
    Id of the storage account which the new VM should used for boot diagnostic when a failover is done.
    target_capacity_reservation_group_id str
    Id of the Capacity reservation group where the new VM should belong to when a failover is done.
    target_edge_zone str
    Specifies the Edge Zone within the Azure Region where this Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.
    target_network_id str
    Network to use when a failover is done (recommended to set if any network_interface is configured for failover).
    target_proximity_placement_group_id str
    Id of Proximity Placement Group the new VM should belong to when a failover is done.
    target_recovery_fabric_id str
    Id of fabric where the VM replication should be handled when a failover is done. Changing this forces a new resource to be created.
    target_recovery_protection_container_id str
    Id of protection container where the VM replication should be created when a failover is done. Changing this forces a new resource to be created.
    target_resource_group_id str
    Id of resource group where the VM should be created when a failover is done. Changing this forces a new resource to be created.
    target_virtual_machine_scale_set_id str
    Id of the Virtual Machine Scale Set which the new Vm should belong to when a failover is done.
    target_virtual_machine_size str
    Specifies the size the Virtual Machine should have.
    target_zone str
    Specifies the Availability Zone where the Failover VM should exist. Changing this forces a new resource to be created.
    test_network_id str
    Network to use when a test failover is done.
    unmanaged_disks Sequence[ReplicatedVMUnmanagedDiskArgs]
    One or more unmanaged_disk block as defined below. Changing this forces a new resource to be created.
    managedDisks List<Property Map>
    One or more managed_disk block as defined below. Changing this forces a new resource to be created.
    multiVmGroupName String
    Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
    name String
    The name of the replication for the replicated VM. Changing this forces a new resource to be created.
    networkInterfaces List<Property Map>
    One or more network_interface block as defined below.
    recoveryReplicationPolicyId String
    Id of the policy to use for this replicated vm. Changing this forces a new resource to be created.
    recoveryVaultName String
    The name of the vault that should be updated. Changing this forces a new resource to be created.
    resourceGroupName String
    Name of the resource group where the vault that should be updated is located. Changing this forces a new resource to be created.
    sourceRecoveryFabricName String
    Name of fabric that should contain this replication. Changing this forces a new resource to be created.
    sourceRecoveryProtectionContainerName String
    Name of the protection container to use. Changing this forces a new resource to be created.
    sourceVmId String
    Id of the VM to replicate Changing this forces a new resource to be created.
    targetAvailabilitySetId String
    Id of availability set that the new VM should belong to when a failover is done.
    targetBootDiagnosticStorageAccountId String
    Id of the storage account which the new VM should used for boot diagnostic when a failover is done.
    targetCapacityReservationGroupId String
    Id of the Capacity reservation group where the new VM should belong to when a failover is done.
    targetEdgeZone String
    Specifies the Edge Zone within the Azure Region where this Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.
    targetNetworkId String
    Network to use when a failover is done (recommended to set if any network_interface is configured for failover).
    targetProximityPlacementGroupId String
    Id of Proximity Placement Group the new VM should belong to when a failover is done.
    targetRecoveryFabricId String
    Id of fabric where the VM replication should be handled when a failover is done. Changing this forces a new resource to be created.
    targetRecoveryProtectionContainerId String
    Id of protection container where the VM replication should be created when a failover is done. Changing this forces a new resource to be created.
    targetResourceGroupId String
    Id of resource group where the VM should be created when a failover is done. Changing this forces a new resource to be created.
    targetVirtualMachineScaleSetId String
    Id of the Virtual Machine Scale Set which the new Vm should belong to when a failover is done.
    targetVirtualMachineSize String
    Specifies the size the Virtual Machine should have.
    targetZone String
    Specifies the Availability Zone where the Failover VM should exist. Changing this forces a new resource to be created.
    testNetworkId String
    Network to use when a test failover is done.
    unmanagedDisks List<Property Map>
    One or more unmanaged_disk block as defined below. Changing this forces a new resource to be created.

    Supporting Types

    ReplicatedVMManagedDisk, ReplicatedVMManagedDiskArgs

    DiskId string
    Id of disk that should be replicated. Changing this forces a new resource to be created.
    StagingStorageAccountId string
    Storage account that should be used for caching. Changing this forces a new resource to be created.
    TargetDiskType string
    What type should the disk be when a failover is done. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS and UltraSSD_LRS. Changing this forces a new resource to be created.
    TargetReplicaDiskType string
    What type should the disk be that holds the replication data. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS and UltraSSD_LRS. Changing this forces a new resource to be created.
    TargetResourceGroupId string
    Resource group disk should belong to when a failover is done. Changing this forces a new resource to be created.
    TargetDiskEncryption ReplicatedVMManagedDiskTargetDiskEncryption
    A target_disk_encryption block as defined below.
    TargetDiskEncryptionSetId string

    The Disk Encryption Set that the Managed Disk will be associated with. Changing this forces a new resource to be created.

    NOTE: Creating replicated vm with target_disk_encryption_set_id wil take more time (up to 5 hours), please extend the timeout for create.

    DiskId string
    Id of disk that should be replicated. Changing this forces a new resource to be created.
    StagingStorageAccountId string
    Storage account that should be used for caching. Changing this forces a new resource to be created.
    TargetDiskType string
    What type should the disk be when a failover is done. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS and UltraSSD_LRS. Changing this forces a new resource to be created.
    TargetReplicaDiskType string
    What type should the disk be that holds the replication data. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS and UltraSSD_LRS. Changing this forces a new resource to be created.
    TargetResourceGroupId string
    Resource group disk should belong to when a failover is done. Changing this forces a new resource to be created.
    TargetDiskEncryption ReplicatedVMManagedDiskTargetDiskEncryption
    A target_disk_encryption block as defined below.
    TargetDiskEncryptionSetId string

    The Disk Encryption Set that the Managed Disk will be associated with. Changing this forces a new resource to be created.

    NOTE: Creating replicated vm with target_disk_encryption_set_id wil take more time (up to 5 hours), please extend the timeout for create.

    diskId String
    Id of disk that should be replicated. Changing this forces a new resource to be created.
    stagingStorageAccountId String
    Storage account that should be used for caching. Changing this forces a new resource to be created.
    targetDiskType String
    What type should the disk be when a failover is done. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS and UltraSSD_LRS. Changing this forces a new resource to be created.
    targetReplicaDiskType String
    What type should the disk be that holds the replication data. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS and UltraSSD_LRS. Changing this forces a new resource to be created.
    targetResourceGroupId String
    Resource group disk should belong to when a failover is done. Changing this forces a new resource to be created.
    targetDiskEncryption ReplicatedVMManagedDiskTargetDiskEncryption
    A target_disk_encryption block as defined below.
    targetDiskEncryptionSetId String

    The Disk Encryption Set that the Managed Disk will be associated with. Changing this forces a new resource to be created.

    NOTE: Creating replicated vm with target_disk_encryption_set_id wil take more time (up to 5 hours), please extend the timeout for create.

    diskId string
    Id of disk that should be replicated. Changing this forces a new resource to be created.
    stagingStorageAccountId string
    Storage account that should be used for caching. Changing this forces a new resource to be created.
    targetDiskType string
    What type should the disk be when a failover is done. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS and UltraSSD_LRS. Changing this forces a new resource to be created.
    targetReplicaDiskType string
    What type should the disk be that holds the replication data. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS and UltraSSD_LRS. Changing this forces a new resource to be created.
    targetResourceGroupId string
    Resource group disk should belong to when a failover is done. Changing this forces a new resource to be created.
    targetDiskEncryption ReplicatedVMManagedDiskTargetDiskEncryption
    A target_disk_encryption block as defined below.
    targetDiskEncryptionSetId string

    The Disk Encryption Set that the Managed Disk will be associated with. Changing this forces a new resource to be created.

    NOTE: Creating replicated vm with target_disk_encryption_set_id wil take more time (up to 5 hours), please extend the timeout for create.

    disk_id str
    Id of disk that should be replicated. Changing this forces a new resource to be created.
    staging_storage_account_id str
    Storage account that should be used for caching. Changing this forces a new resource to be created.
    target_disk_type str
    What type should the disk be when a failover is done. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS and UltraSSD_LRS. Changing this forces a new resource to be created.
    target_replica_disk_type str
    What type should the disk be that holds the replication data. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS and UltraSSD_LRS. Changing this forces a new resource to be created.
    target_resource_group_id str
    Resource group disk should belong to when a failover is done. Changing this forces a new resource to be created.
    target_disk_encryption ReplicatedVMManagedDiskTargetDiskEncryption
    A target_disk_encryption block as defined below.
    target_disk_encryption_set_id str

    The Disk Encryption Set that the Managed Disk will be associated with. Changing this forces a new resource to be created.

    NOTE: Creating replicated vm with target_disk_encryption_set_id wil take more time (up to 5 hours), please extend the timeout for create.

    diskId String
    Id of disk that should be replicated. Changing this forces a new resource to be created.
    stagingStorageAccountId String
    Storage account that should be used for caching. Changing this forces a new resource to be created.
    targetDiskType String
    What type should the disk be when a failover is done. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS and UltraSSD_LRS. Changing this forces a new resource to be created.
    targetReplicaDiskType String
    What type should the disk be that holds the replication data. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS and UltraSSD_LRS. Changing this forces a new resource to be created.
    targetResourceGroupId String
    Resource group disk should belong to when a failover is done. Changing this forces a new resource to be created.
    targetDiskEncryption Property Map
    A target_disk_encryption block as defined below.
    targetDiskEncryptionSetId String

    The Disk Encryption Set that the Managed Disk will be associated with. Changing this forces a new resource to be created.

    NOTE: Creating replicated vm with target_disk_encryption_set_id wil take more time (up to 5 hours), please extend the timeout for create.

    ReplicatedVMManagedDiskTargetDiskEncryption, ReplicatedVMManagedDiskTargetDiskEncryptionArgs

    diskEncryptionKey Property Map
    A disk_encryption_key block as defined below.
    keyEncryptionKey Property Map
    A key_encryption_key block as defined below.

    ReplicatedVMManagedDiskTargetDiskEncryptionDiskEncryptionKey, ReplicatedVMManagedDiskTargetDiskEncryptionDiskEncryptionKeyArgs

    SecretUrl string
    The URL to the Key Vault Secret used as the Disk Encryption Key that the Managed Disk will be associated with. This can be found as id on the azure.keyvault.Secret resource. Changing this forces a new resource to be created.
    VaultId string
    The ID of the Key Vault. This can be found as id on the azure.keyvault.KeyVault resource. Changing this forces a new resource to be created.
    SecretUrl string
    The URL to the Key Vault Secret used as the Disk Encryption Key that the Managed Disk will be associated with. This can be found as id on the azure.keyvault.Secret resource. Changing this forces a new resource to be created.
    VaultId string
    The ID of the Key Vault. This can be found as id on the azure.keyvault.KeyVault resource. Changing this forces a new resource to be created.
    secretUrl String
    The URL to the Key Vault Secret used as the Disk Encryption Key that the Managed Disk will be associated with. This can be found as id on the azure.keyvault.Secret resource. Changing this forces a new resource to be created.
    vaultId String
    The ID of the Key Vault. This can be found as id on the azure.keyvault.KeyVault resource. Changing this forces a new resource to be created.
    secretUrl string
    The URL to the Key Vault Secret used as the Disk Encryption Key that the Managed Disk will be associated with. This can be found as id on the azure.keyvault.Secret resource. Changing this forces a new resource to be created.
    vaultId string
    The ID of the Key Vault. This can be found as id on the azure.keyvault.KeyVault resource. Changing this forces a new resource to be created.
    secret_url str
    The URL to the Key Vault Secret used as the Disk Encryption Key that the Managed Disk will be associated with. This can be found as id on the azure.keyvault.Secret resource. Changing this forces a new resource to be created.
    vault_id str
    The ID of the Key Vault. This can be found as id on the azure.keyvault.KeyVault resource. Changing this forces a new resource to be created.
    secretUrl String
    The URL to the Key Vault Secret used as the Disk Encryption Key that the Managed Disk will be associated with. This can be found as id on the azure.keyvault.Secret resource. Changing this forces a new resource to be created.
    vaultId String
    The ID of the Key Vault. This can be found as id on the azure.keyvault.KeyVault resource. Changing this forces a new resource to be created.

    ReplicatedVMManagedDiskTargetDiskEncryptionKeyEncryptionKey, ReplicatedVMManagedDiskTargetDiskEncryptionKeyEncryptionKeyArgs

    KeyUrl string
    The URL to the Key Vault Key used as the Key Encryption Key that the Managed Disk will be associated with. This can be found as id on the azure.keyvault.Key resource. Changing this forces a new resource to be created.
    VaultId string
    The ID of the Key Vault. This can be found as id on the azure.keyvault.KeyVault resource. Changing this forces a new resource to be created.
    KeyUrl string
    The URL to the Key Vault Key used as the Key Encryption Key that the Managed Disk will be associated with. This can be found as id on the azure.keyvault.Key resource. Changing this forces a new resource to be created.
    VaultId string
    The ID of the Key Vault. This can be found as id on the azure.keyvault.KeyVault resource. Changing this forces a new resource to be created.
    keyUrl String
    The URL to the Key Vault Key used as the Key Encryption Key that the Managed Disk will be associated with. This can be found as id on the azure.keyvault.Key resource. Changing this forces a new resource to be created.
    vaultId String
    The ID of the Key Vault. This can be found as id on the azure.keyvault.KeyVault resource. Changing this forces a new resource to be created.
    keyUrl string
    The URL to the Key Vault Key used as the Key Encryption Key that the Managed Disk will be associated with. This can be found as id on the azure.keyvault.Key resource. Changing this forces a new resource to be created.
    vaultId string
    The ID of the Key Vault. This can be found as id on the azure.keyvault.KeyVault resource. Changing this forces a new resource to be created.
    key_url str
    The URL to the Key Vault Key used as the Key Encryption Key that the Managed Disk will be associated with. This can be found as id on the azure.keyvault.Key resource. Changing this forces a new resource to be created.
    vault_id str
    The ID of the Key Vault. This can be found as id on the azure.keyvault.KeyVault resource. Changing this forces a new resource to be created.
    keyUrl String
    The URL to the Key Vault Key used as the Key Encryption Key that the Managed Disk will be associated with. This can be found as id on the azure.keyvault.Key resource. Changing this forces a new resource to be created.
    vaultId String
    The ID of the Key Vault. This can be found as id on the azure.keyvault.KeyVault resource. Changing this forces a new resource to be created.

    ReplicatedVMNetworkInterface, ReplicatedVMNetworkInterfaceArgs

    FailoverTestPublicIpAddressId string
    Id of the public IP object to use when a test failover is done.
    FailoverTestStaticIp string
    Static IP to assign when a test failover is done.
    FailoverTestSubnetName string
    Name of the subnet to to use when a test failover is done.
    RecoveryPublicIpAddressId string
    Id of the public IP object to use when a failover is done.
    SourceNetworkInterfaceId string
    (Required if the network_interface block is specified) Id source network interface.
    TargetStaticIp string
    Static IP to assign when a failover is done.
    TargetSubnetName string
    Name of the subnet to to use when a failover is done.
    FailoverTestPublicIpAddressId string
    Id of the public IP object to use when a test failover is done.
    FailoverTestStaticIp string
    Static IP to assign when a test failover is done.
    FailoverTestSubnetName string
    Name of the subnet to to use when a test failover is done.
    RecoveryPublicIpAddressId string
    Id of the public IP object to use when a failover is done.
    SourceNetworkInterfaceId string
    (Required if the network_interface block is specified) Id source network interface.
    TargetStaticIp string
    Static IP to assign when a failover is done.
    TargetSubnetName string
    Name of the subnet to to use when a failover is done.
    failoverTestPublicIpAddressId String
    Id of the public IP object to use when a test failover is done.
    failoverTestStaticIp String
    Static IP to assign when a test failover is done.
    failoverTestSubnetName String
    Name of the subnet to to use when a test failover is done.
    recoveryPublicIpAddressId String
    Id of the public IP object to use when a failover is done.
    sourceNetworkInterfaceId String
    (Required if the network_interface block is specified) Id source network interface.
    targetStaticIp String
    Static IP to assign when a failover is done.
    targetSubnetName String
    Name of the subnet to to use when a failover is done.
    failoverTestPublicIpAddressId string
    Id of the public IP object to use when a test failover is done.
    failoverTestStaticIp string
    Static IP to assign when a test failover is done.
    failoverTestSubnetName string
    Name of the subnet to to use when a test failover is done.
    recoveryPublicIpAddressId string
    Id of the public IP object to use when a failover is done.
    sourceNetworkInterfaceId string
    (Required if the network_interface block is specified) Id source network interface.
    targetStaticIp string
    Static IP to assign when a failover is done.
    targetSubnetName string
    Name of the subnet to to use when a failover is done.
    failover_test_public_ip_address_id str
    Id of the public IP object to use when a test failover is done.
    failover_test_static_ip str
    Static IP to assign when a test failover is done.
    failover_test_subnet_name str
    Name of the subnet to to use when a test failover is done.
    recovery_public_ip_address_id str
    Id of the public IP object to use when a failover is done.
    source_network_interface_id str
    (Required if the network_interface block is specified) Id source network interface.
    target_static_ip str
    Static IP to assign when a failover is done.
    target_subnet_name str
    Name of the subnet to to use when a failover is done.
    failoverTestPublicIpAddressId String
    Id of the public IP object to use when a test failover is done.
    failoverTestStaticIp String
    Static IP to assign when a test failover is done.
    failoverTestSubnetName String
    Name of the subnet to to use when a test failover is done.
    recoveryPublicIpAddressId String
    Id of the public IP object to use when a failover is done.
    sourceNetworkInterfaceId String
    (Required if the network_interface block is specified) Id source network interface.
    targetStaticIp String
    Static IP to assign when a failover is done.
    targetSubnetName String
    Name of the subnet to to use when a failover is done.

    ReplicatedVMUnmanagedDisk, ReplicatedVMUnmanagedDiskArgs

    DiskUri string
    Id of disk that should be replicated. Changing this forces a new resource to be created.
    StagingStorageAccountId string
    Storage account that should be used for caching. Changing this forces a new resource to be created.
    TargetStorageAccountId string
    Storage account disk should belong to when a failover is done. Changing this forces a new resource to be created.
    DiskUri string
    Id of disk that should be replicated. Changing this forces a new resource to be created.
    StagingStorageAccountId string
    Storage account that should be used for caching. Changing this forces a new resource to be created.
    TargetStorageAccountId string
    Storage account disk should belong to when a failover is done. Changing this forces a new resource to be created.
    diskUri String
    Id of disk that should be replicated. Changing this forces a new resource to be created.
    stagingStorageAccountId String
    Storage account that should be used for caching. Changing this forces a new resource to be created.
    targetStorageAccountId String
    Storage account disk should belong to when a failover is done. Changing this forces a new resource to be created.
    diskUri string
    Id of disk that should be replicated. Changing this forces a new resource to be created.
    stagingStorageAccountId string
    Storage account that should be used for caching. Changing this forces a new resource to be created.
    targetStorageAccountId string
    Storage account disk should belong to when a failover is done. Changing this forces a new resource to be created.
    disk_uri str
    Id of disk that should be replicated. Changing this forces a new resource to be created.
    staging_storage_account_id str
    Storage account that should be used for caching. Changing this forces a new resource to be created.
    target_storage_account_id str
    Storage account disk should belong to when a failover is done. Changing this forces a new resource to be created.
    diskUri String
    Id of disk that should be replicated. Changing this forces a new resource to be created.
    stagingStorageAccountId String
    Storage account that should be used for caching. Changing this forces a new resource to be created.
    targetStorageAccountId String
    Storage account disk should belong to when a failover is done. Changing this forces a new resource to be created.

    Import

    Site Recovery Replicated VM’s can be imported using the resource id, e.g.

    $ pulumi import azure:siterecovery/replicatedVM:ReplicatedVM vmreplication /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.RecoveryServices/vaults/recovery-vault-name/replicationFabrics/fabric-name/replicationProtectionContainers/protection-container-name/replicationProtectedItems/vm-replication-name
    

    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 v6.13.0 published on Monday, Dec 9, 2024 by Pulumi