VmwareReplicatedVmArgs

data class VmwareReplicatedVmArgs(val applianceName: Output<String>? = null, val defaultLogStorageAccountId: Output<String>? = null, val defaultRecoveryDiskType: Output<String>? = null, val defaultTargetDiskEncryptionSetId: Output<String>? = null, val licenseType: Output<String>? = null, val managedDisks: Output<List<VmwareReplicatedVmManagedDiskArgs>>? = null, val multiVmGroupName: Output<String>? = null, val name: Output<String>? = null, val networkInterfaces: Output<List<VmwareReplicatedVmNetworkInterfaceArgs>>? = null, val physicalServerCredentialName: Output<String>? = null, val recoveryReplicationPolicyId: Output<String>? = null, val recoveryVaultId: Output<String>? = null, val sourceVmName: Output<String>? = null, val targetAvailabilitySetId: Output<String>? = null, val targetBootDiagnosticsStorageAccountId: Output<String>? = null, val targetNetworkId: Output<String>? = null, val targetProximityPlacementGroupId: Output<String>? = null, val targetResourceGroupId: Output<String>? = null, val targetVmName: Output<String>? = null, val targetVmSize: Output<String>? = null, val targetZone: Output<String>? = null, val testNetworkId: Output<String>? = null) : ConvertibleToJava<VmwareReplicatedVmArgs>

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

Example Usage

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.recoveryservices.Vault;
import com.pulumi.azure.recoveryservices.VaultArgs;
import com.pulumi.azure.siterecovery.VMWareReplicationPolicy;
import com.pulumi.azure.siterecovery.VMWareReplicationPolicyArgs;
import com.pulumi.azure.siterecovery.VmwareReplicationPolicyAssociation;
import com.pulumi.azure.siterecovery.VmwareReplicationPolicyAssociationArgs;
import com.pulumi.azure.storage.Account;
import com.pulumi.azure.storage.AccountArgs;
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.siterecovery.VmwareReplicatedVm;
import com.pulumi.azure.siterecovery.VmwareReplicatedVmArgs;
import com.pulumi.azure.siterecovery.inputs.VmwareReplicatedVmNetworkInterfaceArgs;
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 example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("example-rg")
.location("West US")
.build());
var exampleVault = new Vault("exampleVault", VaultArgs.builder()
.name("example-recovery-vault")
.location(example.location())
.resourceGroupName(example.name())
.sku("Standard")
.build());
var exampleVMWareReplicationPolicy = new VMWareReplicationPolicy("exampleVMWareReplicationPolicy", VMWareReplicationPolicyArgs.builder()
.recoveryVaultId(exampleVault.id())
.name("example-policy")
.recoveryPointRetentionInMinutes(1440)
.applicationConsistentSnapshotFrequencyInMinutes(240)
.build());
var test = new VmwareReplicationPolicyAssociation("test", VmwareReplicationPolicyAssociationArgs.builder()
.name("example-association")
.recoveryVaultId(exampleVault.id())
.policyId(exampleVMWareReplicationPolicy.id())
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.name("examplestorageacc")
.resourceGroupName(example.name())
.location(example.location())
.accountTier("Standard")
.accountKind("StorageV2")
.accountReplicationType("LRS")
.build());
var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()
.name("example-net")
.resourceGroupName(example.name())
.addressSpaces("192.168.2.0/24")
.location(example.location())
.build());
var exampleSubnet = new Subnet("exampleSubnet", SubnetArgs.builder()
.name("example-subnet")
.resourceGroupName(example.name())
.virtualNetworkName(exampleVirtualNetwork.name())
.addressPrefixes("192.168.2.0/24")
.build());
var exampleVmwareReplicatedVm = new VmwareReplicatedVm("exampleVmwareReplicatedVm", VmwareReplicatedVmArgs.builder()
.name("example-vmware-vm")
.recoveryVaultId(exampleVault.id())
.sourceVmName("example-vm")
.applianceName("example-appliance")
.recoveryReplicationPolicyId(exampleAzurermSiteRecoveryVmwareReplicationPolicyAssociation.policyId())
.physicalServerCredentialName("example-creds")
.licenseType("NotSpecified")
.targetBootDiagnosticsStorageAccountId(exampleAccount.id())
.targetVmName("example_replicated_vm")
.targetResourceGroupId(example.id())
.defaultLogStorageAccountId(exampleAccount.id())
.defaultRecoveryDiskType("Standard_LRS")
.targetNetworkId(exampleVirtualNetwork.id())
.networkInterfaces(VmwareReplicatedVmNetworkInterfaceArgs.builder()
.sourceMacAddress("00:00:00:00:00:00")
.targetSubnetName(exampleSubnet.name())
.isPrimary(true)
.build())
.build());
}
}

Import

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

$ pulumi import azure:siterecovery/vmwareReplicatedVm:VmwareReplicatedVm 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

Constructors

Link copied to clipboard
fun VmwareReplicatedVmArgs(applianceName: Output<String>? = null, defaultLogStorageAccountId: Output<String>? = null, defaultRecoveryDiskType: Output<String>? = null, defaultTargetDiskEncryptionSetId: Output<String>? = null, licenseType: Output<String>? = null, managedDisks: Output<List<VmwareReplicatedVmManagedDiskArgs>>? = null, multiVmGroupName: Output<String>? = null, name: Output<String>? = null, networkInterfaces: Output<List<VmwareReplicatedVmNetworkInterfaceArgs>>? = null, physicalServerCredentialName: Output<String>? = null, recoveryReplicationPolicyId: Output<String>? = null, recoveryVaultId: Output<String>? = null, sourceVmName: Output<String>? = null, targetAvailabilitySetId: Output<String>? = null, targetBootDiagnosticsStorageAccountId: Output<String>? = null, targetNetworkId: Output<String>? = null, targetProximityPlacementGroupId: Output<String>? = null, targetResourceGroupId: Output<String>? = null, targetVmName: Output<String>? = null, targetVmSize: Output<String>? = null, targetZone: Output<String>? = null, testNetworkId: Output<String>? = null)

Functions

Link copied to clipboard
open override fun toJava(): VmwareReplicatedVmArgs

Properties

Link copied to clipboard
val applianceName: Output<String>? = null

The name of VMWare appliance which handles the replication. Changing this forces a new resource to be created.

Link copied to clipboard
val defaultLogStorageAccountId: Output<String>? = null

The ID of the stroage account that should be used for logging during replication. Note: Only standard types of storage accounts are allowed. Note: Only one of default_log_storage_account_id or managed_disk must be specified. Note: Changing default_log_storage_account_id forces a new resource to be created. But removing it does not. Note: When default_log_storage_account_id co-exist with managed_disk, the value of default_log_storage_account_id must be as same as log_storage_account_id of every managed_disk or it forces a new resource to be created.

Link copied to clipboard
val defaultRecoveryDiskType: Output<String>? = null

The type of storage account that should be used for recovery disks when a failover is done. Possible values are Standard_LRS, Standard_LRS and StandardSSD_LRS. Note: Only one of default_recovery_disk_type or managed_disk must be specified. Note: Changing default_recovery_disk_type forces a new resource to be created. But removing it does not. Note: When default_recovery_disk_type co-exist with managed_disk, the value of default_recovery_disk_type must be as same as target_disk_type of every managed_disk or it forces a new resource to be created.

Link copied to clipboard

The ID of the default Disk Encryption Set that should be used for the disks when a failover is done. Note: Changing default_target_disk_encryption_set_id forces a new resource to be created. But removing it does not. Note: When default_target_disk_encryption_set_id co-exist with managed_disk, the value of default_target_disk_encryption_set_id must be as same as target_disk_encryption_set_id of every managed_disk or it forces a new resource to be created.

Link copied to clipboard
val licenseType: Output<String>? = null

The license type of the VM. Possible values are NoLicenseType, NotSpecified and WindowsServer. Defaults to NotSpecified.

Link copied to clipboard

One or more managed_disk block as defined below. It's available only if mobility service is already installed on the source VM. Note: A replicated VM could be created without managed_disk block, once the block has been specified, changing it expect removing it forces a new resource to be created.

Link copied to clipboard
val multiVmGroupName: Output<String>? = null

Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over. Changing this forces a new resource to be created.

Link copied to clipboard
val name: Output<String>? = null

The name of the replicated VM. Changing this forces a new resource to be created.

Link copied to clipboard

One or more network_interface block as defined below.

Link copied to clipboard

The name of the credential to access the source VM. Changing this forces a new resource to be created. More information about the credentials could be found here.

Link copied to clipboard
val recoveryReplicationPolicyId: Output<String>? = null

The ID of the policy to use for this replicated VM. Changing this forces a new resource to be created.

Link copied to clipboard
val recoveryVaultId: Output<String>? = null

The ID of the Recovery Services Vault where the replicated VM is created. Changing this forces a new resource to be created.

Link copied to clipboard
val sourceVmName: Output<String>? = null

The name of the source VM in VMWare. Changing this forces a new resource to be created.

Link copied to clipboard
val targetAvailabilitySetId: Output<String>? = null

The ID of availability set that the new VM should belong to when a failover is done. Changing this forces a new resource to be created.

Link copied to clipboard

The ID of the storage account that should be used for boot diagnostics when a failover is done.

Link copied to clipboard
val targetNetworkId: Output<String>? = null

The ID of network to use when a failover is done. Note: target_network_id is required when network_interface is specified.

Link copied to clipboard

The ID of Proximity Placement Group the new VM should belong to when a failover is done. Note: Only one of target_availability_set_id or target_zone can be specified.

Link copied to clipboard
val targetResourceGroupId: Output<String>? = null

The ID of resource group where the VM should be created when a failover is done. Changing this forces a new resource to be created.

Link copied to clipboard
val targetVmName: Output<String>? = null

Name of the VM that should be created when a failover is done. Changing this forces a new resource to be created.

Link copied to clipboard
val targetVmSize: Output<String>? = null

Size of the VM that should be created when a failover is done, such as Standard_F2. If it's not specified, it will automatically be set by detecting the source VM size.

Link copied to clipboard
val targetZone: Output<String>? = null

Specifies the Availability Zone where the Failover VM should exist.

Link copied to clipboard
val testNetworkId: Output<String>? = null

The ID of network to use when a test failover is done.