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

com.pulumi.azurenative.datamigration.ProjectArgs 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.datamigration;

import com.pulumi.azurenative.datamigration.enums.ProjectSourcePlatform;
import com.pulumi.azurenative.datamigration.enums.ProjectTargetPlatform;
import com.pulumi.azurenative.datamigration.inputs.DatabaseInfoArgs;
import com.pulumi.azurenative.datamigration.inputs.MiSqlConnectionInfoArgs;
import com.pulumi.azurenative.datamigration.inputs.MongoDbConnectionInfoArgs;
import com.pulumi.azurenative.datamigration.inputs.MySqlConnectionInfoArgs;
import com.pulumi.azurenative.datamigration.inputs.OracleConnectionInfoArgs;
import com.pulumi.azurenative.datamigration.inputs.PostgreSqlConnectionInfoArgs;
import com.pulumi.azurenative.datamigration.inputs.SqlConnectionInfoArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Object;
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 ProjectArgs extends com.pulumi.resources.ResourceArgs {

    public static final ProjectArgs Empty = new ProjectArgs();

    /**
     * List of DatabaseInfo
     * 
     */
    @Import(name="databasesInfo")
    private @Nullable Output> databasesInfo;

    /**
     * @return List of DatabaseInfo
     * 
     */
    public Optional>> databasesInfo() {
        return Optional.ofNullable(this.databasesInfo);
    }

    /**
     * Name of the resource group
     * 
     */
    @Import(name="groupName", required=true)
    private Output groupName;

    /**
     * @return Name of the resource group
     * 
     */
    public Output groupName() {
        return this.groupName;
    }

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

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

    /**
     * Name of the project
     * 
     */
    @Import(name="projectName")
    private @Nullable Output projectName;

    /**
     * @return Name of the project
     * 
     */
    public Optional> projectName() {
        return Optional.ofNullable(this.projectName);
    }

    /**
     * Name of the service
     * 
     */
    @Import(name="serviceName", required=true)
    private Output serviceName;

    /**
     * @return Name of the service
     * 
     */
    public Output serviceName() {
        return this.serviceName;
    }

    /**
     * Information for connecting to source
     * 
     */
    @Import(name="sourceConnectionInfo")
    private @Nullable Output sourceConnectionInfo;

    /**
     * @return Information for connecting to source
     * 
     */
    public Optional> sourceConnectionInfo() {
        return Optional.ofNullable(this.sourceConnectionInfo);
    }

    /**
     * Source platform for the project
     * 
     */
    @Import(name="sourcePlatform", required=true)
    private Output> sourcePlatform;

    /**
     * @return Source platform for the project
     * 
     */
    public Output> sourcePlatform() {
        return this.sourcePlatform;
    }

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

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

    /**
     * Information for connecting to target
     * 
     */
    @Import(name="targetConnectionInfo")
    private @Nullable Output targetConnectionInfo;

    /**
     * @return Information for connecting to target
     * 
     */
    public Optional> targetConnectionInfo() {
        return Optional.ofNullable(this.targetConnectionInfo);
    }

    /**
     * Target platform for the project
     * 
     */
    @Import(name="targetPlatform", required=true)
    private Output> targetPlatform;

    /**
     * @return Target platform for the project
     * 
     */
    public Output> targetPlatform() {
        return this.targetPlatform;
    }

    private ProjectArgs() {}

    private ProjectArgs(ProjectArgs $) {
        this.databasesInfo = $.databasesInfo;
        this.groupName = $.groupName;
        this.location = $.location;
        this.projectName = $.projectName;
        this.serviceName = $.serviceName;
        this.sourceConnectionInfo = $.sourceConnectionInfo;
        this.sourcePlatform = $.sourcePlatform;
        this.tags = $.tags;
        this.targetConnectionInfo = $.targetConnectionInfo;
        this.targetPlatform = $.targetPlatform;
    }

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

    public static final class Builder {
        private ProjectArgs $;

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

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

        /**
         * @param databasesInfo List of DatabaseInfo
         * 
         * @return builder
         * 
         */
        public Builder databasesInfo(@Nullable Output> databasesInfo) {
            $.databasesInfo = databasesInfo;
            return this;
        }

        /**
         * @param databasesInfo List of DatabaseInfo
         * 
         * @return builder
         * 
         */
        public Builder databasesInfo(List databasesInfo) {
            return databasesInfo(Output.of(databasesInfo));
        }

        /**
         * @param databasesInfo List of DatabaseInfo
         * 
         * @return builder
         * 
         */
        public Builder databasesInfo(DatabaseInfoArgs... databasesInfo) {
            return databasesInfo(List.of(databasesInfo));
        }

        /**
         * @param groupName Name of the resource group
         * 
         * @return builder
         * 
         */
        public Builder groupName(Output groupName) {
            $.groupName = groupName;
            return this;
        }

        /**
         * @param groupName Name of the resource group
         * 
         * @return builder
         * 
         */
        public Builder groupName(String groupName) {
            return groupName(Output.of(groupName));
        }

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

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

        /**
         * @param projectName Name of the project
         * 
         * @return builder
         * 
         */
        public Builder projectName(@Nullable Output projectName) {
            $.projectName = projectName;
            return this;
        }

        /**
         * @param projectName Name of the project
         * 
         * @return builder
         * 
         */
        public Builder projectName(String projectName) {
            return projectName(Output.of(projectName));
        }

        /**
         * @param serviceName Name of the service
         * 
         * @return builder
         * 
         */
        public Builder serviceName(Output serviceName) {
            $.serviceName = serviceName;
            return this;
        }

        /**
         * @param serviceName Name of the service
         * 
         * @return builder
         * 
         */
        public Builder serviceName(String serviceName) {
            return serviceName(Output.of(serviceName));
        }

        /**
         * @param sourceConnectionInfo Information for connecting to source
         * 
         * @return builder
         * 
         */
        public Builder sourceConnectionInfo(@Nullable Output sourceConnectionInfo) {
            $.sourceConnectionInfo = sourceConnectionInfo;
            return this;
        }

        /**
         * @param sourceConnectionInfo Information for connecting to source
         * 
         * @return builder
         * 
         */
        public Builder sourceConnectionInfo(Object sourceConnectionInfo) {
            return sourceConnectionInfo(Output.of(sourceConnectionInfo));
        }

        /**
         * @param sourcePlatform Source platform for the project
         * 
         * @return builder
         * 
         */
        public Builder sourcePlatform(Output> sourcePlatform) {
            $.sourcePlatform = sourcePlatform;
            return this;
        }

        /**
         * @param sourcePlatform Source platform for the project
         * 
         * @return builder
         * 
         */
        public Builder sourcePlatform(Either sourcePlatform) {
            return sourcePlatform(Output.of(sourcePlatform));
        }

        /**
         * @param sourcePlatform Source platform for the project
         * 
         * @return builder
         * 
         */
        public Builder sourcePlatform(String sourcePlatform) {
            return sourcePlatform(Either.ofLeft(sourcePlatform));
        }

        /**
         * @param sourcePlatform Source platform for the project
         * 
         * @return builder
         * 
         */
        public Builder sourcePlatform(ProjectSourcePlatform sourcePlatform) {
            return sourcePlatform(Either.ofRight(sourcePlatform));
        }

        /**
         * @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 targetConnectionInfo Information for connecting to target
         * 
         * @return builder
         * 
         */
        public Builder targetConnectionInfo(@Nullable Output targetConnectionInfo) {
            $.targetConnectionInfo = targetConnectionInfo;
            return this;
        }

        /**
         * @param targetConnectionInfo Information for connecting to target
         * 
         * @return builder
         * 
         */
        public Builder targetConnectionInfo(Object targetConnectionInfo) {
            return targetConnectionInfo(Output.of(targetConnectionInfo));
        }

        /**
         * @param targetPlatform Target platform for the project
         * 
         * @return builder
         * 
         */
        public Builder targetPlatform(Output> targetPlatform) {
            $.targetPlatform = targetPlatform;
            return this;
        }

        /**
         * @param targetPlatform Target platform for the project
         * 
         * @return builder
         * 
         */
        public Builder targetPlatform(Either targetPlatform) {
            return targetPlatform(Output.of(targetPlatform));
        }

        /**
         * @param targetPlatform Target platform for the project
         * 
         * @return builder
         * 
         */
        public Builder targetPlatform(String targetPlatform) {
            return targetPlatform(Either.ofLeft(targetPlatform));
        }

        /**
         * @param targetPlatform Target platform for the project
         * 
         * @return builder
         * 
         */
        public Builder targetPlatform(ProjectTargetPlatform targetPlatform) {
            return targetPlatform(Either.ofRight(targetPlatform));
        }

        public ProjectArgs build() {
            if ($.groupName == null) {
                throw new MissingRequiredPropertyException("ProjectArgs", "groupName");
            }
            if ($.serviceName == null) {
                throw new MissingRequiredPropertyException("ProjectArgs", "serviceName");
            }
            if ($.sourcePlatform == null) {
                throw new MissingRequiredPropertyException("ProjectArgs", "sourcePlatform");
            }
            if ($.targetPlatform == null) {
                throw new MissingRequiredPropertyException("ProjectArgs", "targetPlatform");
            }
            return $;
        }
    }

}