All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azurenative.recoveryservices.inputs.HyperVReplicaAzureEnableProtectionInputArgs Maven / Gradle / Ivy

There is a newer version: 2.72.0
Show newest version
// *** 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.azurenative.recoveryservices.inputs;

import com.pulumi.azurenative.recoveryservices.enums.DiskAccountType;
import com.pulumi.azurenative.recoveryservices.enums.LicenseType;
import com.pulumi.azurenative.recoveryservices.enums.SqlServerLicenseType;
import com.pulumi.azurenative.recoveryservices.inputs.HyperVReplicaAzureDiskInputDetailsArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * HyperVReplicaAzure specific enable protection input.
 * 
 */
public final class HyperVReplicaAzureEnableProtectionInputArgs extends com.pulumi.resources.ResourceArgs {

    public static final HyperVReplicaAzureEnableProtectionInputArgs Empty = new HyperVReplicaAzureEnableProtectionInputArgs();

    /**
     * The DiskEncryptionSet ARM Id.
     * 
     */
    @Import(name="diskEncryptionSetId")
    private @Nullable Output diskEncryptionSetId;

    /**
     * @return The DiskEncryptionSet ARM Id.
     * 
     */
    public Optional> diskEncryptionSetId() {
        return Optional.ofNullable(this.diskEncryptionSetId);
    }

    /**
     * The DiskType.
     * 
     */
    @Import(name="diskType")
    private @Nullable Output> diskType;

    /**
     * @return The DiskType.
     * 
     */
    public Optional>> diskType() {
        return Optional.ofNullable(this.diskType);
    }

    /**
     * The list of VHD Ids of disks to be protected.
     * 
     */
    @Import(name="disksToInclude")
    private @Nullable Output> disksToInclude;

    /**
     * @return The list of VHD Ids of disks to be protected.
     * 
     */
    public Optional>> disksToInclude() {
        return Optional.ofNullable(this.disksToInclude);
    }

    /**
     * The disks to include list for managed disks.
     * 
     */
    @Import(name="disksToIncludeForManagedDisks")
    private @Nullable Output> disksToIncludeForManagedDisks;

    /**
     * @return The disks to include list for managed disks.
     * 
     */
    public Optional>> disksToIncludeForManagedDisks() {
        return Optional.ofNullable(this.disksToIncludeForManagedDisks);
    }

    /**
     * The selected option to enable RDP\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum.
     * 
     */
    @Import(name="enableRdpOnTargetOption")
    private @Nullable Output enableRdpOnTargetOption;

    /**
     * @return The selected option to enable RDP\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum.
     * 
     */
    public Optional> enableRdpOnTargetOption() {
        return Optional.ofNullable(this.enableRdpOnTargetOption);
    }

    /**
     * The Hyper-V host VM Id.
     * 
     */
    @Import(name="hvHostVmId")
    private @Nullable Output hvHostVmId;

    /**
     * @return The Hyper-V host VM Id.
     * 
     */
    public Optional> hvHostVmId() {
        return Optional.ofNullable(this.hvHostVmId);
    }

    /**
     * The class type.
     * Expected value is 'HyperVReplicaAzure'.
     * 
     */
    @Import(name="instanceType", required=true)
    private Output instanceType;

    /**
     * @return The class type.
     * Expected value is 'HyperVReplicaAzure'.
     * 
     */
    public Output instanceType() {
        return this.instanceType;
    }

    /**
     * License type.
     * 
     */
    @Import(name="licenseType")
    private @Nullable Output> licenseType;

    /**
     * @return License type.
     * 
     */
    public Optional>> licenseType() {
        return Optional.ofNullable(this.licenseType);
    }

    /**
     * The storage account to be used for logging during replication.
     * 
     */
    @Import(name="logStorageAccountId")
    private @Nullable Output logStorageAccountId;

    /**
     * @return The storage account to be used for logging during replication.
     * 
     */
    public Optional> logStorageAccountId() {
        return Optional.ofNullable(this.logStorageAccountId);
    }

    /**
     * The OS type associated with VM.
     * 
     */
    @Import(name="osType")
    private @Nullable Output osType;

    /**
     * @return The OS type associated with VM.
     * 
     */
    public Optional> osType() {
        return Optional.ofNullable(this.osType);
    }

    /**
     * The tags for the seed managed disks.
     * 
     */
    @Import(name="seedManagedDiskTags")
    private @Nullable Output> seedManagedDiskTags;

    /**
     * @return The tags for the seed managed disks.
     * 
     */
    public Optional>> seedManagedDiskTags() {
        return Optional.ofNullable(this.seedManagedDiskTags);
    }

    /**
     * The SQL Server license type.
     * 
     */
    @Import(name="sqlServerLicenseType")
    private @Nullable Output> sqlServerLicenseType;

    /**
     * @return The SQL Server license type.
     * 
     */
    public Optional>> sqlServerLicenseType() {
        return Optional.ofNullable(this.sqlServerLicenseType);
    }

    /**
     * The target availability set ARM Id for resource manager deployment.
     * 
     */
    @Import(name="targetAvailabilitySetId")
    private @Nullable Output targetAvailabilitySetId;

    /**
     * @return The target availability set ARM Id for resource manager deployment.
     * 
     */
    public Optional> targetAvailabilitySetId() {
        return Optional.ofNullable(this.targetAvailabilitySetId);
    }

    /**
     * The target availability zone.
     * 
     */
    @Import(name="targetAvailabilityZone")
    private @Nullable Output targetAvailabilityZone;

    /**
     * @return The target availability zone.
     * 
     */
    public Optional> targetAvailabilityZone() {
        return Optional.ofNullable(this.targetAvailabilityZone);
    }

    /**
     * The selected target Azure network Id.
     * 
     */
    @Import(name="targetAzureNetworkId")
    private @Nullable Output targetAzureNetworkId;

    /**
     * @return The selected target Azure network Id.
     * 
     */
    public Optional> targetAzureNetworkId() {
        return Optional.ofNullable(this.targetAzureNetworkId);
    }

    /**
     * The selected target Azure subnet Id.
     * 
     */
    @Import(name="targetAzureSubnetId")
    private @Nullable Output targetAzureSubnetId;

    /**
     * @return The selected target Azure subnet Id.
     * 
     */
    public Optional> targetAzureSubnetId() {
        return Optional.ofNullable(this.targetAzureSubnetId);
    }

    /**
     * The Id of the target resource group (for classic deployment) in which the failover VM is to be created.
     * 
     */
    @Import(name="targetAzureV1ResourceGroupId")
    private @Nullable Output targetAzureV1ResourceGroupId;

    /**
     * @return The Id of the target resource group (for classic deployment) in which the failover VM is to be created.
     * 
     */
    public Optional> targetAzureV1ResourceGroupId() {
        return Optional.ofNullable(this.targetAzureV1ResourceGroupId);
    }

    /**
     * The Id of the target resource group (for resource manager deployment) in which the failover VM is to be created.
     * 
     */
    @Import(name="targetAzureV2ResourceGroupId")
    private @Nullable Output targetAzureV2ResourceGroupId;

    /**
     * @return The Id of the target resource group (for resource manager deployment) in which the failover VM is to be created.
     * 
     */
    public Optional> targetAzureV2ResourceGroupId() {
        return Optional.ofNullable(this.targetAzureV2ResourceGroupId);
    }

    /**
     * The target azure VM Name.
     * 
     */
    @Import(name="targetAzureVmName")
    private @Nullable Output targetAzureVmName;

    /**
     * @return The target azure VM Name.
     * 
     */
    public Optional> targetAzureVmName() {
        return Optional.ofNullable(this.targetAzureVmName);
    }

    /**
     * The tags for the target managed disks.
     * 
     */
    @Import(name="targetManagedDiskTags")
    private @Nullable Output> targetManagedDiskTags;

    /**
     * @return The tags for the target managed disks.
     * 
     */
    public Optional>> targetManagedDiskTags() {
        return Optional.ofNullable(this.targetManagedDiskTags);
    }

    /**
     * The tags for the target NICs.
     * 
     */
    @Import(name="targetNicTags")
    private @Nullable Output> targetNicTags;

    /**
     * @return The tags for the target NICs.
     * 
     */
    public Optional>> targetNicTags() {
        return Optional.ofNullable(this.targetNicTags);
    }

    /**
     * The proximity placement group ARM Id.
     * 
     */
    @Import(name="targetProximityPlacementGroupId")
    private @Nullable Output targetProximityPlacementGroupId;

    /**
     * @return The proximity placement group ARM Id.
     * 
     */
    public Optional> targetProximityPlacementGroupId() {
        return Optional.ofNullable(this.targetProximityPlacementGroupId);
    }

    /**
     * The storage account Id.
     * 
     */
    @Import(name="targetStorageAccountId")
    private @Nullable Output targetStorageAccountId;

    /**
     * @return The storage account Id.
     * 
     */
    public Optional> targetStorageAccountId() {
        return Optional.ofNullable(this.targetStorageAccountId);
    }

    /**
     * The target VM size.
     * 
     */
    @Import(name="targetVmSize")
    private @Nullable Output targetVmSize;

    /**
     * @return The target VM size.
     * 
     */
    public Optional> targetVmSize() {
        return Optional.ofNullable(this.targetVmSize);
    }

    /**
     * The target VM tags.
     * 
     */
    @Import(name="targetVmTags")
    private @Nullable Output> targetVmTags;

    /**
     * @return The target VM tags.
     * 
     */
    public Optional>> targetVmTags() {
        return Optional.ofNullable(this.targetVmTags);
    }

    /**
     * A value indicating whether managed disks should be used during failover.
     * 
     */
    @Import(name="useManagedDisks")
    private @Nullable Output useManagedDisks;

    /**
     * @return A value indicating whether managed disks should be used during failover.
     * 
     */
    public Optional> useManagedDisks() {
        return Optional.ofNullable(this.useManagedDisks);
    }

    /**
     * A value indicating whether managed disks should be used during replication.
     * 
     */
    @Import(name="useManagedDisksForReplication")
    private @Nullable Output useManagedDisksForReplication;

    /**
     * @return A value indicating whether managed disks should be used during replication.
     * 
     */
    public Optional> useManagedDisksForReplication() {
        return Optional.ofNullable(this.useManagedDisksForReplication);
    }

    /**
     * The OS disk VHD id associated with VM.
     * 
     */
    @Import(name="vhdId")
    private @Nullable Output vhdId;

    /**
     * @return The OS disk VHD id associated with VM.
     * 
     */
    public Optional> vhdId() {
        return Optional.ofNullable(this.vhdId);
    }

    /**
     * The VM Name.
     * 
     */
    @Import(name="vmName")
    private @Nullable Output vmName;

    /**
     * @return The VM Name.
     * 
     */
    public Optional> vmName() {
        return Optional.ofNullable(this.vmName);
    }

    private HyperVReplicaAzureEnableProtectionInputArgs() {}

    private HyperVReplicaAzureEnableProtectionInputArgs(HyperVReplicaAzureEnableProtectionInputArgs $) {
        this.diskEncryptionSetId = $.diskEncryptionSetId;
        this.diskType = $.diskType;
        this.disksToInclude = $.disksToInclude;
        this.disksToIncludeForManagedDisks = $.disksToIncludeForManagedDisks;
        this.enableRdpOnTargetOption = $.enableRdpOnTargetOption;
        this.hvHostVmId = $.hvHostVmId;
        this.instanceType = $.instanceType;
        this.licenseType = $.licenseType;
        this.logStorageAccountId = $.logStorageAccountId;
        this.osType = $.osType;
        this.seedManagedDiskTags = $.seedManagedDiskTags;
        this.sqlServerLicenseType = $.sqlServerLicenseType;
        this.targetAvailabilitySetId = $.targetAvailabilitySetId;
        this.targetAvailabilityZone = $.targetAvailabilityZone;
        this.targetAzureNetworkId = $.targetAzureNetworkId;
        this.targetAzureSubnetId = $.targetAzureSubnetId;
        this.targetAzureV1ResourceGroupId = $.targetAzureV1ResourceGroupId;
        this.targetAzureV2ResourceGroupId = $.targetAzureV2ResourceGroupId;
        this.targetAzureVmName = $.targetAzureVmName;
        this.targetManagedDiskTags = $.targetManagedDiskTags;
        this.targetNicTags = $.targetNicTags;
        this.targetProximityPlacementGroupId = $.targetProximityPlacementGroupId;
        this.targetStorageAccountId = $.targetStorageAccountId;
        this.targetVmSize = $.targetVmSize;
        this.targetVmTags = $.targetVmTags;
        this.useManagedDisks = $.useManagedDisks;
        this.useManagedDisksForReplication = $.useManagedDisksForReplication;
        this.vhdId = $.vhdId;
        this.vmName = $.vmName;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(HyperVReplicaAzureEnableProtectionInputArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private HyperVReplicaAzureEnableProtectionInputArgs $;

        public Builder() {
            $ = new HyperVReplicaAzureEnableProtectionInputArgs();
        }

        public Builder(HyperVReplicaAzureEnableProtectionInputArgs defaults) {
            $ = new HyperVReplicaAzureEnableProtectionInputArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param diskEncryptionSetId The DiskEncryptionSet ARM Id.
         * 
         * @return builder
         * 
         */
        public Builder diskEncryptionSetId(@Nullable Output diskEncryptionSetId) {
            $.diskEncryptionSetId = diskEncryptionSetId;
            return this;
        }

        /**
         * @param diskEncryptionSetId The DiskEncryptionSet ARM Id.
         * 
         * @return builder
         * 
         */
        public Builder diskEncryptionSetId(String diskEncryptionSetId) {
            return diskEncryptionSetId(Output.of(diskEncryptionSetId));
        }

        /**
         * @param diskType The DiskType.
         * 
         * @return builder
         * 
         */
        public Builder diskType(@Nullable Output> diskType) {
            $.diskType = diskType;
            return this;
        }

        /**
         * @param diskType The DiskType.
         * 
         * @return builder
         * 
         */
        public Builder diskType(Either diskType) {
            return diskType(Output.of(diskType));
        }

        /**
         * @param diskType The DiskType.
         * 
         * @return builder
         * 
         */
        public Builder diskType(String diskType) {
            return diskType(Either.ofLeft(diskType));
        }

        /**
         * @param diskType The DiskType.
         * 
         * @return builder
         * 
         */
        public Builder diskType(DiskAccountType diskType) {
            return diskType(Either.ofRight(diskType));
        }

        /**
         * @param disksToInclude The list of VHD Ids of disks to be protected.
         * 
         * @return builder
         * 
         */
        public Builder disksToInclude(@Nullable Output> disksToInclude) {
            $.disksToInclude = disksToInclude;
            return this;
        }

        /**
         * @param disksToInclude The list of VHD Ids of disks to be protected.
         * 
         * @return builder
         * 
         */
        public Builder disksToInclude(List disksToInclude) {
            return disksToInclude(Output.of(disksToInclude));
        }

        /**
         * @param disksToInclude The list of VHD Ids of disks to be protected.
         * 
         * @return builder
         * 
         */
        public Builder disksToInclude(String... disksToInclude) {
            return disksToInclude(List.of(disksToInclude));
        }

        /**
         * @param disksToIncludeForManagedDisks The disks to include list for managed disks.
         * 
         * @return builder
         * 
         */
        public Builder disksToIncludeForManagedDisks(@Nullable Output> disksToIncludeForManagedDisks) {
            $.disksToIncludeForManagedDisks = disksToIncludeForManagedDisks;
            return this;
        }

        /**
         * @param disksToIncludeForManagedDisks The disks to include list for managed disks.
         * 
         * @return builder
         * 
         */
        public Builder disksToIncludeForManagedDisks(List disksToIncludeForManagedDisks) {
            return disksToIncludeForManagedDisks(Output.of(disksToIncludeForManagedDisks));
        }

        /**
         * @param disksToIncludeForManagedDisks The disks to include list for managed disks.
         * 
         * @return builder
         * 
         */
        public Builder disksToIncludeForManagedDisks(HyperVReplicaAzureDiskInputDetailsArgs... disksToIncludeForManagedDisks) {
            return disksToIncludeForManagedDisks(List.of(disksToIncludeForManagedDisks));
        }

        /**
         * @param enableRdpOnTargetOption The selected option to enable RDP\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum.
         * 
         * @return builder
         * 
         */
        public Builder enableRdpOnTargetOption(@Nullable Output enableRdpOnTargetOption) {
            $.enableRdpOnTargetOption = enableRdpOnTargetOption;
            return this;
        }

        /**
         * @param enableRdpOnTargetOption The selected option to enable RDP\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum.
         * 
         * @return builder
         * 
         */
        public Builder enableRdpOnTargetOption(String enableRdpOnTargetOption) {
            return enableRdpOnTargetOption(Output.of(enableRdpOnTargetOption));
        }

        /**
         * @param hvHostVmId The Hyper-V host VM Id.
         * 
         * @return builder
         * 
         */
        public Builder hvHostVmId(@Nullable Output hvHostVmId) {
            $.hvHostVmId = hvHostVmId;
            return this;
        }

        /**
         * @param hvHostVmId The Hyper-V host VM Id.
         * 
         * @return builder
         * 
         */
        public Builder hvHostVmId(String hvHostVmId) {
            return hvHostVmId(Output.of(hvHostVmId));
        }

        /**
         * @param instanceType The class type.
         * Expected value is 'HyperVReplicaAzure'.
         * 
         * @return builder
         * 
         */
        public Builder instanceType(Output instanceType) {
            $.instanceType = instanceType;
            return this;
        }

        /**
         * @param instanceType The class type.
         * Expected value is 'HyperVReplicaAzure'.
         * 
         * @return builder
         * 
         */
        public Builder instanceType(String instanceType) {
            return instanceType(Output.of(instanceType));
        }

        /**
         * @param licenseType License type.
         * 
         * @return builder
         * 
         */
        public Builder licenseType(@Nullable Output> licenseType) {
            $.licenseType = licenseType;
            return this;
        }

        /**
         * @param licenseType License type.
         * 
         * @return builder
         * 
         */
        public Builder licenseType(Either licenseType) {
            return licenseType(Output.of(licenseType));
        }

        /**
         * @param licenseType License type.
         * 
         * @return builder
         * 
         */
        public Builder licenseType(String licenseType) {
            return licenseType(Either.ofLeft(licenseType));
        }

        /**
         * @param licenseType License type.
         * 
         * @return builder
         * 
         */
        public Builder licenseType(LicenseType licenseType) {
            return licenseType(Either.ofRight(licenseType));
        }

        /**
         * @param logStorageAccountId The storage account to be used for logging during replication.
         * 
         * @return builder
         * 
         */
        public Builder logStorageAccountId(@Nullable Output logStorageAccountId) {
            $.logStorageAccountId = logStorageAccountId;
            return this;
        }

        /**
         * @param logStorageAccountId The storage account to be used for logging during replication.
         * 
         * @return builder
         * 
         */
        public Builder logStorageAccountId(String logStorageAccountId) {
            return logStorageAccountId(Output.of(logStorageAccountId));
        }

        /**
         * @param osType The OS type associated with VM.
         * 
         * @return builder
         * 
         */
        public Builder osType(@Nullable Output osType) {
            $.osType = osType;
            return this;
        }

        /**
         * @param osType The OS type associated with VM.
         * 
         * @return builder
         * 
         */
        public Builder osType(String osType) {
            return osType(Output.of(osType));
        }

        /**
         * @param seedManagedDiskTags The tags for the seed managed disks.
         * 
         * @return builder
         * 
         */
        public Builder seedManagedDiskTags(@Nullable Output> seedManagedDiskTags) {
            $.seedManagedDiskTags = seedManagedDiskTags;
            return this;
        }

        /**
         * @param seedManagedDiskTags The tags for the seed managed disks.
         * 
         * @return builder
         * 
         */
        public Builder seedManagedDiskTags(Map seedManagedDiskTags) {
            return seedManagedDiskTags(Output.of(seedManagedDiskTags));
        }

        /**
         * @param sqlServerLicenseType The SQL Server license type.
         * 
         * @return builder
         * 
         */
        public Builder sqlServerLicenseType(@Nullable Output> sqlServerLicenseType) {
            $.sqlServerLicenseType = sqlServerLicenseType;
            return this;
        }

        /**
         * @param sqlServerLicenseType The SQL Server license type.
         * 
         * @return builder
         * 
         */
        public Builder sqlServerLicenseType(Either sqlServerLicenseType) {
            return sqlServerLicenseType(Output.of(sqlServerLicenseType));
        }

        /**
         * @param sqlServerLicenseType The SQL Server license type.
         * 
         * @return builder
         * 
         */
        public Builder sqlServerLicenseType(String sqlServerLicenseType) {
            return sqlServerLicenseType(Either.ofLeft(sqlServerLicenseType));
        }

        /**
         * @param sqlServerLicenseType The SQL Server license type.
         * 
         * @return builder
         * 
         */
        public Builder sqlServerLicenseType(SqlServerLicenseType sqlServerLicenseType) {
            return sqlServerLicenseType(Either.ofRight(sqlServerLicenseType));
        }

        /**
         * @param targetAvailabilitySetId The target availability set ARM Id for resource manager deployment.
         * 
         * @return builder
         * 
         */
        public Builder targetAvailabilitySetId(@Nullable Output targetAvailabilitySetId) {
            $.targetAvailabilitySetId = targetAvailabilitySetId;
            return this;
        }

        /**
         * @param targetAvailabilitySetId The target availability set ARM Id for resource manager deployment.
         * 
         * @return builder
         * 
         */
        public Builder targetAvailabilitySetId(String targetAvailabilitySetId) {
            return targetAvailabilitySetId(Output.of(targetAvailabilitySetId));
        }

        /**
         * @param targetAvailabilityZone The target availability zone.
         * 
         * @return builder
         * 
         */
        public Builder targetAvailabilityZone(@Nullable Output targetAvailabilityZone) {
            $.targetAvailabilityZone = targetAvailabilityZone;
            return this;
        }

        /**
         * @param targetAvailabilityZone The target availability zone.
         * 
         * @return builder
         * 
         */
        public Builder targetAvailabilityZone(String targetAvailabilityZone) {
            return targetAvailabilityZone(Output.of(targetAvailabilityZone));
        }

        /**
         * @param targetAzureNetworkId The selected target Azure network Id.
         * 
         * @return builder
         * 
         */
        public Builder targetAzureNetworkId(@Nullable Output targetAzureNetworkId) {
            $.targetAzureNetworkId = targetAzureNetworkId;
            return this;
        }

        /**
         * @param targetAzureNetworkId The selected target Azure network Id.
         * 
         * @return builder
         * 
         */
        public Builder targetAzureNetworkId(String targetAzureNetworkId) {
            return targetAzureNetworkId(Output.of(targetAzureNetworkId));
        }

        /**
         * @param targetAzureSubnetId The selected target Azure subnet Id.
         * 
         * @return builder
         * 
         */
        public Builder targetAzureSubnetId(@Nullable Output targetAzureSubnetId) {
            $.targetAzureSubnetId = targetAzureSubnetId;
            return this;
        }

        /**
         * @param targetAzureSubnetId The selected target Azure subnet Id.
         * 
         * @return builder
         * 
         */
        public Builder targetAzureSubnetId(String targetAzureSubnetId) {
            return targetAzureSubnetId(Output.of(targetAzureSubnetId));
        }

        /**
         * @param targetAzureV1ResourceGroupId The Id of the target resource group (for classic deployment) in which the failover VM is to be created.
         * 
         * @return builder
         * 
         */
        public Builder targetAzureV1ResourceGroupId(@Nullable Output targetAzureV1ResourceGroupId) {
            $.targetAzureV1ResourceGroupId = targetAzureV1ResourceGroupId;
            return this;
        }

        /**
         * @param targetAzureV1ResourceGroupId The Id of the target resource group (for classic deployment) in which the failover VM is to be created.
         * 
         * @return builder
         * 
         */
        public Builder targetAzureV1ResourceGroupId(String targetAzureV1ResourceGroupId) {
            return targetAzureV1ResourceGroupId(Output.of(targetAzureV1ResourceGroupId));
        }

        /**
         * @param targetAzureV2ResourceGroupId The Id of the target resource group (for resource manager deployment) in which the failover VM is to be created.
         * 
         * @return builder
         * 
         */
        public Builder targetAzureV2ResourceGroupId(@Nullable Output targetAzureV2ResourceGroupId) {
            $.targetAzureV2ResourceGroupId = targetAzureV2ResourceGroupId;
            return this;
        }

        /**
         * @param targetAzureV2ResourceGroupId The Id of the target resource group (for resource manager deployment) in which the failover VM is to be created.
         * 
         * @return builder
         * 
         */
        public Builder targetAzureV2ResourceGroupId(String targetAzureV2ResourceGroupId) {
            return targetAzureV2ResourceGroupId(Output.of(targetAzureV2ResourceGroupId));
        }

        /**
         * @param targetAzureVmName The target azure VM Name.
         * 
         * @return builder
         * 
         */
        public Builder targetAzureVmName(@Nullable Output targetAzureVmName) {
            $.targetAzureVmName = targetAzureVmName;
            return this;
        }

        /**
         * @param targetAzureVmName The target azure VM Name.
         * 
         * @return builder
         * 
         */
        public Builder targetAzureVmName(String targetAzureVmName) {
            return targetAzureVmName(Output.of(targetAzureVmName));
        }

        /**
         * @param targetManagedDiskTags The tags for the target managed disks.
         * 
         * @return builder
         * 
         */
        public Builder targetManagedDiskTags(@Nullable Output> targetManagedDiskTags) {
            $.targetManagedDiskTags = targetManagedDiskTags;
            return this;
        }

        /**
         * @param targetManagedDiskTags The tags for the target managed disks.
         * 
         * @return builder
         * 
         */
        public Builder targetManagedDiskTags(Map targetManagedDiskTags) {
            return targetManagedDiskTags(Output.of(targetManagedDiskTags));
        }

        /**
         * @param targetNicTags The tags for the target NICs.
         * 
         * @return builder
         * 
         */
        public Builder targetNicTags(@Nullable Output> targetNicTags) {
            $.targetNicTags = targetNicTags;
            return this;
        }

        /**
         * @param targetNicTags The tags for the target NICs.
         * 
         * @return builder
         * 
         */
        public Builder targetNicTags(Map targetNicTags) {
            return targetNicTags(Output.of(targetNicTags));
        }

        /**
         * @param targetProximityPlacementGroupId The proximity placement group ARM Id.
         * 
         * @return builder
         * 
         */
        public Builder targetProximityPlacementGroupId(@Nullable Output targetProximityPlacementGroupId) {
            $.targetProximityPlacementGroupId = targetProximityPlacementGroupId;
            return this;
        }

        /**
         * @param targetProximityPlacementGroupId The proximity placement group ARM Id.
         * 
         * @return builder
         * 
         */
        public Builder targetProximityPlacementGroupId(String targetProximityPlacementGroupId) {
            return targetProximityPlacementGroupId(Output.of(targetProximityPlacementGroupId));
        }

        /**
         * @param targetStorageAccountId The storage account Id.
         * 
         * @return builder
         * 
         */
        public Builder targetStorageAccountId(@Nullable Output targetStorageAccountId) {
            $.targetStorageAccountId = targetStorageAccountId;
            return this;
        }

        /**
         * @param targetStorageAccountId The storage account Id.
         * 
         * @return builder
         * 
         */
        public Builder targetStorageAccountId(String targetStorageAccountId) {
            return targetStorageAccountId(Output.of(targetStorageAccountId));
        }

        /**
         * @param targetVmSize The target VM size.
         * 
         * @return builder
         * 
         */
        public Builder targetVmSize(@Nullable Output targetVmSize) {
            $.targetVmSize = targetVmSize;
            return this;
        }

        /**
         * @param targetVmSize The target VM size.
         * 
         * @return builder
         * 
         */
        public Builder targetVmSize(String targetVmSize) {
            return targetVmSize(Output.of(targetVmSize));
        }

        /**
         * @param targetVmTags The target VM tags.
         * 
         * @return builder
         * 
         */
        public Builder targetVmTags(@Nullable Output> targetVmTags) {
            $.targetVmTags = targetVmTags;
            return this;
        }

        /**
         * @param targetVmTags The target VM tags.
         * 
         * @return builder
         * 
         */
        public Builder targetVmTags(Map targetVmTags) {
            return targetVmTags(Output.of(targetVmTags));
        }

        /**
         * @param useManagedDisks A value indicating whether managed disks should be used during failover.
         * 
         * @return builder
         * 
         */
        public Builder useManagedDisks(@Nullable Output useManagedDisks) {
            $.useManagedDisks = useManagedDisks;
            return this;
        }

        /**
         * @param useManagedDisks A value indicating whether managed disks should be used during failover.
         * 
         * @return builder
         * 
         */
        public Builder useManagedDisks(String useManagedDisks) {
            return useManagedDisks(Output.of(useManagedDisks));
        }

        /**
         * @param useManagedDisksForReplication A value indicating whether managed disks should be used during replication.
         * 
         * @return builder
         * 
         */
        public Builder useManagedDisksForReplication(@Nullable Output useManagedDisksForReplication) {
            $.useManagedDisksForReplication = useManagedDisksForReplication;
            return this;
        }

        /**
         * @param useManagedDisksForReplication A value indicating whether managed disks should be used during replication.
         * 
         * @return builder
         * 
         */
        public Builder useManagedDisksForReplication(String useManagedDisksForReplication) {
            return useManagedDisksForReplication(Output.of(useManagedDisksForReplication));
        }

        /**
         * @param vhdId The OS disk VHD id associated with VM.
         * 
         * @return builder
         * 
         */
        public Builder vhdId(@Nullable Output vhdId) {
            $.vhdId = vhdId;
            return this;
        }

        /**
         * @param vhdId The OS disk VHD id associated with VM.
         * 
         * @return builder
         * 
         */
        public Builder vhdId(String vhdId) {
            return vhdId(Output.of(vhdId));
        }

        /**
         * @param vmName The VM Name.
         * 
         * @return builder
         * 
         */
        public Builder vmName(@Nullable Output vmName) {
            $.vmName = vmName;
            return this;
        }

        /**
         * @param vmName The VM Name.
         * 
         * @return builder
         * 
         */
        public Builder vmName(String vmName) {
            return vmName(Output.of(vmName));
        }

        public HyperVReplicaAzureEnableProtectionInputArgs build() {
            $.instanceType = Codegen.stringProp("instanceType").output().arg($.instanceType).require();
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy