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

com.pulumi.aws.timestreaminfluxdb.DbInstanceArgs Maven / Gradle / Ivy

Go to download

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

There is a newer version: 6.60.0-alpha.1731982519
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.aws.timestreaminfluxdb;

import com.pulumi.aws.timestreaminfluxdb.inputs.DbInstanceLogDeliveryConfigurationArgs;
import com.pulumi.aws.timestreaminfluxdb.inputs.DbInstanceTimeoutsArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
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 DbInstanceArgs extends com.pulumi.resources.ResourceArgs {

    public static final DbInstanceArgs Empty = new DbInstanceArgs();

    /**
     * Amount of storage in GiB (gibibytes). The minimum value is 20, the maximum value is 16384.
     * 
     */
    @Import(name="allocatedStorage", required=true)
    private Output allocatedStorage;

    /**
     * @return Amount of storage in GiB (gibibytes). The minimum value is 20, the maximum value is 16384.
     * 
     */
    public Output allocatedStorage() {
        return this.allocatedStorage;
    }

    /**
     * Name of the initial InfluxDB bucket. All InfluxDB data is stored in a bucket. A bucket combines the concept of a database and a retention period (the duration of time that each data point persists). A bucket belongs to an organization. Along with `organization`, `username`, and `password`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
     * 
     */
    @Import(name="bucket", required=true)
    private Output bucket;

    /**
     * @return Name of the initial InfluxDB bucket. All InfluxDB data is stored in a bucket. A bucket combines the concept of a database and a retention period (the duration of time that each data point persists). A bucket belongs to an organization. Along with `organization`, `username`, and `password`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
     * 
     */
    public Output bucket() {
        return this.bucket;
    }

    /**
     * Timestream for InfluxDB DB instance type to run InfluxDB on. Valid options are: `"db.influx.medium"`, `"db.influx.large"`, `"db.influx.xlarge"`, `"db.influx.2xlarge"`, `"db.influx.4xlarge"`, `"db.influx.8xlarge"`, `"db.influx.12xlarge"`, and `"db.influx.16xlarge"`.
     * 
     */
    @Import(name="dbInstanceType", required=true)
    private Output dbInstanceType;

    /**
     * @return Timestream for InfluxDB DB instance type to run InfluxDB on. Valid options are: `"db.influx.medium"`, `"db.influx.large"`, `"db.influx.xlarge"`, `"db.influx.2xlarge"`, `"db.influx.4xlarge"`, `"db.influx.8xlarge"`, `"db.influx.12xlarge"`, and `"db.influx.16xlarge"`.
     * 
     */
    public Output dbInstanceType() {
        return this.dbInstanceType;
    }

    /**
     * ID of the DB parameter group assigned to your DB instance. If added to an existing Timestream for InfluxDB instance or given a new value, will cause an in-place update to the instance. However, if an instance already has a value for `db_parameter_group_identifier`, removing `db_parameter_group_identifier` will cause the instance to be destroyed and recreated.
     * 
     */
    @Import(name="dbParameterGroupIdentifier")
    private @Nullable Output dbParameterGroupIdentifier;

    /**
     * @return ID of the DB parameter group assigned to your DB instance. If added to an existing Timestream for InfluxDB instance or given a new value, will cause an in-place update to the instance. However, if an instance already has a value for `db_parameter_group_identifier`, removing `db_parameter_group_identifier` will cause the instance to be destroyed and recreated.
     * 
     */
    public Optional> dbParameterGroupIdentifier() {
        return Optional.ofNullable(this.dbParameterGroupIdentifier);
    }

    /**
     * Timestream for InfluxDB DB storage type to read and write InfluxDB data. You can choose between 3 different types of provisioned Influx IOPS included storage according to your workloads requirements: Influx IO Included 3000 IOPS, Influx IO Included 12000 IOPS, Influx IO Included 16000 IOPS. Valid options are: `"InfluxIOIncludedT1"`, `"InfluxIOIncludedT2"`, and `"InfluxIOIncludedT1"`. If you use ` "InfluxIOIncludedT2" or "InfluxIOIncludedT3", the minimum value for  `allocated_storage` is 400.
     * 
     */
    @Import(name="dbStorageType")
    private @Nullable Output dbStorageType;

    /**
     * @return Timestream for InfluxDB DB storage type to read and write InfluxDB data. You can choose between 3 different types of provisioned Influx IOPS included storage according to your workloads requirements: Influx IO Included 3000 IOPS, Influx IO Included 12000 IOPS, Influx IO Included 16000 IOPS. Valid options are: `"InfluxIOIncludedT1"`, `"InfluxIOIncludedT2"`, and `"InfluxIOIncludedT1"`. If you use ` "InfluxIOIncludedT2" or "InfluxIOIncludedT3", the minimum value for  `allocated_storage` is 400.
     * 
     */
    public Optional> dbStorageType() {
        return Optional.ofNullable(this.dbStorageType);
    }

    /**
     * Specifies whether the DB instance will be deployed as a standalone instance or with a Multi-AZ standby for high availability. Valid options are: `"SINGLE_AZ"`, `"WITH_MULTIAZ_STANDBY"`.
     * 
     */
    @Import(name="deploymentType")
    private @Nullable Output deploymentType;

    /**
     * @return Specifies whether the DB instance will be deployed as a standalone instance or with a Multi-AZ standby for high availability. Valid options are: `"SINGLE_AZ"`, `"WITH_MULTIAZ_STANDBY"`.
     * 
     */
    public Optional> deploymentType() {
        return Optional.ofNullable(this.deploymentType);
    }

    /**
     * Configuration for sending InfluxDB engine logs to a specified S3 bucket.
     * 
     */
    @Import(name="logDeliveryConfiguration")
    private @Nullable Output logDeliveryConfiguration;

    /**
     * @return Configuration for sending InfluxDB engine logs to a specified S3 bucket.
     * 
     */
    public Optional> logDeliveryConfiguration() {
        return Optional.ofNullable(this.logDeliveryConfiguration);
    }

    /**
     * Name that uniquely identifies the DB instance when interacting with the Amazon Timestream for InfluxDB API and CLI commands. This name will also be a prefix included in the endpoint. DB instance names must be unique per customer and per region. The argument must start with a letter, cannot contain consecutive hyphens (`-`) and cannot end with a hyphen.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Name that uniquely identifies the DB instance when interacting with the Amazon Timestream for InfluxDB API and CLI commands. This name will also be a prefix included in the endpoint. DB instance names must be unique per customer and per region. The argument must start with a letter, cannot contain consecutive hyphens (`-`) and cannot end with a hyphen.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Name of the initial organization for the initial admin user in InfluxDB. An InfluxDB organization is a workspace for a group of users. Along with `bucket`, `username`, and `password`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
     * 
     */
    @Import(name="organization", required=true)
    private Output organization;

    /**
     * @return Name of the initial organization for the initial admin user in InfluxDB. An InfluxDB organization is a workspace for a group of users. Along with `bucket`, `username`, and `password`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
     * 
     */
    public Output organization() {
        return this.organization;
    }

    /**
     * Password of the initial admin user created in InfluxDB. This password will allow you to access the InfluxDB UI to perform various administrative tasks and also use the InfluxDB CLI to create an operator token. Along with `bucket`, `username`, and `organization`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
     * 
     */
    @Import(name="password", required=true)
    private Output password;

    /**
     * @return Password of the initial admin user created in InfluxDB. This password will allow you to access the InfluxDB UI to perform various administrative tasks and also use the InfluxDB CLI to create an operator token. Along with `bucket`, `username`, and `organization`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
     * 
     */
    public Output password() {
        return this.password;
    }

    /**
     * Configures the DB instance with a public IP to facilitate access. Other resources, such as a VPC, a subnet, an internet gateway, and a route table with routes, are also required to enabled public access, in addition to this argument. See "Usage with Public Internet Access Enabled" for an example configuration with all required resources for public internet access.
     * 
     */
    @Import(name="publiclyAccessible")
    private @Nullable Output publiclyAccessible;

    /**
     * @return Configures the DB instance with a public IP to facilitate access. Other resources, such as a VPC, a subnet, an internet gateway, and a route table with routes, are also required to enabled public access, in addition to this argument. See "Usage with Public Internet Access Enabled" for an example configuration with all required resources for public internet access.
     * 
     */
    public Optional> publiclyAccessible() {
        return Optional.ofNullable(this.publiclyAccessible);
    }

    /**
     * Map of tags assigned to the resource. 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 Map of tags assigned to the resource. 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);
    }

    /**
     * Username of the initial admin user created in InfluxDB. Must start with a letter and can't end with a hyphen or contain two consecutive hyphens. This username will allow you to access the InfluxDB UI to perform various administrative tasks and also use the InfluxDB CLI to create an operator token. Along with `bucket`, `organization`, and `password`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
     * 
     */
    @Import(name="username", required=true)
    private Output username;

    /**
     * @return Username of the initial admin user created in InfluxDB. Must start with a letter and can't end with a hyphen or contain two consecutive hyphens. This username will allow you to access the InfluxDB UI to perform various administrative tasks and also use the InfluxDB CLI to create an operator token. Along with `bucket`, `organization`, and `password`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
     * 
     */
    public Output username() {
        return this.username;
    }

    /**
     * List of VPC security group IDs to associate with the DB instance.
     * 
     */
    @Import(name="vpcSecurityGroupIds", required=true)
    private Output> vpcSecurityGroupIds;

    /**
     * @return List of VPC security group IDs to associate with the DB instance.
     * 
     */
    public Output> vpcSecurityGroupIds() {
        return this.vpcSecurityGroupIds;
    }

    /**
     * List of VPC subnet IDs to associate with the DB instance. Provide at least two VPC subnet IDs in different availability zones when deploying with a Multi-AZ standby.
     * 
     * The following arguments are optional:
     * 
     */
    @Import(name="vpcSubnetIds", required=true)
    private Output> vpcSubnetIds;

    /**
     * @return List of VPC subnet IDs to associate with the DB instance. Provide at least two VPC subnet IDs in different availability zones when deploying with a Multi-AZ standby.
     * 
     * The following arguments are optional:
     * 
     */
    public Output> vpcSubnetIds() {
        return this.vpcSubnetIds;
    }

    private DbInstanceArgs() {}

    private DbInstanceArgs(DbInstanceArgs $) {
        this.allocatedStorage = $.allocatedStorage;
        this.bucket = $.bucket;
        this.dbInstanceType = $.dbInstanceType;
        this.dbParameterGroupIdentifier = $.dbParameterGroupIdentifier;
        this.dbStorageType = $.dbStorageType;
        this.deploymentType = $.deploymentType;
        this.logDeliveryConfiguration = $.logDeliveryConfiguration;
        this.name = $.name;
        this.organization = $.organization;
        this.password = $.password;
        this.publiclyAccessible = $.publiclyAccessible;
        this.tags = $.tags;
        this.timeouts = $.timeouts;
        this.username = $.username;
        this.vpcSecurityGroupIds = $.vpcSecurityGroupIds;
        this.vpcSubnetIds = $.vpcSubnetIds;
    }

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

    public static final class Builder {
        private DbInstanceArgs $;

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

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

        /**
         * @param allocatedStorage Amount of storage in GiB (gibibytes). The minimum value is 20, the maximum value is 16384.
         * 
         * @return builder
         * 
         */
        public Builder allocatedStorage(Output allocatedStorage) {
            $.allocatedStorage = allocatedStorage;
            return this;
        }

        /**
         * @param allocatedStorage Amount of storage in GiB (gibibytes). The minimum value is 20, the maximum value is 16384.
         * 
         * @return builder
         * 
         */
        public Builder allocatedStorage(Integer allocatedStorage) {
            return allocatedStorage(Output.of(allocatedStorage));
        }

        /**
         * @param bucket Name of the initial InfluxDB bucket. All InfluxDB data is stored in a bucket. A bucket combines the concept of a database and a retention period (the duration of time that each data point persists). A bucket belongs to an organization. Along with `organization`, `username`, and `password`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
         * 
         * @return builder
         * 
         */
        public Builder bucket(Output bucket) {
            $.bucket = bucket;
            return this;
        }

        /**
         * @param bucket Name of the initial InfluxDB bucket. All InfluxDB data is stored in a bucket. A bucket combines the concept of a database and a retention period (the duration of time that each data point persists). A bucket belongs to an organization. Along with `organization`, `username`, and `password`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
         * 
         * @return builder
         * 
         */
        public Builder bucket(String bucket) {
            return bucket(Output.of(bucket));
        }

        /**
         * @param dbInstanceType Timestream for InfluxDB DB instance type to run InfluxDB on. Valid options are: `"db.influx.medium"`, `"db.influx.large"`, `"db.influx.xlarge"`, `"db.influx.2xlarge"`, `"db.influx.4xlarge"`, `"db.influx.8xlarge"`, `"db.influx.12xlarge"`, and `"db.influx.16xlarge"`.
         * 
         * @return builder
         * 
         */
        public Builder dbInstanceType(Output dbInstanceType) {
            $.dbInstanceType = dbInstanceType;
            return this;
        }

        /**
         * @param dbInstanceType Timestream for InfluxDB DB instance type to run InfluxDB on. Valid options are: `"db.influx.medium"`, `"db.influx.large"`, `"db.influx.xlarge"`, `"db.influx.2xlarge"`, `"db.influx.4xlarge"`, `"db.influx.8xlarge"`, `"db.influx.12xlarge"`, and `"db.influx.16xlarge"`.
         * 
         * @return builder
         * 
         */
        public Builder dbInstanceType(String dbInstanceType) {
            return dbInstanceType(Output.of(dbInstanceType));
        }

        /**
         * @param dbParameterGroupIdentifier ID of the DB parameter group assigned to your DB instance. If added to an existing Timestream for InfluxDB instance or given a new value, will cause an in-place update to the instance. However, if an instance already has a value for `db_parameter_group_identifier`, removing `db_parameter_group_identifier` will cause the instance to be destroyed and recreated.
         * 
         * @return builder
         * 
         */
        public Builder dbParameterGroupIdentifier(@Nullable Output dbParameterGroupIdentifier) {
            $.dbParameterGroupIdentifier = dbParameterGroupIdentifier;
            return this;
        }

        /**
         * @param dbParameterGroupIdentifier ID of the DB parameter group assigned to your DB instance. If added to an existing Timestream for InfluxDB instance or given a new value, will cause an in-place update to the instance. However, if an instance already has a value for `db_parameter_group_identifier`, removing `db_parameter_group_identifier` will cause the instance to be destroyed and recreated.
         * 
         * @return builder
         * 
         */
        public Builder dbParameterGroupIdentifier(String dbParameterGroupIdentifier) {
            return dbParameterGroupIdentifier(Output.of(dbParameterGroupIdentifier));
        }

        /**
         * @param dbStorageType Timestream for InfluxDB DB storage type to read and write InfluxDB data. You can choose between 3 different types of provisioned Influx IOPS included storage according to your workloads requirements: Influx IO Included 3000 IOPS, Influx IO Included 12000 IOPS, Influx IO Included 16000 IOPS. Valid options are: `"InfluxIOIncludedT1"`, `"InfluxIOIncludedT2"`, and `"InfluxIOIncludedT1"`. If you use ` "InfluxIOIncludedT2" or "InfluxIOIncludedT3", the minimum value for  `allocated_storage` is 400.
         * 
         * @return builder
         * 
         */
        public Builder dbStorageType(@Nullable Output dbStorageType) {
            $.dbStorageType = dbStorageType;
            return this;
        }

        /**
         * @param dbStorageType Timestream for InfluxDB DB storage type to read and write InfluxDB data. You can choose between 3 different types of provisioned Influx IOPS included storage according to your workloads requirements: Influx IO Included 3000 IOPS, Influx IO Included 12000 IOPS, Influx IO Included 16000 IOPS. Valid options are: `"InfluxIOIncludedT1"`, `"InfluxIOIncludedT2"`, and `"InfluxIOIncludedT1"`. If you use ` "InfluxIOIncludedT2" or "InfluxIOIncludedT3", the minimum value for  `allocated_storage` is 400.
         * 
         * @return builder
         * 
         */
        public Builder dbStorageType(String dbStorageType) {
            return dbStorageType(Output.of(dbStorageType));
        }

        /**
         * @param deploymentType Specifies whether the DB instance will be deployed as a standalone instance or with a Multi-AZ standby for high availability. Valid options are: `"SINGLE_AZ"`, `"WITH_MULTIAZ_STANDBY"`.
         * 
         * @return builder
         * 
         */
        public Builder deploymentType(@Nullable Output deploymentType) {
            $.deploymentType = deploymentType;
            return this;
        }

        /**
         * @param deploymentType Specifies whether the DB instance will be deployed as a standalone instance or with a Multi-AZ standby for high availability. Valid options are: `"SINGLE_AZ"`, `"WITH_MULTIAZ_STANDBY"`.
         * 
         * @return builder
         * 
         */
        public Builder deploymentType(String deploymentType) {
            return deploymentType(Output.of(deploymentType));
        }

        /**
         * @param logDeliveryConfiguration Configuration for sending InfluxDB engine logs to a specified S3 bucket.
         * 
         * @return builder
         * 
         */
        public Builder logDeliveryConfiguration(@Nullable Output logDeliveryConfiguration) {
            $.logDeliveryConfiguration = logDeliveryConfiguration;
            return this;
        }

        /**
         * @param logDeliveryConfiguration Configuration for sending InfluxDB engine logs to a specified S3 bucket.
         * 
         * @return builder
         * 
         */
        public Builder logDeliveryConfiguration(DbInstanceLogDeliveryConfigurationArgs logDeliveryConfiguration) {
            return logDeliveryConfiguration(Output.of(logDeliveryConfiguration));
        }

        /**
         * @param name Name that uniquely identifies the DB instance when interacting with the Amazon Timestream for InfluxDB API and CLI commands. This name will also be a prefix included in the endpoint. DB instance names must be unique per customer and per region. The argument must start with a letter, cannot contain consecutive hyphens (`-`) and cannot end with a hyphen.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Name that uniquely identifies the DB instance when interacting with the Amazon Timestream for InfluxDB API and CLI commands. This name will also be a prefix included in the endpoint. DB instance names must be unique per customer and per region. The argument must start with a letter, cannot contain consecutive hyphens (`-`) and cannot end with a hyphen.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param organization Name of the initial organization for the initial admin user in InfluxDB. An InfluxDB organization is a workspace for a group of users. Along with `bucket`, `username`, and `password`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
         * 
         * @return builder
         * 
         */
        public Builder organization(Output organization) {
            $.organization = organization;
            return this;
        }

        /**
         * @param organization Name of the initial organization for the initial admin user in InfluxDB. An InfluxDB organization is a workspace for a group of users. Along with `bucket`, `username`, and `password`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
         * 
         * @return builder
         * 
         */
        public Builder organization(String organization) {
            return organization(Output.of(organization));
        }

        /**
         * @param password Password of the initial admin user created in InfluxDB. This password will allow you to access the InfluxDB UI to perform various administrative tasks and also use the InfluxDB CLI to create an operator token. Along with `bucket`, `username`, and `organization`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
         * 
         * @return builder
         * 
         */
        public Builder password(Output password) {
            $.password = password;
            return this;
        }

        /**
         * @param password Password of the initial admin user created in InfluxDB. This password will allow you to access the InfluxDB UI to perform various administrative tasks and also use the InfluxDB CLI to create an operator token. Along with `bucket`, `username`, and `organization`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
         * 
         * @return builder
         * 
         */
        public Builder password(String password) {
            return password(Output.of(password));
        }

        /**
         * @param publiclyAccessible Configures the DB instance with a public IP to facilitate access. Other resources, such as a VPC, a subnet, an internet gateway, and a route table with routes, are also required to enabled public access, in addition to this argument. See "Usage with Public Internet Access Enabled" for an example configuration with all required resources for public internet access.
         * 
         * @return builder
         * 
         */
        public Builder publiclyAccessible(@Nullable Output publiclyAccessible) {
            $.publiclyAccessible = publiclyAccessible;
            return this;
        }

        /**
         * @param publiclyAccessible Configures the DB instance with a public IP to facilitate access. Other resources, such as a VPC, a subnet, an internet gateway, and a route table with routes, are also required to enabled public access, in addition to this argument. See "Usage with Public Internet Access Enabled" for an example configuration with all required resources for public internet access.
         * 
         * @return builder
         * 
         */
        public Builder publiclyAccessible(Boolean publiclyAccessible) {
            return publiclyAccessible(Output.of(publiclyAccessible));
        }

        /**
         * @param tags Map of tags assigned to the resource. 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 Map of tags assigned to the resource. 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(DbInstanceTimeoutsArgs timeouts) {
            return timeouts(Output.of(timeouts));
        }

        /**
         * @param username Username of the initial admin user created in InfluxDB. Must start with a letter and can't end with a hyphen or contain two consecutive hyphens. This username will allow you to access the InfluxDB UI to perform various administrative tasks and also use the InfluxDB CLI to create an operator token. Along with `bucket`, `organization`, and `password`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
         * 
         * @return builder
         * 
         */
        public Builder username(Output username) {
            $.username = username;
            return this;
        }

        /**
         * @param username Username of the initial admin user created in InfluxDB. Must start with a letter and can't end with a hyphen or contain two consecutive hyphens. This username will allow you to access the InfluxDB UI to perform various administrative tasks and also use the InfluxDB CLI to create an operator token. Along with `bucket`, `organization`, and `password`, this argument will be stored in the secret referred to by the `influx_auth_parameters_secret_arn` attribute.
         * 
         * @return builder
         * 
         */
        public Builder username(String username) {
            return username(Output.of(username));
        }

        /**
         * @param vpcSecurityGroupIds List of VPC security group IDs to associate with the DB instance.
         * 
         * @return builder
         * 
         */
        public Builder vpcSecurityGroupIds(Output> vpcSecurityGroupIds) {
            $.vpcSecurityGroupIds = vpcSecurityGroupIds;
            return this;
        }

        /**
         * @param vpcSecurityGroupIds List of VPC security group IDs to associate with the DB instance.
         * 
         * @return builder
         * 
         */
        public Builder vpcSecurityGroupIds(List vpcSecurityGroupIds) {
            return vpcSecurityGroupIds(Output.of(vpcSecurityGroupIds));
        }

        /**
         * @param vpcSecurityGroupIds List of VPC security group IDs to associate with the DB instance.
         * 
         * @return builder
         * 
         */
        public Builder vpcSecurityGroupIds(String... vpcSecurityGroupIds) {
            return vpcSecurityGroupIds(List.of(vpcSecurityGroupIds));
        }

        /**
         * @param vpcSubnetIds List of VPC subnet IDs to associate with the DB instance. Provide at least two VPC subnet IDs in different availability zones when deploying with a Multi-AZ standby.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder vpcSubnetIds(Output> vpcSubnetIds) {
            $.vpcSubnetIds = vpcSubnetIds;
            return this;
        }

        /**
         * @param vpcSubnetIds List of VPC subnet IDs to associate with the DB instance. Provide at least two VPC subnet IDs in different availability zones when deploying with a Multi-AZ standby.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder vpcSubnetIds(List vpcSubnetIds) {
            return vpcSubnetIds(Output.of(vpcSubnetIds));
        }

        /**
         * @param vpcSubnetIds List of VPC subnet IDs to associate with the DB instance. Provide at least two VPC subnet IDs in different availability zones when deploying with a Multi-AZ standby.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder vpcSubnetIds(String... vpcSubnetIds) {
            return vpcSubnetIds(List.of(vpcSubnetIds));
        }

        public DbInstanceArgs build() {
            if ($.allocatedStorage == null) {
                throw new MissingRequiredPropertyException("DbInstanceArgs", "allocatedStorage");
            }
            if ($.bucket == null) {
                throw new MissingRequiredPropertyException("DbInstanceArgs", "bucket");
            }
            if ($.dbInstanceType == null) {
                throw new MissingRequiredPropertyException("DbInstanceArgs", "dbInstanceType");
            }
            if ($.organization == null) {
                throw new MissingRequiredPropertyException("DbInstanceArgs", "organization");
            }
            if ($.password == null) {
                throw new MissingRequiredPropertyException("DbInstanceArgs", "password");
            }
            if ($.username == null) {
                throw new MissingRequiredPropertyException("DbInstanceArgs", "username");
            }
            if ($.vpcSecurityGroupIds == null) {
                throw new MissingRequiredPropertyException("DbInstanceArgs", "vpcSecurityGroupIds");
            }
            if ($.vpcSubnetIds == null) {
                throw new MissingRequiredPropertyException("DbInstanceArgs", "vpcSubnetIds");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy