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

com.pulumi.alicloud.dts.MigrationJobArgs Maven / Gradle / Ivy

There is a newer version: 3.63.0-alpha.1727424957
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.alicloud.dts;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final MigrationJobArgs Empty = new MigrationJobArgs();

    /**
     * Start time in Unix timestamp format.
     * 
     */
    @Import(name="checkpoint")
    private @Nullable Output checkpoint;

    /**
     * @return Start time in Unix timestamp format.
     * 
     */
    public Optional> checkpoint() {
        return Optional.ofNullable(this.checkpoint);
    }

    /**
     * Whether to execute DTS supports schema migration.
     * 
     */
    @Import(name="dataInitialization", required=true)
    private Output dataInitialization;

    /**
     * @return Whether to execute DTS supports schema migration.
     * 
     */
    public Output dataInitialization() {
        return this.dataInitialization;
    }

    /**
     * Whether to perform incremental data migration.
     * 
     */
    @Import(name="dataSynchronization", required=true)
    private Output dataSynchronization;

    /**
     * @return Whether to perform incremental data migration.
     * 
     */
    public Output dataSynchronization() {
        return this.dataSynchronization;
    }

    /**
     * Migration object, in the format of JSON strings. For detailed definition instructions, please refer to [the description of migration, migration or subscription objects](https://help.aliyun.com/document_detail/209545.html).
     * 
     */
    @Import(name="dbList", required=true)
    private Output dbList;

    /**
     * @return Migration object, in the format of JSON strings. For detailed definition instructions, please refer to [the description of migration, migration or subscription objects](https://help.aliyun.com/document_detail/209545.html).
     * 
     */
    public Output dbList() {
        return this.dbList;
    }

    /**
     * The name of migrate the database.
     * 
     */
    @Import(name="destinationEndpointDatabaseName")
    private @Nullable Output destinationEndpointDatabaseName;

    /**
     * @return The name of migrate the database.
     * 
     */
    public Optional> destinationEndpointDatabaseName() {
        return Optional.ofNullable(this.destinationEndpointDatabaseName);
    }

    /**
     * The type of destination database. Valid values: `ADS`, `ADB30`, `AS400`, `DATAHUB`, `DB2`, `GREENPLUM`, `KAFKA`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `PostgreSQL`.
     * 
     */
    @Import(name="destinationEndpointEngineName", required=true)
    private Output destinationEndpointEngineName;

    /**
     * @return The type of destination database. Valid values: `ADS`, `ADB30`, `AS400`, `DATAHUB`, `DB2`, `GREENPLUM`, `KAFKA`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `PostgreSQL`.
     * 
     */
    public Output destinationEndpointEngineName() {
        return this.destinationEndpointEngineName;
    }

    /**
     * The ID of destination instance.
     * 
     */
    @Import(name="destinationEndpointInstanceId")
    private @Nullable Output destinationEndpointInstanceId;

    /**
     * @return The ID of destination instance.
     * 
     */
    public Optional> destinationEndpointInstanceId() {
        return Optional.ofNullable(this.destinationEndpointInstanceId);
    }

    /**
     * The type of destination instance. Valid values: `ADS`, `CEN`, `DATAHUB`, `DG`, `ECS`, `EXPRESS`, `GREENPLUM`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.
     * 
     */
    @Import(name="destinationEndpointInstanceType", required=true)
    private Output destinationEndpointInstanceType;

    /**
     * @return The type of destination instance. Valid values: `ADS`, `CEN`, `DATAHUB`, `DG`, `ECS`, `EXPRESS`, `GREENPLUM`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.
     * 
     */
    public Output destinationEndpointInstanceType() {
        return this.destinationEndpointInstanceType;
    }

    /**
     * The ip of source endpoint.
     * 
     */
    @Import(name="destinationEndpointIp")
    private @Nullable Output destinationEndpointIp;

    /**
     * @return The ip of source endpoint.
     * 
     */
    public Optional> destinationEndpointIp() {
        return Optional.ofNullable(this.destinationEndpointIp);
    }

    /**
     * The SID of Oracle database.
     * 
     */
    @Import(name="destinationEndpointOracleSid")
    private @Nullable Output destinationEndpointOracleSid;

    /**
     * @return The SID of Oracle database.
     * 
     */
    public Optional> destinationEndpointOracleSid() {
        return Optional.ofNullable(this.destinationEndpointOracleSid);
    }

    /**
     * The password of database account.
     * 
     */
    @Import(name="destinationEndpointPassword")
    private @Nullable Output destinationEndpointPassword;

    /**
     * @return The password of database account.
     * 
     */
    public Optional> destinationEndpointPassword() {
        return Optional.ofNullable(this.destinationEndpointPassword);
    }

    /**
     * The port of source endpoint.
     * 
     */
    @Import(name="destinationEndpointPort")
    private @Nullable Output destinationEndpointPort;

    /**
     * @return The port of source endpoint.
     * 
     */
    public Optional> destinationEndpointPort() {
        return Optional.ofNullable(this.destinationEndpointPort);
    }

    /**
     * The region of destination instance.
     * 
     */
    @Import(name="destinationEndpointRegion")
    private @Nullable Output destinationEndpointRegion;

    /**
     * @return The region of destination instance.
     * 
     */
    public Optional> destinationEndpointRegion() {
        return Optional.ofNullable(this.destinationEndpointRegion);
    }

    /**
     * The username of database account.
     * 
     */
    @Import(name="destinationEndpointUserName")
    private @Nullable Output destinationEndpointUserName;

    /**
     * @return The username of database account.
     * 
     */
    public Optional> destinationEndpointUserName() {
        return Optional.ofNullable(this.destinationEndpointUserName);
    }

    /**
     * The Migration instance ID. The ID of `alicloud.dts.MigrationInstance`.
     * 
     */
    @Import(name="dtsInstanceId", required=true)
    private Output dtsInstanceId;

    /**
     * @return The Migration instance ID. The ID of `alicloud.dts.MigrationInstance`.
     * 
     */
    public Output dtsInstanceId() {
        return this.dtsInstanceId;
    }

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

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

    /**
     * The instance class. Valid values: `large`, `medium`, `micro`, `small`, `xlarge`, `xxlarge`.
     * 
     */
    @Import(name="instanceClass")
    private @Nullable Output instanceClass;

    /**
     * @return The instance class. Valid values: `large`, `medium`, `micro`, `small`, `xlarge`, `xxlarge`.
     * 
     */
    public Optional> instanceClass() {
        return Optional.ofNullable(this.instanceClass);
    }

    /**
     * The name of migrate the database.
     * 
     */
    @Import(name="sourceEndpointDatabaseName")
    private @Nullable Output sourceEndpointDatabaseName;

    /**
     * @return The name of migrate the database.
     * 
     */
    public Optional> sourceEndpointDatabaseName() {
        return Optional.ofNullable(this.sourceEndpointDatabaseName);
    }

    /**
     * The type of source database. Valid values: `AS400`, `DB2`, `DMSPOLARDB`, `HBASE`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `POSTGRESQL`, `TERADATA`.
     * 
     */
    @Import(name="sourceEndpointEngineName", required=true)
    private Output sourceEndpointEngineName;

    /**
     * @return The type of source database. Valid values: `AS400`, `DB2`, `DMSPOLARDB`, `HBASE`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `POSTGRESQL`, `TERADATA`.
     * 
     */
    public Output sourceEndpointEngineName() {
        return this.sourceEndpointEngineName;
    }

    /**
     * The ID of source instance.
     * 
     */
    @Import(name="sourceEndpointInstanceId")
    private @Nullable Output sourceEndpointInstanceId;

    /**
     * @return The ID of source instance.
     * 
     */
    public Optional> sourceEndpointInstanceId() {
        return Optional.ofNullable(this.sourceEndpointInstanceId);
    }

    /**
     * The type of source instance. Valid values: `CEN`, `DG`, `DISTRIBUTED_DMSLOGICDB`, `ECS`, `EXPRESS`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.
     * 
     */
    @Import(name="sourceEndpointInstanceType", required=true)
    private Output sourceEndpointInstanceType;

    /**
     * @return The type of source instance. Valid values: `CEN`, `DG`, `DISTRIBUTED_DMSLOGICDB`, `ECS`, `EXPRESS`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.
     * 
     */
    public Output sourceEndpointInstanceType() {
        return this.sourceEndpointInstanceType;
    }

    /**
     * The ip of source endpoint.
     * 
     */
    @Import(name="sourceEndpointIp")
    private @Nullable Output sourceEndpointIp;

    /**
     * @return The ip of source endpoint.
     * 
     */
    public Optional> sourceEndpointIp() {
        return Optional.ofNullable(this.sourceEndpointIp);
    }

    /**
     * The SID of Oracle database.
     * 
     */
    @Import(name="sourceEndpointOracleSid")
    private @Nullable Output sourceEndpointOracleSid;

    /**
     * @return The SID of Oracle database.
     * 
     */
    public Optional> sourceEndpointOracleSid() {
        return Optional.ofNullable(this.sourceEndpointOracleSid);
    }

    /**
     * The Alibaba Cloud account ID to which the source instance belongs.
     * 
     */
    @Import(name="sourceEndpointOwnerId")
    private @Nullable Output sourceEndpointOwnerId;

    /**
     * @return The Alibaba Cloud account ID to which the source instance belongs.
     * 
     */
    public Optional> sourceEndpointOwnerId() {
        return Optional.ofNullable(this.sourceEndpointOwnerId);
    }

    /**
     * The password of database account.
     * 
     */
    @Import(name="sourceEndpointPassword")
    private @Nullable Output sourceEndpointPassword;

    /**
     * @return The password of database account.
     * 
     */
    public Optional> sourceEndpointPassword() {
        return Optional.ofNullable(this.sourceEndpointPassword);
    }

    /**
     * The port of source endpoint.
     * 
     */
    @Import(name="sourceEndpointPort")
    private @Nullable Output sourceEndpointPort;

    /**
     * @return The port of source endpoint.
     * 
     */
    public Optional> sourceEndpointPort() {
        return Optional.ofNullable(this.sourceEndpointPort);
    }

    /**
     * The region of source instance.
     * 
     */
    @Import(name="sourceEndpointRegion")
    private @Nullable Output sourceEndpointRegion;

    /**
     * @return The region of source instance.
     * 
     */
    public Optional> sourceEndpointRegion() {
        return Optional.ofNullable(this.sourceEndpointRegion);
    }

    /**
     * The name of the role configured for the cloud account to which the source instance belongs.
     * 
     */
    @Import(name="sourceEndpointRole")
    private @Nullable Output sourceEndpointRole;

    /**
     * @return The name of the role configured for the cloud account to which the source instance belongs.
     * 
     */
    public Optional> sourceEndpointRole() {
        return Optional.ofNullable(this.sourceEndpointRole);
    }

    /**
     * The username of database account.
     * 
     */
    @Import(name="sourceEndpointUserName")
    private @Nullable Output sourceEndpointUserName;

    /**
     * @return The username of database account.
     * 
     */
    public Optional> sourceEndpointUserName() {
        return Optional.ofNullable(this.sourceEndpointUserName);
    }

    /**
     * The status of the resource. Valid values: `Migrating`, `Suspending`. You can suspend the task by specifying `Suspending` and start the task by specifying `Migrating`.
     * 
     */
    @Import(name="status")
    private @Nullable Output status;

    /**
     * @return The status of the resource. Valid values: `Migrating`, `Suspending`. You can suspend the task by specifying `Suspending` and start the task by specifying `Migrating`.
     * 
     */
    public Optional> status() {
        return Optional.ofNullable(this.status);
    }

    /**
     * Whether to perform a database table structure to migrate.
     * 
     */
    @Import(name="structureInitialization", required=true)
    private Output structureInitialization;

    /**
     * @return Whether to perform a database table structure to migrate.
     * 
     */
    public Output structureInitialization() {
        return this.structureInitialization;
    }

    private MigrationJobArgs() {}

    private MigrationJobArgs(MigrationJobArgs $) {
        this.checkpoint = $.checkpoint;
        this.dataInitialization = $.dataInitialization;
        this.dataSynchronization = $.dataSynchronization;
        this.dbList = $.dbList;
        this.destinationEndpointDatabaseName = $.destinationEndpointDatabaseName;
        this.destinationEndpointEngineName = $.destinationEndpointEngineName;
        this.destinationEndpointInstanceId = $.destinationEndpointInstanceId;
        this.destinationEndpointInstanceType = $.destinationEndpointInstanceType;
        this.destinationEndpointIp = $.destinationEndpointIp;
        this.destinationEndpointOracleSid = $.destinationEndpointOracleSid;
        this.destinationEndpointPassword = $.destinationEndpointPassword;
        this.destinationEndpointPort = $.destinationEndpointPort;
        this.destinationEndpointRegion = $.destinationEndpointRegion;
        this.destinationEndpointUserName = $.destinationEndpointUserName;
        this.dtsInstanceId = $.dtsInstanceId;
        this.dtsJobName = $.dtsJobName;
        this.instanceClass = $.instanceClass;
        this.sourceEndpointDatabaseName = $.sourceEndpointDatabaseName;
        this.sourceEndpointEngineName = $.sourceEndpointEngineName;
        this.sourceEndpointInstanceId = $.sourceEndpointInstanceId;
        this.sourceEndpointInstanceType = $.sourceEndpointInstanceType;
        this.sourceEndpointIp = $.sourceEndpointIp;
        this.sourceEndpointOracleSid = $.sourceEndpointOracleSid;
        this.sourceEndpointOwnerId = $.sourceEndpointOwnerId;
        this.sourceEndpointPassword = $.sourceEndpointPassword;
        this.sourceEndpointPort = $.sourceEndpointPort;
        this.sourceEndpointRegion = $.sourceEndpointRegion;
        this.sourceEndpointRole = $.sourceEndpointRole;
        this.sourceEndpointUserName = $.sourceEndpointUserName;
        this.status = $.status;
        this.structureInitialization = $.structureInitialization;
    }

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

    public static final class Builder {
        private MigrationJobArgs $;

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

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

        /**
         * @param checkpoint Start time in Unix timestamp format.
         * 
         * @return builder
         * 
         */
        public Builder checkpoint(@Nullable Output checkpoint) {
            $.checkpoint = checkpoint;
            return this;
        }

        /**
         * @param checkpoint Start time in Unix timestamp format.
         * 
         * @return builder
         * 
         */
        public Builder checkpoint(String checkpoint) {
            return checkpoint(Output.of(checkpoint));
        }

        /**
         * @param dataInitialization Whether to execute DTS supports schema migration.
         * 
         * @return builder
         * 
         */
        public Builder dataInitialization(Output dataInitialization) {
            $.dataInitialization = dataInitialization;
            return this;
        }

        /**
         * @param dataInitialization Whether to execute DTS supports schema migration.
         * 
         * @return builder
         * 
         */
        public Builder dataInitialization(Boolean dataInitialization) {
            return dataInitialization(Output.of(dataInitialization));
        }

        /**
         * @param dataSynchronization Whether to perform incremental data migration.
         * 
         * @return builder
         * 
         */
        public Builder dataSynchronization(Output dataSynchronization) {
            $.dataSynchronization = dataSynchronization;
            return this;
        }

        /**
         * @param dataSynchronization Whether to perform incremental data migration.
         * 
         * @return builder
         * 
         */
        public Builder dataSynchronization(Boolean dataSynchronization) {
            return dataSynchronization(Output.of(dataSynchronization));
        }

        /**
         * @param dbList Migration object, in the format of JSON strings. For detailed definition instructions, please refer to [the description of migration, migration or subscription objects](https://help.aliyun.com/document_detail/209545.html).
         * 
         * @return builder
         * 
         */
        public Builder dbList(Output dbList) {
            $.dbList = dbList;
            return this;
        }

        /**
         * @param dbList Migration object, in the format of JSON strings. For detailed definition instructions, please refer to [the description of migration, migration or subscription objects](https://help.aliyun.com/document_detail/209545.html).
         * 
         * @return builder
         * 
         */
        public Builder dbList(String dbList) {
            return dbList(Output.of(dbList));
        }

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

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

        /**
         * @param destinationEndpointEngineName The type of destination database. Valid values: `ADS`, `ADB30`, `AS400`, `DATAHUB`, `DB2`, `GREENPLUM`, `KAFKA`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `PostgreSQL`.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointEngineName(Output destinationEndpointEngineName) {
            $.destinationEndpointEngineName = destinationEndpointEngineName;
            return this;
        }

        /**
         * @param destinationEndpointEngineName The type of destination database. Valid values: `ADS`, `ADB30`, `AS400`, `DATAHUB`, `DB2`, `GREENPLUM`, `KAFKA`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `PostgreSQL`.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointEngineName(String destinationEndpointEngineName) {
            return destinationEndpointEngineName(Output.of(destinationEndpointEngineName));
        }

        /**
         * @param destinationEndpointInstanceId The ID of destination instance.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointInstanceId(@Nullable Output destinationEndpointInstanceId) {
            $.destinationEndpointInstanceId = destinationEndpointInstanceId;
            return this;
        }

        /**
         * @param destinationEndpointInstanceId The ID of destination instance.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointInstanceId(String destinationEndpointInstanceId) {
            return destinationEndpointInstanceId(Output.of(destinationEndpointInstanceId));
        }

        /**
         * @param destinationEndpointInstanceType The type of destination instance. Valid values: `ADS`, `CEN`, `DATAHUB`, `DG`, `ECS`, `EXPRESS`, `GREENPLUM`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointInstanceType(Output destinationEndpointInstanceType) {
            $.destinationEndpointInstanceType = destinationEndpointInstanceType;
            return this;
        }

        /**
         * @param destinationEndpointInstanceType The type of destination instance. Valid values: `ADS`, `CEN`, `DATAHUB`, `DG`, `ECS`, `EXPRESS`, `GREENPLUM`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointInstanceType(String destinationEndpointInstanceType) {
            return destinationEndpointInstanceType(Output.of(destinationEndpointInstanceType));
        }

        /**
         * @param destinationEndpointIp The ip of source endpoint.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointIp(@Nullable Output destinationEndpointIp) {
            $.destinationEndpointIp = destinationEndpointIp;
            return this;
        }

        /**
         * @param destinationEndpointIp The ip of source endpoint.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointIp(String destinationEndpointIp) {
            return destinationEndpointIp(Output.of(destinationEndpointIp));
        }

        /**
         * @param destinationEndpointOracleSid The SID of Oracle database.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointOracleSid(@Nullable Output destinationEndpointOracleSid) {
            $.destinationEndpointOracleSid = destinationEndpointOracleSid;
            return this;
        }

        /**
         * @param destinationEndpointOracleSid The SID of Oracle database.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointOracleSid(String destinationEndpointOracleSid) {
            return destinationEndpointOracleSid(Output.of(destinationEndpointOracleSid));
        }

        /**
         * @param destinationEndpointPassword The password of database account.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointPassword(@Nullable Output destinationEndpointPassword) {
            $.destinationEndpointPassword = destinationEndpointPassword;
            return this;
        }

        /**
         * @param destinationEndpointPassword The password of database account.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointPassword(String destinationEndpointPassword) {
            return destinationEndpointPassword(Output.of(destinationEndpointPassword));
        }

        /**
         * @param destinationEndpointPort The port of source endpoint.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointPort(@Nullable Output destinationEndpointPort) {
            $.destinationEndpointPort = destinationEndpointPort;
            return this;
        }

        /**
         * @param destinationEndpointPort The port of source endpoint.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointPort(String destinationEndpointPort) {
            return destinationEndpointPort(Output.of(destinationEndpointPort));
        }

        /**
         * @param destinationEndpointRegion The region of destination instance.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointRegion(@Nullable Output destinationEndpointRegion) {
            $.destinationEndpointRegion = destinationEndpointRegion;
            return this;
        }

        /**
         * @param destinationEndpointRegion The region of destination instance.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointRegion(String destinationEndpointRegion) {
            return destinationEndpointRegion(Output.of(destinationEndpointRegion));
        }

        /**
         * @param destinationEndpointUserName The username of database account.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointUserName(@Nullable Output destinationEndpointUserName) {
            $.destinationEndpointUserName = destinationEndpointUserName;
            return this;
        }

        /**
         * @param destinationEndpointUserName The username of database account.
         * 
         * @return builder
         * 
         */
        public Builder destinationEndpointUserName(String destinationEndpointUserName) {
            return destinationEndpointUserName(Output.of(destinationEndpointUserName));
        }

        /**
         * @param dtsInstanceId The Migration instance ID. The ID of `alicloud.dts.MigrationInstance`.
         * 
         * @return builder
         * 
         */
        public Builder dtsInstanceId(Output dtsInstanceId) {
            $.dtsInstanceId = dtsInstanceId;
            return this;
        }

        /**
         * @param dtsInstanceId The Migration instance ID. The ID of `alicloud.dts.MigrationInstance`.
         * 
         * @return builder
         * 
         */
        public Builder dtsInstanceId(String dtsInstanceId) {
            return dtsInstanceId(Output.of(dtsInstanceId));
        }

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

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

        /**
         * @param instanceClass The instance class. Valid values: `large`, `medium`, `micro`, `small`, `xlarge`, `xxlarge`.
         * 
         * @return builder
         * 
         */
        public Builder instanceClass(@Nullable Output instanceClass) {
            $.instanceClass = instanceClass;
            return this;
        }

        /**
         * @param instanceClass The instance class. Valid values: `large`, `medium`, `micro`, `small`, `xlarge`, `xxlarge`.
         * 
         * @return builder
         * 
         */
        public Builder instanceClass(String instanceClass) {
            return instanceClass(Output.of(instanceClass));
        }

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

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

        /**
         * @param sourceEndpointEngineName The type of source database. Valid values: `AS400`, `DB2`, `DMSPOLARDB`, `HBASE`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `POSTGRESQL`, `TERADATA`.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointEngineName(Output sourceEndpointEngineName) {
            $.sourceEndpointEngineName = sourceEndpointEngineName;
            return this;
        }

        /**
         * @param sourceEndpointEngineName The type of source database. Valid values: `AS400`, `DB2`, `DMSPOLARDB`, `HBASE`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `POSTGRESQL`, `TERADATA`.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointEngineName(String sourceEndpointEngineName) {
            return sourceEndpointEngineName(Output.of(sourceEndpointEngineName));
        }

        /**
         * @param sourceEndpointInstanceId The ID of source instance.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointInstanceId(@Nullable Output sourceEndpointInstanceId) {
            $.sourceEndpointInstanceId = sourceEndpointInstanceId;
            return this;
        }

        /**
         * @param sourceEndpointInstanceId The ID of source instance.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointInstanceId(String sourceEndpointInstanceId) {
            return sourceEndpointInstanceId(Output.of(sourceEndpointInstanceId));
        }

        /**
         * @param sourceEndpointInstanceType The type of source instance. Valid values: `CEN`, `DG`, `DISTRIBUTED_DMSLOGICDB`, `ECS`, `EXPRESS`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointInstanceType(Output sourceEndpointInstanceType) {
            $.sourceEndpointInstanceType = sourceEndpointInstanceType;
            return this;
        }

        /**
         * @param sourceEndpointInstanceType The type of source instance. Valid values: `CEN`, `DG`, `DISTRIBUTED_DMSLOGICDB`, `ECS`, `EXPRESS`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointInstanceType(String sourceEndpointInstanceType) {
            return sourceEndpointInstanceType(Output.of(sourceEndpointInstanceType));
        }

        /**
         * @param sourceEndpointIp The ip of source endpoint.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointIp(@Nullable Output sourceEndpointIp) {
            $.sourceEndpointIp = sourceEndpointIp;
            return this;
        }

        /**
         * @param sourceEndpointIp The ip of source endpoint.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointIp(String sourceEndpointIp) {
            return sourceEndpointIp(Output.of(sourceEndpointIp));
        }

        /**
         * @param sourceEndpointOracleSid The SID of Oracle database.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointOracleSid(@Nullable Output sourceEndpointOracleSid) {
            $.sourceEndpointOracleSid = sourceEndpointOracleSid;
            return this;
        }

        /**
         * @param sourceEndpointOracleSid The SID of Oracle database.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointOracleSid(String sourceEndpointOracleSid) {
            return sourceEndpointOracleSid(Output.of(sourceEndpointOracleSid));
        }

        /**
         * @param sourceEndpointOwnerId The Alibaba Cloud account ID to which the source instance belongs.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointOwnerId(@Nullable Output sourceEndpointOwnerId) {
            $.sourceEndpointOwnerId = sourceEndpointOwnerId;
            return this;
        }

        /**
         * @param sourceEndpointOwnerId The Alibaba Cloud account ID to which the source instance belongs.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointOwnerId(String sourceEndpointOwnerId) {
            return sourceEndpointOwnerId(Output.of(sourceEndpointOwnerId));
        }

        /**
         * @param sourceEndpointPassword The password of database account.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointPassword(@Nullable Output sourceEndpointPassword) {
            $.sourceEndpointPassword = sourceEndpointPassword;
            return this;
        }

        /**
         * @param sourceEndpointPassword The password of database account.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointPassword(String sourceEndpointPassword) {
            return sourceEndpointPassword(Output.of(sourceEndpointPassword));
        }

        /**
         * @param sourceEndpointPort The port of source endpoint.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointPort(@Nullable Output sourceEndpointPort) {
            $.sourceEndpointPort = sourceEndpointPort;
            return this;
        }

        /**
         * @param sourceEndpointPort The port of source endpoint.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointPort(String sourceEndpointPort) {
            return sourceEndpointPort(Output.of(sourceEndpointPort));
        }

        /**
         * @param sourceEndpointRegion The region of source instance.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointRegion(@Nullable Output sourceEndpointRegion) {
            $.sourceEndpointRegion = sourceEndpointRegion;
            return this;
        }

        /**
         * @param sourceEndpointRegion The region of source instance.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointRegion(String sourceEndpointRegion) {
            return sourceEndpointRegion(Output.of(sourceEndpointRegion));
        }

        /**
         * @param sourceEndpointRole The name of the role configured for the cloud account to which the source instance belongs.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointRole(@Nullable Output sourceEndpointRole) {
            $.sourceEndpointRole = sourceEndpointRole;
            return this;
        }

        /**
         * @param sourceEndpointRole The name of the role configured for the cloud account to which the source instance belongs.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointRole(String sourceEndpointRole) {
            return sourceEndpointRole(Output.of(sourceEndpointRole));
        }

        /**
         * @param sourceEndpointUserName The username of database account.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointUserName(@Nullable Output sourceEndpointUserName) {
            $.sourceEndpointUserName = sourceEndpointUserName;
            return this;
        }

        /**
         * @param sourceEndpointUserName The username of database account.
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpointUserName(String sourceEndpointUserName) {
            return sourceEndpointUserName(Output.of(sourceEndpointUserName));
        }

        /**
         * @param status The status of the resource. Valid values: `Migrating`, `Suspending`. You can suspend the task by specifying `Suspending` and start the task by specifying `Migrating`.
         * 
         * @return builder
         * 
         */
        public Builder status(@Nullable Output status) {
            $.status = status;
            return this;
        }

        /**
         * @param status The status of the resource. Valid values: `Migrating`, `Suspending`. You can suspend the task by specifying `Suspending` and start the task by specifying `Migrating`.
         * 
         * @return builder
         * 
         */
        public Builder status(String status) {
            return status(Output.of(status));
        }

        /**
         * @param structureInitialization Whether to perform a database table structure to migrate.
         * 
         * @return builder
         * 
         */
        public Builder structureInitialization(Output structureInitialization) {
            $.structureInitialization = structureInitialization;
            return this;
        }

        /**
         * @param structureInitialization Whether to perform a database table structure to migrate.
         * 
         * @return builder
         * 
         */
        public Builder structureInitialization(Boolean structureInitialization) {
            return structureInitialization(Output.of(structureInitialization));
        }

        public MigrationJobArgs build() {
            if ($.dataInitialization == null) {
                throw new MissingRequiredPropertyException("MigrationJobArgs", "dataInitialization");
            }
            if ($.dataSynchronization == null) {
                throw new MissingRequiredPropertyException("MigrationJobArgs", "dataSynchronization");
            }
            if ($.dbList == null) {
                throw new MissingRequiredPropertyException("MigrationJobArgs", "dbList");
            }
            if ($.destinationEndpointEngineName == null) {
                throw new MissingRequiredPropertyException("MigrationJobArgs", "destinationEndpointEngineName");
            }
            if ($.destinationEndpointInstanceType == null) {
                throw new MissingRequiredPropertyException("MigrationJobArgs", "destinationEndpointInstanceType");
            }
            if ($.dtsInstanceId == null) {
                throw new MissingRequiredPropertyException("MigrationJobArgs", "dtsInstanceId");
            }
            if ($.sourceEndpointEngineName == null) {
                throw new MissingRequiredPropertyException("MigrationJobArgs", "sourceEndpointEngineName");
            }
            if ($.sourceEndpointInstanceType == null) {
                throw new MissingRequiredPropertyException("MigrationJobArgs", "sourceEndpointInstanceType");
            }
            if ($.structureInitialization == null) {
                throw new MissingRequiredPropertyException("MigrationJobArgs", "structureInitialization");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy