All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.azure.siterecovery.VmwareReplicatedVmArgs Maven / Gradle / Ivy
Go to download
A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.azure.siterecovery;
import com.pulumi.azure.siterecovery.inputs.VmwareReplicatedVmManagedDiskArgs;
import com.pulumi.azure.siterecovery.inputs.VmwareReplicatedVmNetworkInterfaceArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class VmwareReplicatedVmArgs extends com.pulumi.resources.ResourceArgs {
public static final VmwareReplicatedVmArgs Empty = new VmwareReplicatedVmArgs();
/**
* The name of VMWare appliance which handles the replication. Changing this forces a new resource to be created.
*
*/
@Import(name="applianceName", required=true)
private Output applianceName;
/**
* @return The name of VMWare appliance which handles the replication. Changing this forces a new resource to be created.
*
*/
public Output applianceName() {
return this.applianceName;
}
/**
* 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.
*
*/
@Import(name="defaultLogStorageAccountId")
private @Nullable Output defaultLogStorageAccountId;
/**
* @return 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.
*
*/
public Optional> defaultLogStorageAccountId() {
return Optional.ofNullable(this.defaultLogStorageAccountId);
}
/**
* The type of storage account that should be used for recovery disks when a failover is done. Possible values are `Premium_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.
*
*/
@Import(name="defaultRecoveryDiskType")
private @Nullable Output defaultRecoveryDiskType;
/**
* @return The type of storage account that should be used for recovery disks when a failover is done. Possible values are `Premium_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.
*
*/
public Optional> defaultRecoveryDiskType() {
return Optional.ofNullable(this.defaultRecoveryDiskType);
}
/**
* 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.
*
*/
@Import(name="defaultTargetDiskEncryptionSetId")
private @Nullable Output defaultTargetDiskEncryptionSetId;
/**
* @return 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.
*
*/
public Optional> defaultTargetDiskEncryptionSetId() {
return Optional.ofNullable(this.defaultTargetDiskEncryptionSetId);
}
/**
* The license type of the VM. Possible values are `NoLicenseType`, `NotSpecified` and `WindowsServer`. Defaults to `NotSpecified`.
*
*/
@Import(name="licenseType")
private @Nullable Output licenseType;
/**
* @return The license type of the VM. Possible values are `NoLicenseType`, `NotSpecified` and `WindowsServer`. Defaults to `NotSpecified`.
*
*/
public Optional> licenseType() {
return Optional.ofNullable(this.licenseType);
}
/**
* 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.
*
*/
@Import(name="managedDisks")
private @Nullable Output> managedDisks;
/**
* @return 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.
*
*/
public Optional>> managedDisks() {
return Optional.ofNullable(this.managedDisks);
}
/**
* Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
*
*/
@Import(name="multiVmGroupName")
private @Nullable Output multiVmGroupName;
/**
* @return Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
*
*/
public Optional> multiVmGroupName() {
return Optional.ofNullable(this.multiVmGroupName);
}
/**
* The name of the replicated VM. Changing this forces a new resource to be created.
*
*/
@Import(name="name")
private @Nullable Output name;
/**
* @return The name of the replicated VM. Changing this forces a new resource to be created.
*
*/
public Optional> name() {
return Optional.ofNullable(this.name);
}
/**
* One or more `network_interface` block as defined below.
*
*/
@Import(name="networkInterfaces")
private @Nullable Output> networkInterfaces;
/**
* @return One or more `network_interface` block as defined below.
*
*/
public Optional>> networkInterfaces() {
return Optional.ofNullable(this.networkInterfaces);
}
/**
* 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](https://learn.microsoft.com/en-us/azure/site-recovery/deploy-vmware-azure-replication-appliance-modernized).
*
*/
@Import(name="physicalServerCredentialName", required=true)
private Output physicalServerCredentialName;
/**
* @return 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](https://learn.microsoft.com/en-us/azure/site-recovery/deploy-vmware-azure-replication-appliance-modernized).
*
*/
public Output physicalServerCredentialName() {
return this.physicalServerCredentialName;
}
/**
* The ID of the policy to use for this replicated VM.
*
*/
@Import(name="recoveryReplicationPolicyId", required=true)
private Output recoveryReplicationPolicyId;
/**
* @return The ID of the policy to use for this replicated VM.
*
*/
public Output recoveryReplicationPolicyId() {
return this.recoveryReplicationPolicyId;
}
/**
* The ID of the Recovery Services Vault where the replicated VM is created.
*
*/
@Import(name="recoveryVaultId", required=true)
private Output recoveryVaultId;
/**
* @return The ID of the Recovery Services Vault where the replicated VM is created.
*
*/
public Output recoveryVaultId() {
return this.recoveryVaultId;
}
/**
* The name of the source VM in VMWare. Changing this forces a new resource to be created.
*
*/
@Import(name="sourceVmName", required=true)
private Output sourceVmName;
/**
* @return The name of the source VM in VMWare. Changing this forces a new resource to be created.
*
*/
public Output sourceVmName() {
return this.sourceVmName;
}
/**
* The ID of availability set that the new VM should belong to when a failover is done.
*
*/
@Import(name="targetAvailabilitySetId")
private @Nullable Output targetAvailabilitySetId;
/**
* @return The ID of availability set that the new VM should belong to when a failover is done.
*
*/
public Optional> targetAvailabilitySetId() {
return Optional.ofNullable(this.targetAvailabilitySetId);
}
/**
* The ID of the storage account that should be used for boot diagnostics when a failover is done.
*
*/
@Import(name="targetBootDiagnosticsStorageAccountId")
private @Nullable Output targetBootDiagnosticsStorageAccountId;
/**
* @return The ID of the storage account that should be used for boot diagnostics when a failover is done.
*
*/
public Optional> targetBootDiagnosticsStorageAccountId() {
return Optional.ofNullable(this.targetBootDiagnosticsStorageAccountId);
}
/**
* The ID of network to use when a failover is done.
*
* > **Note:** `target_network_id` is required when `network_interface` is specified.
*
*/
@Import(name="targetNetworkId")
private @Nullable Output targetNetworkId;
/**
* @return The ID of network to use when a failover is done.
*
* > **Note:** `target_network_id` is required when `network_interface` is specified.
*
*/
public Optional> targetNetworkId() {
return Optional.ofNullable(this.targetNetworkId);
}
/**
* 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.
*
*/
@Import(name="targetProximityPlacementGroupId")
private @Nullable Output targetProximityPlacementGroupId;
/**
* @return 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.
*
*/
public Optional> targetProximityPlacementGroupId() {
return Optional.ofNullable(this.targetProximityPlacementGroupId);
}
/**
* The ID of resource group where the VM should be created when a failover is done.
*
*/
@Import(name="targetResourceGroupId", required=true)
private Output targetResourceGroupId;
/**
* @return The ID of resource group where the VM should be created when a failover is done.
*
*/
public Output targetResourceGroupId() {
return this.targetResourceGroupId;
}
/**
* Name of the VM that should be created when a failover is done. Changing this forces a new resource to be created.
*
*/
@Import(name="targetVmName", required=true)
private Output targetVmName;
/**
* @return Name of the VM that should be created when a failover is done. Changing this forces a new resource to be created.
*
*/
public Output targetVmName() {
return this.targetVmName;
}
/**
* 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.
*
*/
@Import(name="targetVmSize")
private @Nullable Output targetVmSize;
/**
* @return 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.
*
*/
public Optional> targetVmSize() {
return Optional.ofNullable(this.targetVmSize);
}
/**
* Specifies the Availability Zone where the Failover VM should exist.
*
*/
@Import(name="targetZone")
private @Nullable Output targetZone;
/**
* @return Specifies the Availability Zone where the Failover VM should exist.
*
*/
public Optional> targetZone() {
return Optional.ofNullable(this.targetZone);
}
/**
* The ID of network to use when a test failover is done.
*
*/
@Import(name="testNetworkId")
private @Nullable Output testNetworkId;
/**
* @return The ID of network to use when a test failover is done.
*
*/
public Optional> testNetworkId() {
return Optional.ofNullable(this.testNetworkId);
}
private VmwareReplicatedVmArgs() {}
private VmwareReplicatedVmArgs(VmwareReplicatedVmArgs $) {
this.applianceName = $.applianceName;
this.defaultLogStorageAccountId = $.defaultLogStorageAccountId;
this.defaultRecoveryDiskType = $.defaultRecoveryDiskType;
this.defaultTargetDiskEncryptionSetId = $.defaultTargetDiskEncryptionSetId;
this.licenseType = $.licenseType;
this.managedDisks = $.managedDisks;
this.multiVmGroupName = $.multiVmGroupName;
this.name = $.name;
this.networkInterfaces = $.networkInterfaces;
this.physicalServerCredentialName = $.physicalServerCredentialName;
this.recoveryReplicationPolicyId = $.recoveryReplicationPolicyId;
this.recoveryVaultId = $.recoveryVaultId;
this.sourceVmName = $.sourceVmName;
this.targetAvailabilitySetId = $.targetAvailabilitySetId;
this.targetBootDiagnosticsStorageAccountId = $.targetBootDiagnosticsStorageAccountId;
this.targetNetworkId = $.targetNetworkId;
this.targetProximityPlacementGroupId = $.targetProximityPlacementGroupId;
this.targetResourceGroupId = $.targetResourceGroupId;
this.targetVmName = $.targetVmName;
this.targetVmSize = $.targetVmSize;
this.targetZone = $.targetZone;
this.testNetworkId = $.testNetworkId;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(VmwareReplicatedVmArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private VmwareReplicatedVmArgs $;
public Builder() {
$ = new VmwareReplicatedVmArgs();
}
public Builder(VmwareReplicatedVmArgs defaults) {
$ = new VmwareReplicatedVmArgs(Objects.requireNonNull(defaults));
}
/**
* @param applianceName The name of VMWare appliance which handles the replication. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder applianceName(Output applianceName) {
$.applianceName = applianceName;
return this;
}
/**
* @param applianceName The name of VMWare appliance which handles the replication. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder applianceName(String applianceName) {
return applianceName(Output.of(applianceName));
}
/**
* @param defaultLogStorageAccountId 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.
*
* @return builder
*
*/
public Builder defaultLogStorageAccountId(@Nullable Output defaultLogStorageAccountId) {
$.defaultLogStorageAccountId = defaultLogStorageAccountId;
return this;
}
/**
* @param defaultLogStorageAccountId 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.
*
* @return builder
*
*/
public Builder defaultLogStorageAccountId(String defaultLogStorageAccountId) {
return defaultLogStorageAccountId(Output.of(defaultLogStorageAccountId));
}
/**
* @param defaultRecoveryDiskType The type of storage account that should be used for recovery disks when a failover is done. Possible values are `Premium_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.
*
* @return builder
*
*/
public Builder defaultRecoveryDiskType(@Nullable Output defaultRecoveryDiskType) {
$.defaultRecoveryDiskType = defaultRecoveryDiskType;
return this;
}
/**
* @param defaultRecoveryDiskType The type of storage account that should be used for recovery disks when a failover is done. Possible values are `Premium_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.
*
* @return builder
*
*/
public Builder defaultRecoveryDiskType(String defaultRecoveryDiskType) {
return defaultRecoveryDiskType(Output.of(defaultRecoveryDiskType));
}
/**
* @param defaultTargetDiskEncryptionSetId 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.
*
* @return builder
*
*/
public Builder defaultTargetDiskEncryptionSetId(@Nullable Output defaultTargetDiskEncryptionSetId) {
$.defaultTargetDiskEncryptionSetId = defaultTargetDiskEncryptionSetId;
return this;
}
/**
* @param defaultTargetDiskEncryptionSetId 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.
*
* @return builder
*
*/
public Builder defaultTargetDiskEncryptionSetId(String defaultTargetDiskEncryptionSetId) {
return defaultTargetDiskEncryptionSetId(Output.of(defaultTargetDiskEncryptionSetId));
}
/**
* @param licenseType The license type of the VM. Possible values are `NoLicenseType`, `NotSpecified` and `WindowsServer`. Defaults to `NotSpecified`.
*
* @return builder
*
*/
public Builder licenseType(@Nullable Output licenseType) {
$.licenseType = licenseType;
return this;
}
/**
* @param licenseType The license type of the VM. Possible values are `NoLicenseType`, `NotSpecified` and `WindowsServer`. Defaults to `NotSpecified`.
*
* @return builder
*
*/
public Builder licenseType(String licenseType) {
return licenseType(Output.of(licenseType));
}
/**
* @param managedDisks 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.
*
* @return builder
*
*/
public Builder managedDisks(@Nullable Output> managedDisks) {
$.managedDisks = managedDisks;
return this;
}
/**
* @param managedDisks 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.
*
* @return builder
*
*/
public Builder managedDisks(List managedDisks) {
return managedDisks(Output.of(managedDisks));
}
/**
* @param managedDisks 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.
*
* @return builder
*
*/
public Builder managedDisks(VmwareReplicatedVmManagedDiskArgs... managedDisks) {
return managedDisks(List.of(managedDisks));
}
/**
* @param multiVmGroupName Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
*
* @return builder
*
*/
public Builder multiVmGroupName(@Nullable Output multiVmGroupName) {
$.multiVmGroupName = multiVmGroupName;
return this;
}
/**
* @param multiVmGroupName Name of group in which all machines will replicate together and have shared crash consistent and app-consistent recovery points when failed over.
*
* @return builder
*
*/
public Builder multiVmGroupName(String multiVmGroupName) {
return multiVmGroupName(Output.of(multiVmGroupName));
}
/**
* @param name The name of the replicated VM. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder name(@Nullable Output name) {
$.name = name;
return this;
}
/**
* @param name The name of the replicated VM. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder name(String name) {
return name(Output.of(name));
}
/**
* @param networkInterfaces One or more `network_interface` block as defined below.
*
* @return builder
*
*/
public Builder networkInterfaces(@Nullable Output> networkInterfaces) {
$.networkInterfaces = networkInterfaces;
return this;
}
/**
* @param networkInterfaces One or more `network_interface` block as defined below.
*
* @return builder
*
*/
public Builder networkInterfaces(List networkInterfaces) {
return networkInterfaces(Output.of(networkInterfaces));
}
/**
* @param networkInterfaces One or more `network_interface` block as defined below.
*
* @return builder
*
*/
public Builder networkInterfaces(VmwareReplicatedVmNetworkInterfaceArgs... networkInterfaces) {
return networkInterfaces(List.of(networkInterfaces));
}
/**
* @param physicalServerCredentialName 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](https://learn.microsoft.com/en-us/azure/site-recovery/deploy-vmware-azure-replication-appliance-modernized).
*
* @return builder
*
*/
public Builder physicalServerCredentialName(Output physicalServerCredentialName) {
$.physicalServerCredentialName = physicalServerCredentialName;
return this;
}
/**
* @param physicalServerCredentialName 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](https://learn.microsoft.com/en-us/azure/site-recovery/deploy-vmware-azure-replication-appliance-modernized).
*
* @return builder
*
*/
public Builder physicalServerCredentialName(String physicalServerCredentialName) {
return physicalServerCredentialName(Output.of(physicalServerCredentialName));
}
/**
* @param recoveryReplicationPolicyId The ID of the policy to use for this replicated VM.
*
* @return builder
*
*/
public Builder recoveryReplicationPolicyId(Output recoveryReplicationPolicyId) {
$.recoveryReplicationPolicyId = recoveryReplicationPolicyId;
return this;
}
/**
* @param recoveryReplicationPolicyId The ID of the policy to use for this replicated VM.
*
* @return builder
*
*/
public Builder recoveryReplicationPolicyId(String recoveryReplicationPolicyId) {
return recoveryReplicationPolicyId(Output.of(recoveryReplicationPolicyId));
}
/**
* @param recoveryVaultId The ID of the Recovery Services Vault where the replicated VM is created.
*
* @return builder
*
*/
public Builder recoveryVaultId(Output recoveryVaultId) {
$.recoveryVaultId = recoveryVaultId;
return this;
}
/**
* @param recoveryVaultId The ID of the Recovery Services Vault where the replicated VM is created.
*
* @return builder
*
*/
public Builder recoveryVaultId(String recoveryVaultId) {
return recoveryVaultId(Output.of(recoveryVaultId));
}
/**
* @param sourceVmName The name of the source VM in VMWare. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder sourceVmName(Output sourceVmName) {
$.sourceVmName = sourceVmName;
return this;
}
/**
* @param sourceVmName The name of the source VM in VMWare. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder sourceVmName(String sourceVmName) {
return sourceVmName(Output.of(sourceVmName));
}
/**
* @param targetAvailabilitySetId The ID of availability set that the new VM should belong to when a failover is done.
*
* @return builder
*
*/
public Builder targetAvailabilitySetId(@Nullable Output targetAvailabilitySetId) {
$.targetAvailabilitySetId = targetAvailabilitySetId;
return this;
}
/**
* @param targetAvailabilitySetId The ID of availability set that the new VM should belong to when a failover is done.
*
* @return builder
*
*/
public Builder targetAvailabilitySetId(String targetAvailabilitySetId) {
return targetAvailabilitySetId(Output.of(targetAvailabilitySetId));
}
/**
* @param targetBootDiagnosticsStorageAccountId The ID of the storage account that should be used for boot diagnostics when a failover is done.
*
* @return builder
*
*/
public Builder targetBootDiagnosticsStorageAccountId(@Nullable Output targetBootDiagnosticsStorageAccountId) {
$.targetBootDiagnosticsStorageAccountId = targetBootDiagnosticsStorageAccountId;
return this;
}
/**
* @param targetBootDiagnosticsStorageAccountId The ID of the storage account that should be used for boot diagnostics when a failover is done.
*
* @return builder
*
*/
public Builder targetBootDiagnosticsStorageAccountId(String targetBootDiagnosticsStorageAccountId) {
return targetBootDiagnosticsStorageAccountId(Output.of(targetBootDiagnosticsStorageAccountId));
}
/**
* @param targetNetworkId The ID of network to use when a failover is done.
*
* > **Note:** `target_network_id` is required when `network_interface` is specified.
*
* @return builder
*
*/
public Builder targetNetworkId(@Nullable Output targetNetworkId) {
$.targetNetworkId = targetNetworkId;
return this;
}
/**
* @param targetNetworkId The ID of network to use when a failover is done.
*
* > **Note:** `target_network_id` is required when `network_interface` is specified.
*
* @return builder
*
*/
public Builder targetNetworkId(String targetNetworkId) {
return targetNetworkId(Output.of(targetNetworkId));
}
/**
* @param targetProximityPlacementGroupId 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.
*
* @return builder
*
*/
public Builder targetProximityPlacementGroupId(@Nullable Output targetProximityPlacementGroupId) {
$.targetProximityPlacementGroupId = targetProximityPlacementGroupId;
return this;
}
/**
* @param targetProximityPlacementGroupId 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.
*
* @return builder
*
*/
public Builder targetProximityPlacementGroupId(String targetProximityPlacementGroupId) {
return targetProximityPlacementGroupId(Output.of(targetProximityPlacementGroupId));
}
/**
* @param targetResourceGroupId The ID of resource group where the VM should be created when a failover is done.
*
* @return builder
*
*/
public Builder targetResourceGroupId(Output targetResourceGroupId) {
$.targetResourceGroupId = targetResourceGroupId;
return this;
}
/**
* @param targetResourceGroupId The ID of resource group where the VM should be created when a failover is done.
*
* @return builder
*
*/
public Builder targetResourceGroupId(String targetResourceGroupId) {
return targetResourceGroupId(Output.of(targetResourceGroupId));
}
/**
* @param targetVmName Name of the VM that should be created when a failover is done. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder targetVmName(Output targetVmName) {
$.targetVmName = targetVmName;
return this;
}
/**
* @param targetVmName Name of the VM that should be created when a failover is done. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder targetVmName(String targetVmName) {
return targetVmName(Output.of(targetVmName));
}
/**
* @param targetVmSize 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.
*
* @return builder
*
*/
public Builder targetVmSize(@Nullable Output targetVmSize) {
$.targetVmSize = targetVmSize;
return this;
}
/**
* @param targetVmSize 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.
*
* @return builder
*
*/
public Builder targetVmSize(String targetVmSize) {
return targetVmSize(Output.of(targetVmSize));
}
/**
* @param targetZone Specifies the Availability Zone where the Failover VM should exist.
*
* @return builder
*
*/
public Builder targetZone(@Nullable Output targetZone) {
$.targetZone = targetZone;
return this;
}
/**
* @param targetZone Specifies the Availability Zone where the Failover VM should exist.
*
* @return builder
*
*/
public Builder targetZone(String targetZone) {
return targetZone(Output.of(targetZone));
}
/**
* @param testNetworkId The ID of network to use when a test failover is done.
*
* @return builder
*
*/
public Builder testNetworkId(@Nullable Output testNetworkId) {
$.testNetworkId = testNetworkId;
return this;
}
/**
* @param testNetworkId The ID of network to use when a test failover is done.
*
* @return builder
*
*/
public Builder testNetworkId(String testNetworkId) {
return testNetworkId(Output.of(testNetworkId));
}
public VmwareReplicatedVmArgs build() {
if ($.applianceName == null) {
throw new MissingRequiredPropertyException("VmwareReplicatedVmArgs", "applianceName");
}
if ($.physicalServerCredentialName == null) {
throw new MissingRequiredPropertyException("VmwareReplicatedVmArgs", "physicalServerCredentialName");
}
if ($.recoveryReplicationPolicyId == null) {
throw new MissingRequiredPropertyException("VmwareReplicatedVmArgs", "recoveryReplicationPolicyId");
}
if ($.recoveryVaultId == null) {
throw new MissingRequiredPropertyException("VmwareReplicatedVmArgs", "recoveryVaultId");
}
if ($.sourceVmName == null) {
throw new MissingRequiredPropertyException("VmwareReplicatedVmArgs", "sourceVmName");
}
if ($.targetResourceGroupId == null) {
throw new MissingRequiredPropertyException("VmwareReplicatedVmArgs", "targetResourceGroupId");
}
if ($.targetVmName == null) {
throw new MissingRequiredPropertyException("VmwareReplicatedVmArgs", "targetVmName");
}
return $;
}
}
}