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

com.pulumi.azurenative.dbforpostgresql.MigrationArgs Maven / Gradle / Ivy

There is a newer version: 2.78.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.dbforpostgresql;

import com.pulumi.azurenative.dbforpostgresql.enums.CancelEnum;
import com.pulumi.azurenative.dbforpostgresql.enums.LogicalReplicationOnSourceDbEnum;
import com.pulumi.azurenative.dbforpostgresql.enums.MigrationMode;
import com.pulumi.azurenative.dbforpostgresql.enums.OverwriteDbsInTargetEnum;
import com.pulumi.azurenative.dbforpostgresql.enums.StartDataMigrationEnum;
import com.pulumi.azurenative.dbforpostgresql.enums.TriggerCutoverEnum;
import com.pulumi.azurenative.dbforpostgresql.inputs.MigrationSecretParametersArgs;
import com.pulumi.core.Either;
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.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class MigrationArgs extends com.pulumi.resources.ResourceArgs {

    public static final MigrationArgs Empty = new MigrationArgs();

    /**
     * To trigger cancel for entire migration we need to send this flag as True
     * 
     */
    @Import(name="cancel")
    private @Nullable Output> cancel;

    /**
     * @return To trigger cancel for entire migration we need to send this flag as True
     * 
     */
    public Optional>> cancel() {
        return Optional.ofNullable(this.cancel);
    }

    /**
     * When you want to trigger cancel for specific databases send cancel flag as True and database names in this array
     * 
     */
    @Import(name="dbsToCancelMigrationOn")
    private @Nullable Output> dbsToCancelMigrationOn;

    /**
     * @return When you want to trigger cancel for specific databases send cancel flag as True and database names in this array
     * 
     */
    public Optional>> dbsToCancelMigrationOn() {
        return Optional.ofNullable(this.dbsToCancelMigrationOn);
    }

    /**
     * Number of databases to migrate
     * 
     */
    @Import(name="dbsToMigrate")
    private @Nullable Output> dbsToMigrate;

    /**
     * @return Number of databases to migrate
     * 
     */
    public Optional>> dbsToMigrate() {
        return Optional.ofNullable(this.dbsToMigrate);
    }

    /**
     * When you want to trigger cutover for specific databases send triggerCutover flag as True and database names in this array
     * 
     */
    @Import(name="dbsToTriggerCutoverOn")
    private @Nullable Output> dbsToTriggerCutoverOn;

    /**
     * @return When you want to trigger cutover for specific databases send triggerCutover flag as True and database names in this array
     * 
     */
    public Optional>> dbsToTriggerCutoverOn() {
        return Optional.ofNullable(this.dbsToTriggerCutoverOn);
    }

    /**
     * The geo-location where the resource lives
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The geo-location where the resource lives
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * There are two types of migration modes Online and Offline
     * 
     */
    @Import(name="migrationMode")
    private @Nullable Output> migrationMode;

    /**
     * @return There are two types of migration modes Online and Offline
     * 
     */
    public Optional>> migrationMode() {
        return Optional.ofNullable(this.migrationMode);
    }

    /**
     * The name of the migration.
     * 
     */
    @Import(name="migrationName")
    private @Nullable Output migrationName;

    /**
     * @return The name of the migration.
     * 
     */
    public Optional> migrationName() {
        return Optional.ofNullable(this.migrationName);
    }

    /**
     * End time in UTC for migration window
     * 
     */
    @Import(name="migrationWindowEndTimeInUtc")
    private @Nullable Output migrationWindowEndTimeInUtc;

    /**
     * @return End time in UTC for migration window
     * 
     */
    public Optional> migrationWindowEndTimeInUtc() {
        return Optional.ofNullable(this.migrationWindowEndTimeInUtc);
    }

    /**
     * Start time in UTC for migration window
     * 
     */
    @Import(name="migrationWindowStartTimeInUtc")
    private @Nullable Output migrationWindowStartTimeInUtc;

    /**
     * @return Start time in UTC for migration window
     * 
     */
    public Optional> migrationWindowStartTimeInUtc() {
        return Optional.ofNullable(this.migrationWindowStartTimeInUtc);
    }

    /**
     * Indicates whether the databases on the target server can be overwritten, if already present. If set to False, the migration workflow will wait for a confirmation, if it detects that the database already exists.
     * 
     */
    @Import(name="overwriteDbsInTarget")
    private @Nullable Output> overwriteDbsInTarget;

    /**
     * @return Indicates whether the databases on the target server can be overwritten, if already present. If set to False, the migration workflow will wait for a confirmation, if it detects that the database already exists.
     * 
     */
    public Optional>> overwriteDbsInTarget() {
        return Optional.ofNullable(this.overwriteDbsInTarget);
    }

    /**
     * The resource group name of the target database server.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The resource group name of the target database server.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Migration secret parameters
     * 
     */
    @Import(name="secretParameters")
    private @Nullable Output secretParameters;

    /**
     * @return Migration secret parameters
     * 
     */
    public Optional> secretParameters() {
        return Optional.ofNullable(this.secretParameters);
    }

    /**
     * Indicates whether to setup LogicalReplicationOnSourceDb, if needed
     * 
     */
    @Import(name="setupLogicalReplicationOnSourceDbIfNeeded")
    private @Nullable Output> setupLogicalReplicationOnSourceDbIfNeeded;

    /**
     * @return Indicates whether to setup LogicalReplicationOnSourceDb, if needed
     * 
     */
    public Optional>> setupLogicalReplicationOnSourceDbIfNeeded() {
        return Optional.ofNullable(this.setupLogicalReplicationOnSourceDbIfNeeded);
    }

    /**
     * Source server fully qualified domain name or ip. It is a optional value, if customer provide it, dms will always use it for connection
     * 
     */
    @Import(name="sourceDbServerFullyQualifiedDomainName")
    private @Nullable Output sourceDbServerFullyQualifiedDomainName;

    /**
     * @return Source server fully qualified domain name or ip. It is a optional value, if customer provide it, dms will always use it for connection
     * 
     */
    public Optional> sourceDbServerFullyQualifiedDomainName() {
        return Optional.ofNullable(this.sourceDbServerFullyQualifiedDomainName);
    }

    /**
     * ResourceId of the source database server
     * 
     */
    @Import(name="sourceDbServerResourceId")
    private @Nullable Output sourceDbServerResourceId;

    /**
     * @return ResourceId of the source database server
     * 
     */
    public Optional> sourceDbServerResourceId() {
        return Optional.ofNullable(this.sourceDbServerResourceId);
    }

    /**
     * Indicates whether the data migration should start right away
     * 
     */
    @Import(name="startDataMigration")
    private @Nullable Output> startDataMigration;

    /**
     * @return Indicates whether the data migration should start right away
     * 
     */
    public Optional>> startDataMigration() {
        return Optional.ofNullable(this.startDataMigration);
    }

    /**
     * The subscription ID of the target database server.
     * 
     */
    @Import(name="subscriptionId")
    private @Nullable Output subscriptionId;

    /**
     * @return The subscription ID of the target database server.
     * 
     */
    public Optional> subscriptionId() {
        return Optional.ofNullable(this.subscriptionId);
    }

    /**
     * Resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * Target server fully qualified domain name or ip. It is a optional value, if customer provide it, dms will always use it for connection
     * 
     */
    @Import(name="targetDbServerFullyQualifiedDomainName")
    private @Nullable Output targetDbServerFullyQualifiedDomainName;

    /**
     * @return Target server fully qualified domain name or ip. It is a optional value, if customer provide it, dms will always use it for connection
     * 
     */
    public Optional> targetDbServerFullyQualifiedDomainName() {
        return Optional.ofNullable(this.targetDbServerFullyQualifiedDomainName);
    }

    /**
     * The name of the target database server.
     * 
     */
    @Import(name="targetDbServerName", required=true)
    private Output targetDbServerName;

    /**
     * @return The name of the target database server.
     * 
     */
    public Output targetDbServerName() {
        return this.targetDbServerName;
    }

    /**
     * To trigger cutover for entire migration we need to send this flag as True
     * 
     */
    @Import(name="triggerCutover")
    private @Nullable Output> triggerCutover;

    /**
     * @return To trigger cutover for entire migration we need to send this flag as True
     * 
     */
    public Optional>> triggerCutover() {
        return Optional.ofNullable(this.triggerCutover);
    }

    private MigrationArgs() {}

    private MigrationArgs(MigrationArgs $) {
        this.cancel = $.cancel;
        this.dbsToCancelMigrationOn = $.dbsToCancelMigrationOn;
        this.dbsToMigrate = $.dbsToMigrate;
        this.dbsToTriggerCutoverOn = $.dbsToTriggerCutoverOn;
        this.location = $.location;
        this.migrationMode = $.migrationMode;
        this.migrationName = $.migrationName;
        this.migrationWindowEndTimeInUtc = $.migrationWindowEndTimeInUtc;
        this.migrationWindowStartTimeInUtc = $.migrationWindowStartTimeInUtc;
        this.overwriteDbsInTarget = $.overwriteDbsInTarget;
        this.resourceGroupName = $.resourceGroupName;
        this.secretParameters = $.secretParameters;
        this.setupLogicalReplicationOnSourceDbIfNeeded = $.setupLogicalReplicationOnSourceDbIfNeeded;
        this.sourceDbServerFullyQualifiedDomainName = $.sourceDbServerFullyQualifiedDomainName;
        this.sourceDbServerResourceId = $.sourceDbServerResourceId;
        this.startDataMigration = $.startDataMigration;
        this.subscriptionId = $.subscriptionId;
        this.tags = $.tags;
        this.targetDbServerFullyQualifiedDomainName = $.targetDbServerFullyQualifiedDomainName;
        this.targetDbServerName = $.targetDbServerName;
        this.triggerCutover = $.triggerCutover;
    }

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

    public static final class Builder {
        private MigrationArgs $;

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

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

        /**
         * @param cancel To trigger cancel for entire migration we need to send this flag as True
         * 
         * @return builder
         * 
         */
        public Builder cancel(@Nullable Output> cancel) {
            $.cancel = cancel;
            return this;
        }

        /**
         * @param cancel To trigger cancel for entire migration we need to send this flag as True
         * 
         * @return builder
         * 
         */
        public Builder cancel(Either cancel) {
            return cancel(Output.of(cancel));
        }

        /**
         * @param cancel To trigger cancel for entire migration we need to send this flag as True
         * 
         * @return builder
         * 
         */
        public Builder cancel(String cancel) {
            return cancel(Either.ofLeft(cancel));
        }

        /**
         * @param cancel To trigger cancel for entire migration we need to send this flag as True
         * 
         * @return builder
         * 
         */
        public Builder cancel(CancelEnum cancel) {
            return cancel(Either.ofRight(cancel));
        }

        /**
         * @param dbsToCancelMigrationOn When you want to trigger cancel for specific databases send cancel flag as True and database names in this array
         * 
         * @return builder
         * 
         */
        public Builder dbsToCancelMigrationOn(@Nullable Output> dbsToCancelMigrationOn) {
            $.dbsToCancelMigrationOn = dbsToCancelMigrationOn;
            return this;
        }

        /**
         * @param dbsToCancelMigrationOn When you want to trigger cancel for specific databases send cancel flag as True and database names in this array
         * 
         * @return builder
         * 
         */
        public Builder dbsToCancelMigrationOn(List dbsToCancelMigrationOn) {
            return dbsToCancelMigrationOn(Output.of(dbsToCancelMigrationOn));
        }

        /**
         * @param dbsToCancelMigrationOn When you want to trigger cancel for specific databases send cancel flag as True and database names in this array
         * 
         * @return builder
         * 
         */
        public Builder dbsToCancelMigrationOn(String... dbsToCancelMigrationOn) {
            return dbsToCancelMigrationOn(List.of(dbsToCancelMigrationOn));
        }

        /**
         * @param dbsToMigrate Number of databases to migrate
         * 
         * @return builder
         * 
         */
        public Builder dbsToMigrate(@Nullable Output> dbsToMigrate) {
            $.dbsToMigrate = dbsToMigrate;
            return this;
        }

        /**
         * @param dbsToMigrate Number of databases to migrate
         * 
         * @return builder
         * 
         */
        public Builder dbsToMigrate(List dbsToMigrate) {
            return dbsToMigrate(Output.of(dbsToMigrate));
        }

        /**
         * @param dbsToMigrate Number of databases to migrate
         * 
         * @return builder
         * 
         */
        public Builder dbsToMigrate(String... dbsToMigrate) {
            return dbsToMigrate(List.of(dbsToMigrate));
        }

        /**
         * @param dbsToTriggerCutoverOn When you want to trigger cutover for specific databases send triggerCutover flag as True and database names in this array
         * 
         * @return builder
         * 
         */
        public Builder dbsToTriggerCutoverOn(@Nullable Output> dbsToTriggerCutoverOn) {
            $.dbsToTriggerCutoverOn = dbsToTriggerCutoverOn;
            return this;
        }

        /**
         * @param dbsToTriggerCutoverOn When you want to trigger cutover for specific databases send triggerCutover flag as True and database names in this array
         * 
         * @return builder
         * 
         */
        public Builder dbsToTriggerCutoverOn(List dbsToTriggerCutoverOn) {
            return dbsToTriggerCutoverOn(Output.of(dbsToTriggerCutoverOn));
        }

        /**
         * @param dbsToTriggerCutoverOn When you want to trigger cutover for specific databases send triggerCutover flag as True and database names in this array
         * 
         * @return builder
         * 
         */
        public Builder dbsToTriggerCutoverOn(String... dbsToTriggerCutoverOn) {
            return dbsToTriggerCutoverOn(List.of(dbsToTriggerCutoverOn));
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param migrationMode There are two types of migration modes Online and Offline
         * 
         * @return builder
         * 
         */
        public Builder migrationMode(@Nullable Output> migrationMode) {
            $.migrationMode = migrationMode;
            return this;
        }

        /**
         * @param migrationMode There are two types of migration modes Online and Offline
         * 
         * @return builder
         * 
         */
        public Builder migrationMode(Either migrationMode) {
            return migrationMode(Output.of(migrationMode));
        }

        /**
         * @param migrationMode There are two types of migration modes Online and Offline
         * 
         * @return builder
         * 
         */
        public Builder migrationMode(String migrationMode) {
            return migrationMode(Either.ofLeft(migrationMode));
        }

        /**
         * @param migrationMode There are two types of migration modes Online and Offline
         * 
         * @return builder
         * 
         */
        public Builder migrationMode(MigrationMode migrationMode) {
            return migrationMode(Either.ofRight(migrationMode));
        }

        /**
         * @param migrationName The name of the migration.
         * 
         * @return builder
         * 
         */
        public Builder migrationName(@Nullable Output migrationName) {
            $.migrationName = migrationName;
            return this;
        }

        /**
         * @param migrationName The name of the migration.
         * 
         * @return builder
         * 
         */
        public Builder migrationName(String migrationName) {
            return migrationName(Output.of(migrationName));
        }

        /**
         * @param migrationWindowEndTimeInUtc End time in UTC for migration window
         * 
         * @return builder
         * 
         */
        public Builder migrationWindowEndTimeInUtc(@Nullable Output migrationWindowEndTimeInUtc) {
            $.migrationWindowEndTimeInUtc = migrationWindowEndTimeInUtc;
            return this;
        }

        /**
         * @param migrationWindowEndTimeInUtc End time in UTC for migration window
         * 
         * @return builder
         * 
         */
        public Builder migrationWindowEndTimeInUtc(String migrationWindowEndTimeInUtc) {
            return migrationWindowEndTimeInUtc(Output.of(migrationWindowEndTimeInUtc));
        }

        /**
         * @param migrationWindowStartTimeInUtc Start time in UTC for migration window
         * 
         * @return builder
         * 
         */
        public Builder migrationWindowStartTimeInUtc(@Nullable Output migrationWindowStartTimeInUtc) {
            $.migrationWindowStartTimeInUtc = migrationWindowStartTimeInUtc;
            return this;
        }

        /**
         * @param migrationWindowStartTimeInUtc Start time in UTC for migration window
         * 
         * @return builder
         * 
         */
        public Builder migrationWindowStartTimeInUtc(String migrationWindowStartTimeInUtc) {
            return migrationWindowStartTimeInUtc(Output.of(migrationWindowStartTimeInUtc));
        }

        /**
         * @param overwriteDbsInTarget Indicates whether the databases on the target server can be overwritten, if already present. If set to False, the migration workflow will wait for a confirmation, if it detects that the database already exists.
         * 
         * @return builder
         * 
         */
        public Builder overwriteDbsInTarget(@Nullable Output> overwriteDbsInTarget) {
            $.overwriteDbsInTarget = overwriteDbsInTarget;
            return this;
        }

        /**
         * @param overwriteDbsInTarget Indicates whether the databases on the target server can be overwritten, if already present. If set to False, the migration workflow will wait for a confirmation, if it detects that the database already exists.
         * 
         * @return builder
         * 
         */
        public Builder overwriteDbsInTarget(Either overwriteDbsInTarget) {
            return overwriteDbsInTarget(Output.of(overwriteDbsInTarget));
        }

        /**
         * @param overwriteDbsInTarget Indicates whether the databases on the target server can be overwritten, if already present. If set to False, the migration workflow will wait for a confirmation, if it detects that the database already exists.
         * 
         * @return builder
         * 
         */
        public Builder overwriteDbsInTarget(String overwriteDbsInTarget) {
            return overwriteDbsInTarget(Either.ofLeft(overwriteDbsInTarget));
        }

        /**
         * @param overwriteDbsInTarget Indicates whether the databases on the target server can be overwritten, if already present. If set to False, the migration workflow will wait for a confirmation, if it detects that the database already exists.
         * 
         * @return builder
         * 
         */
        public Builder overwriteDbsInTarget(OverwriteDbsInTargetEnum overwriteDbsInTarget) {
            return overwriteDbsInTarget(Either.ofRight(overwriteDbsInTarget));
        }

        /**
         * @param resourceGroupName The resource group name of the target database server.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The resource group name of the target database server.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param secretParameters Migration secret parameters
         * 
         * @return builder
         * 
         */
        public Builder secretParameters(@Nullable Output secretParameters) {
            $.secretParameters = secretParameters;
            return this;
        }

        /**
         * @param secretParameters Migration secret parameters
         * 
         * @return builder
         * 
         */
        public Builder secretParameters(MigrationSecretParametersArgs secretParameters) {
            return secretParameters(Output.of(secretParameters));
        }

        /**
         * @param setupLogicalReplicationOnSourceDbIfNeeded Indicates whether to setup LogicalReplicationOnSourceDb, if needed
         * 
         * @return builder
         * 
         */
        public Builder setupLogicalReplicationOnSourceDbIfNeeded(@Nullable Output> setupLogicalReplicationOnSourceDbIfNeeded) {
            $.setupLogicalReplicationOnSourceDbIfNeeded = setupLogicalReplicationOnSourceDbIfNeeded;
            return this;
        }

        /**
         * @param setupLogicalReplicationOnSourceDbIfNeeded Indicates whether to setup LogicalReplicationOnSourceDb, if needed
         * 
         * @return builder
         * 
         */
        public Builder setupLogicalReplicationOnSourceDbIfNeeded(Either setupLogicalReplicationOnSourceDbIfNeeded) {
            return setupLogicalReplicationOnSourceDbIfNeeded(Output.of(setupLogicalReplicationOnSourceDbIfNeeded));
        }

        /**
         * @param setupLogicalReplicationOnSourceDbIfNeeded Indicates whether to setup LogicalReplicationOnSourceDb, if needed
         * 
         * @return builder
         * 
         */
        public Builder setupLogicalReplicationOnSourceDbIfNeeded(String setupLogicalReplicationOnSourceDbIfNeeded) {
            return setupLogicalReplicationOnSourceDbIfNeeded(Either.ofLeft(setupLogicalReplicationOnSourceDbIfNeeded));
        }

        /**
         * @param setupLogicalReplicationOnSourceDbIfNeeded Indicates whether to setup LogicalReplicationOnSourceDb, if needed
         * 
         * @return builder
         * 
         */
        public Builder setupLogicalReplicationOnSourceDbIfNeeded(LogicalReplicationOnSourceDbEnum setupLogicalReplicationOnSourceDbIfNeeded) {
            return setupLogicalReplicationOnSourceDbIfNeeded(Either.ofRight(setupLogicalReplicationOnSourceDbIfNeeded));
        }

        /**
         * @param sourceDbServerFullyQualifiedDomainName Source server fully qualified domain name or ip. It is a optional value, if customer provide it, dms will always use it for connection
         * 
         * @return builder
         * 
         */
        public Builder sourceDbServerFullyQualifiedDomainName(@Nullable Output sourceDbServerFullyQualifiedDomainName) {
            $.sourceDbServerFullyQualifiedDomainName = sourceDbServerFullyQualifiedDomainName;
            return this;
        }

        /**
         * @param sourceDbServerFullyQualifiedDomainName Source server fully qualified domain name or ip. It is a optional value, if customer provide it, dms will always use it for connection
         * 
         * @return builder
         * 
         */
        public Builder sourceDbServerFullyQualifiedDomainName(String sourceDbServerFullyQualifiedDomainName) {
            return sourceDbServerFullyQualifiedDomainName(Output.of(sourceDbServerFullyQualifiedDomainName));
        }

        /**
         * @param sourceDbServerResourceId ResourceId of the source database server
         * 
         * @return builder
         * 
         */
        public Builder sourceDbServerResourceId(@Nullable Output sourceDbServerResourceId) {
            $.sourceDbServerResourceId = sourceDbServerResourceId;
            return this;
        }

        /**
         * @param sourceDbServerResourceId ResourceId of the source database server
         * 
         * @return builder
         * 
         */
        public Builder sourceDbServerResourceId(String sourceDbServerResourceId) {
            return sourceDbServerResourceId(Output.of(sourceDbServerResourceId));
        }

        /**
         * @param startDataMigration Indicates whether the data migration should start right away
         * 
         * @return builder
         * 
         */
        public Builder startDataMigration(@Nullable Output> startDataMigration) {
            $.startDataMigration = startDataMigration;
            return this;
        }

        /**
         * @param startDataMigration Indicates whether the data migration should start right away
         * 
         * @return builder
         * 
         */
        public Builder startDataMigration(Either startDataMigration) {
            return startDataMigration(Output.of(startDataMigration));
        }

        /**
         * @param startDataMigration Indicates whether the data migration should start right away
         * 
         * @return builder
         * 
         */
        public Builder startDataMigration(String startDataMigration) {
            return startDataMigration(Either.ofLeft(startDataMigration));
        }

        /**
         * @param startDataMigration Indicates whether the data migration should start right away
         * 
         * @return builder
         * 
         */
        public Builder startDataMigration(StartDataMigrationEnum startDataMigration) {
            return startDataMigration(Either.ofRight(startDataMigration));
        }

        /**
         * @param subscriptionId The subscription ID of the target database server.
         * 
         * @return builder
         * 
         */
        public Builder subscriptionId(@Nullable Output subscriptionId) {
            $.subscriptionId = subscriptionId;
            return this;
        }

        /**
         * @param subscriptionId The subscription ID of the target database server.
         * 
         * @return builder
         * 
         */
        public Builder subscriptionId(String subscriptionId) {
            return subscriptionId(Output.of(subscriptionId));
        }

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

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param targetDbServerFullyQualifiedDomainName Target server fully qualified domain name or ip. It is a optional value, if customer provide it, dms will always use it for connection
         * 
         * @return builder
         * 
         */
        public Builder targetDbServerFullyQualifiedDomainName(@Nullable Output targetDbServerFullyQualifiedDomainName) {
            $.targetDbServerFullyQualifiedDomainName = targetDbServerFullyQualifiedDomainName;
            return this;
        }

        /**
         * @param targetDbServerFullyQualifiedDomainName Target server fully qualified domain name or ip. It is a optional value, if customer provide it, dms will always use it for connection
         * 
         * @return builder
         * 
         */
        public Builder targetDbServerFullyQualifiedDomainName(String targetDbServerFullyQualifiedDomainName) {
            return targetDbServerFullyQualifiedDomainName(Output.of(targetDbServerFullyQualifiedDomainName));
        }

        /**
         * @param targetDbServerName The name of the target database server.
         * 
         * @return builder
         * 
         */
        public Builder targetDbServerName(Output targetDbServerName) {
            $.targetDbServerName = targetDbServerName;
            return this;
        }

        /**
         * @param targetDbServerName The name of the target database server.
         * 
         * @return builder
         * 
         */
        public Builder targetDbServerName(String targetDbServerName) {
            return targetDbServerName(Output.of(targetDbServerName));
        }

        /**
         * @param triggerCutover To trigger cutover for entire migration we need to send this flag as True
         * 
         * @return builder
         * 
         */
        public Builder triggerCutover(@Nullable Output> triggerCutover) {
            $.triggerCutover = triggerCutover;
            return this;
        }

        /**
         * @param triggerCutover To trigger cutover for entire migration we need to send this flag as True
         * 
         * @return builder
         * 
         */
        public Builder triggerCutover(Either triggerCutover) {
            return triggerCutover(Output.of(triggerCutover));
        }

        /**
         * @param triggerCutover To trigger cutover for entire migration we need to send this flag as True
         * 
         * @return builder
         * 
         */
        public Builder triggerCutover(String triggerCutover) {
            return triggerCutover(Either.ofLeft(triggerCutover));
        }

        /**
         * @param triggerCutover To trigger cutover for entire migration we need to send this flag as True
         * 
         * @return builder
         * 
         */
        public Builder triggerCutover(TriggerCutoverEnum triggerCutover) {
            return triggerCutover(Either.ofRight(triggerCutover));
        }

        public MigrationArgs build() {
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("MigrationArgs", "resourceGroupName");
            }
            if ($.targetDbServerName == null) {
                throw new MissingRequiredPropertyException("MigrationArgs", "targetDbServerName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy