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

com.pulumi.aws.docdb.ElasticClusterArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

The 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.aws.docdb;

import com.pulumi.aws.docdb.inputs.ElasticClusterTimeoutsArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Double;
import java.lang.Integer;
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 ElasticClusterArgs extends com.pulumi.resources.ResourceArgs {

    public static final ElasticClusterArgs Empty = new ElasticClusterArgs();

    /**
     * Name of the Elastic DocumentDB cluster administrator
     * 
     */
    @Import(name="adminUserName", required=true)
    private Output adminUserName;

    /**
     * @return Name of the Elastic DocumentDB cluster administrator
     * 
     */
    public Output adminUserName() {
        return this.adminUserName;
    }

    /**
     * Password for the Elastic DocumentDB cluster administrator. Can contain any printable ASCII characters. Must be at least 8 characters
     * 
     */
    @Import(name="adminUserPassword", required=true)
    private Output adminUserPassword;

    /**
     * @return Password for the Elastic DocumentDB cluster administrator. Can contain any printable ASCII characters. Must be at least 8 characters
     * 
     */
    public Output adminUserPassword() {
        return this.adminUserPassword;
    }

    /**
     * Authentication type for the Elastic DocumentDB cluster. Valid values are `PLAIN_TEXT` and `SECRET_ARN`
     * 
     */
    @Import(name="authType", required=true)
    private Output authType;

    /**
     * @return Authentication type for the Elastic DocumentDB cluster. Valid values are `PLAIN_TEXT` and `SECRET_ARN`
     * 
     */
    public Output authType() {
        return this.authType;
    }

    /**
     * The number of days for which automatic snapshots are retained. It should be in between 1 and 35. If not specified, the default value of 1 is set.
     * 
     */
    @Import(name="backupRetentionPeriod")
    private @Nullable Output backupRetentionPeriod;

    /**
     * @return The number of days for which automatic snapshots are retained. It should be in between 1 and 35. If not specified, the default value of 1 is set.
     * 
     */
    public Optional> backupRetentionPeriod() {
        return Optional.ofNullable(this.backupRetentionPeriod);
    }

    /**
     * ARN of a KMS key that is used to encrypt the Elastic DocumentDB cluster. If not specified, the default encryption key that KMS creates for your account is used.
     * 
     */
    @Import(name="kmsKeyId")
    private @Nullable Output kmsKeyId;

    /**
     * @return ARN of a KMS key that is used to encrypt the Elastic DocumentDB cluster. If not specified, the default encryption key that KMS creates for your account is used.
     * 
     */
    public Optional> kmsKeyId() {
        return Optional.ofNullable(this.kmsKeyId);
    }

    /**
     * Name of the Elastic DocumentDB cluster
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Name of the Elastic DocumentDB cluster
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * The daily time range during which automated backups are created if automated backups are enabled, as determined by the `backup_retention_period`.
     * 
     */
    @Import(name="preferredBackupWindow")
    private @Nullable Output preferredBackupWindow;

    /**
     * @return The daily time range during which automated backups are created if automated backups are enabled, as determined by the `backup_retention_period`.
     * 
     */
    public Optional> preferredBackupWindow() {
        return Optional.ofNullable(this.preferredBackupWindow);
    }

    /**
     * Weekly time range during which system maintenance can occur in UTC. Format: `ddd:hh24:mi-ddd:hh24:mi`. If not specified, AWS will choose a random 30-minute window on a random day of the week.
     * 
     */
    @Import(name="preferredMaintenanceWindow")
    private @Nullable Output preferredMaintenanceWindow;

    /**
     * @return Weekly time range during which system maintenance can occur in UTC. Format: `ddd:hh24:mi-ddd:hh24:mi`. If not specified, AWS will choose a random 30-minute window on a random day of the week.
     * 
     */
    public Optional> preferredMaintenanceWindow() {
        return Optional.ofNullable(this.preferredMaintenanceWindow);
    }

    /**
     * Number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64
     * 
     */
    @Import(name="shardCapacity", required=true)
    private Output shardCapacity;

    /**
     * @return Number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64
     * 
     */
    public Output shardCapacity() {
        return this.shardCapacity;
    }

    /**
     * Number of shards assigned to the elastic cluster. Maximum is 32
     * 
     * The following arguments are optional:
     * 
     */
    @Import(name="shardCount", required=true)
    private Output shardCount;

    /**
     * @return Number of shards assigned to the elastic cluster. Maximum is 32
     * 
     * The following arguments are optional:
     * 
     */
    public Output shardCount() {
        return this.shardCount;
    }

    /**
     * IDs of subnets in which the Elastic DocumentDB Cluster operates.
     * 
     */
    @Import(name="subnetIds")
    private @Nullable Output> subnetIds;

    /**
     * @return IDs of subnets in which the Elastic DocumentDB Cluster operates.
     * 
     */
    public Optional>> subnetIds() {
        return Optional.ofNullable(this.subnetIds);
    }

    /**
     * A map of tags to assign to the collection. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return A map of tags to assign to the collection. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    @Import(name="timeouts")
    private @Nullable Output timeouts;

    public Optional> timeouts() {
        return Optional.ofNullable(this.timeouts);
    }

    /**
     * List of VPC security groups to associate with the Elastic DocumentDB Cluster
     * 
     */
    @Import(name="vpcSecurityGroupIds")
    private @Nullable Output> vpcSecurityGroupIds;

    /**
     * @return List of VPC security groups to associate with the Elastic DocumentDB Cluster
     * 
     */
    public Optional>> vpcSecurityGroupIds() {
        return Optional.ofNullable(this.vpcSecurityGroupIds);
    }

    private ElasticClusterArgs() {}

    private ElasticClusterArgs(ElasticClusterArgs $) {
        this.adminUserName = $.adminUserName;
        this.adminUserPassword = $.adminUserPassword;
        this.authType = $.authType;
        this.backupRetentionPeriod = $.backupRetentionPeriod;
        this.kmsKeyId = $.kmsKeyId;
        this.name = $.name;
        this.preferredBackupWindow = $.preferredBackupWindow;
        this.preferredMaintenanceWindow = $.preferredMaintenanceWindow;
        this.shardCapacity = $.shardCapacity;
        this.shardCount = $.shardCount;
        this.subnetIds = $.subnetIds;
        this.tags = $.tags;
        this.timeouts = $.timeouts;
        this.vpcSecurityGroupIds = $.vpcSecurityGroupIds;
    }

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

    public static final class Builder {
        private ElasticClusterArgs $;

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

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

        /**
         * @param adminUserName Name of the Elastic DocumentDB cluster administrator
         * 
         * @return builder
         * 
         */
        public Builder adminUserName(Output adminUserName) {
            $.adminUserName = adminUserName;
            return this;
        }

        /**
         * @param adminUserName Name of the Elastic DocumentDB cluster administrator
         * 
         * @return builder
         * 
         */
        public Builder adminUserName(String adminUserName) {
            return adminUserName(Output.of(adminUserName));
        }

        /**
         * @param adminUserPassword Password for the Elastic DocumentDB cluster administrator. Can contain any printable ASCII characters. Must be at least 8 characters
         * 
         * @return builder
         * 
         */
        public Builder adminUserPassword(Output adminUserPassword) {
            $.adminUserPassword = adminUserPassword;
            return this;
        }

        /**
         * @param adminUserPassword Password for the Elastic DocumentDB cluster administrator. Can contain any printable ASCII characters. Must be at least 8 characters
         * 
         * @return builder
         * 
         */
        public Builder adminUserPassword(String adminUserPassword) {
            return adminUserPassword(Output.of(adminUserPassword));
        }

        /**
         * @param authType Authentication type for the Elastic DocumentDB cluster. Valid values are `PLAIN_TEXT` and `SECRET_ARN`
         * 
         * @return builder
         * 
         */
        public Builder authType(Output authType) {
            $.authType = authType;
            return this;
        }

        /**
         * @param authType Authentication type for the Elastic DocumentDB cluster. Valid values are `PLAIN_TEXT` and `SECRET_ARN`
         * 
         * @return builder
         * 
         */
        public Builder authType(String authType) {
            return authType(Output.of(authType));
        }

        /**
         * @param backupRetentionPeriod The number of days for which automatic snapshots are retained. It should be in between 1 and 35. If not specified, the default value of 1 is set.
         * 
         * @return builder
         * 
         */
        public Builder backupRetentionPeriod(@Nullable Output backupRetentionPeriod) {
            $.backupRetentionPeriod = backupRetentionPeriod;
            return this;
        }

        /**
         * @param backupRetentionPeriod The number of days for which automatic snapshots are retained. It should be in between 1 and 35. If not specified, the default value of 1 is set.
         * 
         * @return builder
         * 
         */
        public Builder backupRetentionPeriod(Double backupRetentionPeriod) {
            return backupRetentionPeriod(Output.of(backupRetentionPeriod));
        }

        /**
         * @param kmsKeyId ARN of a KMS key that is used to encrypt the Elastic DocumentDB cluster. If not specified, the default encryption key that KMS creates for your account is used.
         * 
         * @return builder
         * 
         */
        public Builder kmsKeyId(@Nullable Output kmsKeyId) {
            $.kmsKeyId = kmsKeyId;
            return this;
        }

        /**
         * @param kmsKeyId ARN of a KMS key that is used to encrypt the Elastic DocumentDB cluster. If not specified, the default encryption key that KMS creates for your account is used.
         * 
         * @return builder
         * 
         */
        public Builder kmsKeyId(String kmsKeyId) {
            return kmsKeyId(Output.of(kmsKeyId));
        }

        /**
         * @param name Name of the Elastic DocumentDB cluster
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Name of the Elastic DocumentDB cluster
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param preferredBackupWindow The daily time range during which automated backups are created if automated backups are enabled, as determined by the `backup_retention_period`.
         * 
         * @return builder
         * 
         */
        public Builder preferredBackupWindow(@Nullable Output preferredBackupWindow) {
            $.preferredBackupWindow = preferredBackupWindow;
            return this;
        }

        /**
         * @param preferredBackupWindow The daily time range during which automated backups are created if automated backups are enabled, as determined by the `backup_retention_period`.
         * 
         * @return builder
         * 
         */
        public Builder preferredBackupWindow(String preferredBackupWindow) {
            return preferredBackupWindow(Output.of(preferredBackupWindow));
        }

        /**
         * @param preferredMaintenanceWindow Weekly time range during which system maintenance can occur in UTC. Format: `ddd:hh24:mi-ddd:hh24:mi`. If not specified, AWS will choose a random 30-minute window on a random day of the week.
         * 
         * @return builder
         * 
         */
        public Builder preferredMaintenanceWindow(@Nullable Output preferredMaintenanceWindow) {
            $.preferredMaintenanceWindow = preferredMaintenanceWindow;
            return this;
        }

        /**
         * @param preferredMaintenanceWindow Weekly time range during which system maintenance can occur in UTC. Format: `ddd:hh24:mi-ddd:hh24:mi`. If not specified, AWS will choose a random 30-minute window on a random day of the week.
         * 
         * @return builder
         * 
         */
        public Builder preferredMaintenanceWindow(String preferredMaintenanceWindow) {
            return preferredMaintenanceWindow(Output.of(preferredMaintenanceWindow));
        }

        /**
         * @param shardCapacity Number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64
         * 
         * @return builder
         * 
         */
        public Builder shardCapacity(Output shardCapacity) {
            $.shardCapacity = shardCapacity;
            return this;
        }

        /**
         * @param shardCapacity Number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64
         * 
         * @return builder
         * 
         */
        public Builder shardCapacity(Integer shardCapacity) {
            return shardCapacity(Output.of(shardCapacity));
        }

        /**
         * @param shardCount Number of shards assigned to the elastic cluster. Maximum is 32
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder shardCount(Output shardCount) {
            $.shardCount = shardCount;
            return this;
        }

        /**
         * @param shardCount Number of shards assigned to the elastic cluster. Maximum is 32
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder shardCount(Integer shardCount) {
            return shardCount(Output.of(shardCount));
        }

        /**
         * @param subnetIds IDs of subnets in which the Elastic DocumentDB Cluster operates.
         * 
         * @return builder
         * 
         */
        public Builder subnetIds(@Nullable Output> subnetIds) {
            $.subnetIds = subnetIds;
            return this;
        }

        /**
         * @param subnetIds IDs of subnets in which the Elastic DocumentDB Cluster operates.
         * 
         * @return builder
         * 
         */
        public Builder subnetIds(List subnetIds) {
            return subnetIds(Output.of(subnetIds));
        }

        /**
         * @param subnetIds IDs of subnets in which the Elastic DocumentDB Cluster operates.
         * 
         * @return builder
         * 
         */
        public Builder subnetIds(String... subnetIds) {
            return subnetIds(List.of(subnetIds));
        }

        /**
         * @param tags A map of tags to assign to the collection. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags A map of tags to assign to the collection. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        public Builder timeouts(@Nullable Output timeouts) {
            $.timeouts = timeouts;
            return this;
        }

        public Builder timeouts(ElasticClusterTimeoutsArgs timeouts) {
            return timeouts(Output.of(timeouts));
        }

        /**
         * @param vpcSecurityGroupIds List of VPC security groups to associate with the Elastic DocumentDB Cluster
         * 
         * @return builder
         * 
         */
        public Builder vpcSecurityGroupIds(@Nullable Output> vpcSecurityGroupIds) {
            $.vpcSecurityGroupIds = vpcSecurityGroupIds;
            return this;
        }

        /**
         * @param vpcSecurityGroupIds List of VPC security groups to associate with the Elastic DocumentDB Cluster
         * 
         * @return builder
         * 
         */
        public Builder vpcSecurityGroupIds(List vpcSecurityGroupIds) {
            return vpcSecurityGroupIds(Output.of(vpcSecurityGroupIds));
        }

        /**
         * @param vpcSecurityGroupIds List of VPC security groups to associate with the Elastic DocumentDB Cluster
         * 
         * @return builder
         * 
         */
        public Builder vpcSecurityGroupIds(String... vpcSecurityGroupIds) {
            return vpcSecurityGroupIds(List.of(vpcSecurityGroupIds));
        }

        public ElasticClusterArgs build() {
            if ($.adminUserName == null) {
                throw new MissingRequiredPropertyException("ElasticClusterArgs", "adminUserName");
            }
            if ($.adminUserPassword == null) {
                throw new MissingRequiredPropertyException("ElasticClusterArgs", "adminUserPassword");
            }
            if ($.authType == null) {
                throw new MissingRequiredPropertyException("ElasticClusterArgs", "authType");
            }
            if ($.shardCapacity == null) {
                throw new MissingRequiredPropertyException("ElasticClusterArgs", "shardCapacity");
            }
            if ($.shardCount == null) {
                throw new MissingRequiredPropertyException("ElasticClusterArgs", "shardCount");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy