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

com.pulumi.azurenative.datamigration.inputs.MigrateMySqlAzureDbForMySqlOfflineTaskInputArgs Maven / Gradle / Ivy

// *** 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.datamigration.inputs;

import com.pulumi.azurenative.datamigration.inputs.MigrateMySqlAzureDbForMySqlOfflineDatabaseInputArgs;
import com.pulumi.azurenative.datamigration.inputs.MySqlConnectionInfoArgs;
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.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Input for the task that migrates MySQL databases to Azure Database for MySQL for offline migrations
 * 
 */
public final class MigrateMySqlAzureDbForMySqlOfflineTaskInputArgs extends com.pulumi.resources.ResourceArgs {

    public static final MigrateMySqlAzureDbForMySqlOfflineTaskInputArgs Empty = new MigrateMySqlAzureDbForMySqlOfflineTaskInputArgs();

    /**
     * Setting to set the source server read only
     * 
     */
    @Import(name="makeSourceServerReadOnly")
    private @Nullable Output makeSourceServerReadOnly;

    /**
     * @return Setting to set the source server read only
     * 
     */
    public Optional> makeSourceServerReadOnly() {
        return Optional.ofNullable(this.makeSourceServerReadOnly);
    }

    /**
     * Optional parameters for fine tuning the data transfer rate during migration
     * 
     */
    @Import(name="optionalAgentSettings")
    private @Nullable Output> optionalAgentSettings;

    /**
     * @return Optional parameters for fine tuning the data transfer rate during migration
     * 
     */
    public Optional>> optionalAgentSettings() {
        return Optional.ofNullable(this.optionalAgentSettings);
    }

    /**
     * Databases to migrate
     * 
     */
    @Import(name="selectedDatabases", required=true)
    private Output> selectedDatabases;

    /**
     * @return Databases to migrate
     * 
     */
    public Output> selectedDatabases() {
        return this.selectedDatabases;
    }

    /**
     * Connection information for source MySQL
     * 
     */
    @Import(name="sourceConnectionInfo", required=true)
    private Output sourceConnectionInfo;

    /**
     * @return Connection information for source MySQL
     * 
     */
    public Output sourceConnectionInfo() {
        return this.sourceConnectionInfo;
    }

    /**
     * Parameter to specify when the migration started
     * 
     */
    @Import(name="startedOn")
    private @Nullable Output startedOn;

    /**
     * @return Parameter to specify when the migration started
     * 
     */
    public Optional> startedOn() {
        return Optional.ofNullable(this.startedOn);
    }

    /**
     * Connection information for target Azure Database for MySQL
     * 
     */
    @Import(name="targetConnectionInfo", required=true)
    private Output targetConnectionInfo;

    /**
     * @return Connection information for target Azure Database for MySQL
     * 
     */
    public Output targetConnectionInfo() {
        return this.targetConnectionInfo;
    }

    private MigrateMySqlAzureDbForMySqlOfflineTaskInputArgs() {}

    private MigrateMySqlAzureDbForMySqlOfflineTaskInputArgs(MigrateMySqlAzureDbForMySqlOfflineTaskInputArgs $) {
        this.makeSourceServerReadOnly = $.makeSourceServerReadOnly;
        this.optionalAgentSettings = $.optionalAgentSettings;
        this.selectedDatabases = $.selectedDatabases;
        this.sourceConnectionInfo = $.sourceConnectionInfo;
        this.startedOn = $.startedOn;
        this.targetConnectionInfo = $.targetConnectionInfo;
    }

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

    public static final class Builder {
        private MigrateMySqlAzureDbForMySqlOfflineTaskInputArgs $;

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

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

        /**
         * @param makeSourceServerReadOnly Setting to set the source server read only
         * 
         * @return builder
         * 
         */
        public Builder makeSourceServerReadOnly(@Nullable Output makeSourceServerReadOnly) {
            $.makeSourceServerReadOnly = makeSourceServerReadOnly;
            return this;
        }

        /**
         * @param makeSourceServerReadOnly Setting to set the source server read only
         * 
         * @return builder
         * 
         */
        public Builder makeSourceServerReadOnly(Boolean makeSourceServerReadOnly) {
            return makeSourceServerReadOnly(Output.of(makeSourceServerReadOnly));
        }

        /**
         * @param optionalAgentSettings Optional parameters for fine tuning the data transfer rate during migration
         * 
         * @return builder
         * 
         */
        public Builder optionalAgentSettings(@Nullable Output> optionalAgentSettings) {
            $.optionalAgentSettings = optionalAgentSettings;
            return this;
        }

        /**
         * @param optionalAgentSettings Optional parameters for fine tuning the data transfer rate during migration
         * 
         * @return builder
         * 
         */
        public Builder optionalAgentSettings(Map optionalAgentSettings) {
            return optionalAgentSettings(Output.of(optionalAgentSettings));
        }

        /**
         * @param selectedDatabases Databases to migrate
         * 
         * @return builder
         * 
         */
        public Builder selectedDatabases(Output> selectedDatabases) {
            $.selectedDatabases = selectedDatabases;
            return this;
        }

        /**
         * @param selectedDatabases Databases to migrate
         * 
         * @return builder
         * 
         */
        public Builder selectedDatabases(List selectedDatabases) {
            return selectedDatabases(Output.of(selectedDatabases));
        }

        /**
         * @param selectedDatabases Databases to migrate
         * 
         * @return builder
         * 
         */
        public Builder selectedDatabases(MigrateMySqlAzureDbForMySqlOfflineDatabaseInputArgs... selectedDatabases) {
            return selectedDatabases(List.of(selectedDatabases));
        }

        /**
         * @param sourceConnectionInfo Connection information for source MySQL
         * 
         * @return builder
         * 
         */
        public Builder sourceConnectionInfo(Output sourceConnectionInfo) {
            $.sourceConnectionInfo = sourceConnectionInfo;
            return this;
        }

        /**
         * @param sourceConnectionInfo Connection information for source MySQL
         * 
         * @return builder
         * 
         */
        public Builder sourceConnectionInfo(MySqlConnectionInfoArgs sourceConnectionInfo) {
            return sourceConnectionInfo(Output.of(sourceConnectionInfo));
        }

        /**
         * @param startedOn Parameter to specify when the migration started
         * 
         * @return builder
         * 
         */
        public Builder startedOn(@Nullable Output startedOn) {
            $.startedOn = startedOn;
            return this;
        }

        /**
         * @param startedOn Parameter to specify when the migration started
         * 
         * @return builder
         * 
         */
        public Builder startedOn(String startedOn) {
            return startedOn(Output.of(startedOn));
        }

        /**
         * @param targetConnectionInfo Connection information for target Azure Database for MySQL
         * 
         * @return builder
         * 
         */
        public Builder targetConnectionInfo(Output targetConnectionInfo) {
            $.targetConnectionInfo = targetConnectionInfo;
            return this;
        }

        /**
         * @param targetConnectionInfo Connection information for target Azure Database for MySQL
         * 
         * @return builder
         * 
         */
        public Builder targetConnectionInfo(MySqlConnectionInfoArgs targetConnectionInfo) {
            return targetConnectionInfo(Output.of(targetConnectionInfo));
        }

        public MigrateMySqlAzureDbForMySqlOfflineTaskInputArgs build() {
            $.makeSourceServerReadOnly = Codegen.booleanProp("makeSourceServerReadOnly").output().arg($.makeSourceServerReadOnly).def(false).getNullable();
            if ($.selectedDatabases == null) {
                throw new MissingRequiredPropertyException("MigrateMySqlAzureDbForMySqlOfflineTaskInputArgs", "selectedDatabases");
            }
            if ($.sourceConnectionInfo == null) {
                throw new MissingRequiredPropertyException("MigrateMySqlAzureDbForMySqlOfflineTaskInputArgs", "sourceConnectionInfo");
            }
            if ($.targetConnectionInfo == null) {
                throw new MissingRequiredPropertyException("MigrateMySqlAzureDbForMySqlOfflineTaskInputArgs", "targetConnectionInfo");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy