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

com.pulumi.azurenative.documentdb.MongoClusterArgs 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.documentdb;

import com.pulumi.azurenative.documentdb.enums.CreateMode;
import com.pulumi.azurenative.documentdb.inputs.MongoClusterRestoreParametersArgs;
import com.pulumi.azurenative.documentdb.inputs.NodeGroupSpecArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final MongoClusterArgs Empty = new MongoClusterArgs();

    /**
     * The administrator's login for the mongo cluster.
     * 
     */
    @Import(name="administratorLogin")
    private @Nullable Output administratorLogin;

    /**
     * @return The administrator's login for the mongo cluster.
     * 
     */
    public Optional> administratorLogin() {
        return Optional.ofNullable(this.administratorLogin);
    }

    /**
     * The password of the administrator login.
     * 
     */
    @Import(name="administratorLoginPassword")
    private @Nullable Output administratorLoginPassword;

    /**
     * @return The password of the administrator login.
     * 
     */
    public Optional> administratorLoginPassword() {
        return Optional.ofNullable(this.administratorLoginPassword);
    }

    /**
     * The mode to create a mongo cluster.
     * 
     */
    @Import(name="createMode")
    private @Nullable Output> createMode;

    /**
     * @return The mode to create a mongo cluster.
     * 
     */
    public Optional>> createMode() {
        return Optional.ofNullable(this.createMode);
    }

    /**
     * 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);
    }

    /**
     * The name of the mongo cluster.
     * 
     */
    @Import(name="mongoClusterName")
    private @Nullable Output mongoClusterName;

    /**
     * @return The name of the mongo cluster.
     * 
     */
    public Optional> mongoClusterName() {
        return Optional.ofNullable(this.mongoClusterName);
    }

    /**
     * The list of node group specs in the cluster.
     * 
     */
    @Import(name="nodeGroupSpecs")
    private @Nullable Output> nodeGroupSpecs;

    /**
     * @return The list of node group specs in the cluster.
     * 
     */
    public Optional>> nodeGroupSpecs() {
        return Optional.ofNullable(this.nodeGroupSpecs);
    }

    /**
     * The name of the resource group. The name is case insensitive.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group. The name is case insensitive.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Parameters used for restore operations
     * 
     */
    @Import(name="restoreParameters")
    private @Nullable Output restoreParameters;

    /**
     * @return Parameters used for restore operations
     * 
     */
    public Optional> restoreParameters() {
        return Optional.ofNullable(this.restoreParameters);
    }

    /**
     * The Mongo DB server version. Defaults to the latest available version if not specified.
     * 
     */
    @Import(name="serverVersion")
    private @Nullable Output serverVersion;

    /**
     * @return The Mongo DB server version. Defaults to the latest available version if not specified.
     * 
     */
    public Optional> serverVersion() {
        return Optional.ofNullable(this.serverVersion);
    }

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

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

    private MongoClusterArgs() {}

    private MongoClusterArgs(MongoClusterArgs $) {
        this.administratorLogin = $.administratorLogin;
        this.administratorLoginPassword = $.administratorLoginPassword;
        this.createMode = $.createMode;
        this.location = $.location;
        this.mongoClusterName = $.mongoClusterName;
        this.nodeGroupSpecs = $.nodeGroupSpecs;
        this.resourceGroupName = $.resourceGroupName;
        this.restoreParameters = $.restoreParameters;
        this.serverVersion = $.serverVersion;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private MongoClusterArgs $;

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

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

        /**
         * @param administratorLogin The administrator's login for the mongo cluster.
         * 
         * @return builder
         * 
         */
        public Builder administratorLogin(@Nullable Output administratorLogin) {
            $.administratorLogin = administratorLogin;
            return this;
        }

        /**
         * @param administratorLogin The administrator's login for the mongo cluster.
         * 
         * @return builder
         * 
         */
        public Builder administratorLogin(String administratorLogin) {
            return administratorLogin(Output.of(administratorLogin));
        }

        /**
         * @param administratorLoginPassword The password of the administrator login.
         * 
         * @return builder
         * 
         */
        public Builder administratorLoginPassword(@Nullable Output administratorLoginPassword) {
            $.administratorLoginPassword = administratorLoginPassword;
            return this;
        }

        /**
         * @param administratorLoginPassword The password of the administrator login.
         * 
         * @return builder
         * 
         */
        public Builder administratorLoginPassword(String administratorLoginPassword) {
            return administratorLoginPassword(Output.of(administratorLoginPassword));
        }

        /**
         * @param createMode The mode to create a mongo cluster.
         * 
         * @return builder
         * 
         */
        public Builder createMode(@Nullable Output> createMode) {
            $.createMode = createMode;
            return this;
        }

        /**
         * @param createMode The mode to create a mongo cluster.
         * 
         * @return builder
         * 
         */
        public Builder createMode(Either createMode) {
            return createMode(Output.of(createMode));
        }

        /**
         * @param createMode The mode to create a mongo cluster.
         * 
         * @return builder
         * 
         */
        public Builder createMode(String createMode) {
            return createMode(Either.ofLeft(createMode));
        }

        /**
         * @param createMode The mode to create a mongo cluster.
         * 
         * @return builder
         * 
         */
        public Builder createMode(CreateMode createMode) {
            return createMode(Either.ofRight(createMode));
        }

        /**
         * @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 mongoClusterName The name of the mongo cluster.
         * 
         * @return builder
         * 
         */
        public Builder mongoClusterName(@Nullable Output mongoClusterName) {
            $.mongoClusterName = mongoClusterName;
            return this;
        }

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

        /**
         * @param nodeGroupSpecs The list of node group specs in the cluster.
         * 
         * @return builder
         * 
         */
        public Builder nodeGroupSpecs(@Nullable Output> nodeGroupSpecs) {
            $.nodeGroupSpecs = nodeGroupSpecs;
            return this;
        }

        /**
         * @param nodeGroupSpecs The list of node group specs in the cluster.
         * 
         * @return builder
         * 
         */
        public Builder nodeGroupSpecs(List nodeGroupSpecs) {
            return nodeGroupSpecs(Output.of(nodeGroupSpecs));
        }

        /**
         * @param nodeGroupSpecs The list of node group specs in the cluster.
         * 
         * @return builder
         * 
         */
        public Builder nodeGroupSpecs(NodeGroupSpecArgs... nodeGroupSpecs) {
            return nodeGroupSpecs(List.of(nodeGroupSpecs));
        }

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

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param restoreParameters Parameters used for restore operations
         * 
         * @return builder
         * 
         */
        public Builder restoreParameters(@Nullable Output restoreParameters) {
            $.restoreParameters = restoreParameters;
            return this;
        }

        /**
         * @param restoreParameters Parameters used for restore operations
         * 
         * @return builder
         * 
         */
        public Builder restoreParameters(MongoClusterRestoreParametersArgs restoreParameters) {
            return restoreParameters(Output.of(restoreParameters));
        }

        /**
         * @param serverVersion The Mongo DB server version. Defaults to the latest available version if not specified.
         * 
         * @return builder
         * 
         */
        public Builder serverVersion(@Nullable Output serverVersion) {
            $.serverVersion = serverVersion;
            return this;
        }

        /**
         * @param serverVersion The Mongo DB server version. Defaults to the latest available version if not specified.
         * 
         * @return builder
         * 
         */
        public Builder serverVersion(String serverVersion) {
            return serverVersion(Output.of(serverVersion));
        }

        /**
         * @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));
        }

        public MongoClusterArgs build() {
            $.createMode = Codegen.stringProp("createMode").left(CreateMode.class).output().arg($.createMode).def("Default").getNullable();
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("MongoClusterArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy