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

com.pulumi.mongodbatlas.AdvancedClusterArgs 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.mongodbatlas;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import com.pulumi.mongodbatlas.inputs.AdvancedClusterAdvancedConfigurationArgs;
import com.pulumi.mongodbatlas.inputs.AdvancedClusterBiConnectorConfigArgs;
import com.pulumi.mongodbatlas.inputs.AdvancedClusterLabelArgs;
import com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;
import com.pulumi.mongodbatlas.inputs.AdvancedClusterTagArgs;
import java.lang.Boolean;
import java.lang.Double;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final AdvancedClusterArgs Empty = new AdvancedClusterArgs();

    /**
     * If reconfiguration is necessary to regain a primary due to a regional outage, submit this field alongside your topology reconfiguration to request a new regional outage resistant topology. Forced reconfigurations during an outage of the majority of electable nodes carry a risk of data loss if replicated writes (even majority committed writes) have not been replicated to the new primary node. MongoDB Atlas docs contain more information. To proceed with an operation which carries that risk, set `accept_data_risks_and_force_replica_set_reconfig` to the current date. Learn more about Reconfiguring a Replica Set during a regional outage [here](https://dochub.mongodb.org/core/regional-outage-reconfigure-replica-set).
     * 
     */
    @Import(name="acceptDataRisksAndForceReplicaSetReconfig")
    private @Nullable Output acceptDataRisksAndForceReplicaSetReconfig;

    /**
     * @return If reconfiguration is necessary to regain a primary due to a regional outage, submit this field alongside your topology reconfiguration to request a new regional outage resistant topology. Forced reconfigurations during an outage of the majority of electable nodes carry a risk of data loss if replicated writes (even majority committed writes) have not been replicated to the new primary node. MongoDB Atlas docs contain more information. To proceed with an operation which carries that risk, set `accept_data_risks_and_force_replica_set_reconfig` to the current date. Learn more about Reconfiguring a Replica Set during a regional outage [here](https://dochub.mongodb.org/core/regional-outage-reconfigure-replica-set).
     * 
     */
    public Optional> acceptDataRisksAndForceReplicaSetReconfig() {
        return Optional.ofNullable(this.acceptDataRisksAndForceReplicaSetReconfig);
    }

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

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

    /**
     * Flag that indicates whether the cluster can perform backups.
     * If `true`, the cluster can perform backups. You must set this value to `true` for NVMe clusters.
     * 
     * Backup uses:
     * [Cloud Backups](https://docs.atlas.mongodb.com/backup/cloud-backup/overview/#std-label-backup-cloud-provider) for dedicated clusters.
     * [Shared Cluster Backups](https://docs.atlas.mongodb.com/backup/shared-tier/overview/#std-label-m2-m5-snapshots) for tenant clusters.
     * If "`backup_enabled`" : `false`, the cluster doesn't use Atlas backups.
     * 
     * This parameter defaults to false.
     * 
     */
    @Import(name="backupEnabled")
    private @Nullable Output backupEnabled;

    /**
     * @return Flag that indicates whether the cluster can perform backups.
     * If `true`, the cluster can perform backups. You must set this value to `true` for NVMe clusters.
     * 
     * Backup uses:
     * [Cloud Backups](https://docs.atlas.mongodb.com/backup/cloud-backup/overview/#std-label-backup-cloud-provider) for dedicated clusters.
     * [Shared Cluster Backups](https://docs.atlas.mongodb.com/backup/shared-tier/overview/#std-label-m2-m5-snapshots) for tenant clusters.
     * If "`backup_enabled`" : `false`, the cluster doesn't use Atlas backups.
     * 
     * This parameter defaults to false.
     * 
     */
    public Optional> backupEnabled() {
        return Optional.ofNullable(this.backupEnabled);
    }

    /**
     * Configuration settings applied to BI Connector for Atlas on this cluster. The MongoDB Connector for Business Intelligence for Atlas (BI Connector) is only available for M10 and larger clusters. The BI Connector is a powerful tool which provides users SQL-based access to their MongoDB databases. As a result, the BI Connector performs operations which may be CPU and memory intensive. Given the limited hardware resources on M10 and M20 cluster tiers, you may experience performance degradation of the cluster when enabling the BI Connector. If this occurs, upgrade to an M30 or larger cluster or disable the BI Connector. See below.
     * 
     */
    @Import(name="biConnectorConfig")
    private @Nullable Output biConnectorConfig;

    /**
     * @return Configuration settings applied to BI Connector for Atlas on this cluster. The MongoDB Connector for Business Intelligence for Atlas (BI Connector) is only available for M10 and larger clusters. The BI Connector is a powerful tool which provides users SQL-based access to their MongoDB databases. As a result, the BI Connector performs operations which may be CPU and memory intensive. Given the limited hardware resources on M10 and M20 cluster tiers, you may experience performance degradation of the cluster when enabling the BI Connector. If this occurs, upgrade to an M30 or larger cluster or disable the BI Connector. See below.
     * 
     */
    public Optional> biConnectorConfig() {
        return Optional.ofNullable(this.biConnectorConfig);
    }

    /**
     * Type of the cluster that you want to create.
     * Accepted values include:
     * - `REPLICASET` Replica set
     * - `SHARDED`	Sharded cluster
     * - `GEOSHARDED` Global Cluster
     * 
     */
    @Import(name="clusterType", required=true)
    private Output clusterType;

    /**
     * @return Type of the cluster that you want to create.
     * Accepted values include:
     * - `REPLICASET` Replica set
     * - `SHARDED`	Sharded cluster
     * - `GEOSHARDED` Global Cluster
     * 
     */
    public Output clusterType() {
        return this.clusterType;
    }

    /**
     * Capacity, in gigabytes, of the host's root volume. Increase this number to add capacity, up to a maximum possible value of 4096 (4 TB). This value must be a positive number. You can't set this value with clusters with local [NVMe SSDs](https://docs.atlas.mongodb.com/cluster-tier/#std-label-nvme-storage). The minimum disk size for dedicated clusters is 10 GB for AWS and GCP. If you specify diskSizeGB with a lower disk size, Atlas defaults to the minimum disk size value. If your cluster includes Azure nodes, this value must correspond to an existing Azure disk type (8, 16, 32, 64, 128, 256, 512, 1024, 2048, or 4095)Atlas calculates storage charges differently depending on whether you choose the default value or a custom value. The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require additional storage space beyond this limitation, consider [upgrading your cluster](https://docs.atlas.mongodb.com/scale-cluster/#std-label-scale-cluster-instance) to a higher tier. If your cluster spans cloud service providers, this value defaults to the minimum default of the providers involved. **(DEPRECATED)** Use `replication_specs.#.region_config.#.(analytics_specs|electable_specs|read_only_specs).disk_size_gb` instead. To learn more, see the 1.18.0 upgrade guide.
     * 
     * @deprecated
     * This parameter is deprecated. Please refer to our examples, documentation, and 1.18.0 migration guide for more details at https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/1.18.0-upgrade-guide.html.markdown
     * 
     */
    @Deprecated /* This parameter is deprecated. Please refer to our examples, documentation, and 1.18.0 migration guide for more details at https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/1.18.0-upgrade-guide.html.markdown */
    @Import(name="diskSizeGb")
    private @Nullable Output diskSizeGb;

    /**
     * @return Capacity, in gigabytes, of the host's root volume. Increase this number to add capacity, up to a maximum possible value of 4096 (4 TB). This value must be a positive number. You can't set this value with clusters with local [NVMe SSDs](https://docs.atlas.mongodb.com/cluster-tier/#std-label-nvme-storage). The minimum disk size for dedicated clusters is 10 GB for AWS and GCP. If you specify diskSizeGB with a lower disk size, Atlas defaults to the minimum disk size value. If your cluster includes Azure nodes, this value must correspond to an existing Azure disk type (8, 16, 32, 64, 128, 256, 512, 1024, 2048, or 4095)Atlas calculates storage charges differently depending on whether you choose the default value or a custom value. The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require additional storage space beyond this limitation, consider [upgrading your cluster](https://docs.atlas.mongodb.com/scale-cluster/#std-label-scale-cluster-instance) to a higher tier. If your cluster spans cloud service providers, this value defaults to the minimum default of the providers involved. **(DEPRECATED)** Use `replication_specs.#.region_config.#.(analytics_specs|electable_specs|read_only_specs).disk_size_gb` instead. To learn more, see the 1.18.0 upgrade guide.
     * 
     * @deprecated
     * This parameter is deprecated. Please refer to our examples, documentation, and 1.18.0 migration guide for more details at https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/1.18.0-upgrade-guide.html.markdown
     * 
     */
    @Deprecated /* This parameter is deprecated. Please refer to our examples, documentation, and 1.18.0 migration guide for more details at https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/1.18.0-upgrade-guide.html.markdown */
    public Optional> diskSizeGb() {
        return Optional.ofNullable(this.diskSizeGb);
    }

    /**
     * Possible values are AWS, GCP, AZURE or NONE.  Only needed if you desire to manage the keys, see [Encryption at Rest using Customer Key Management](https://docs.atlas.mongodb.com/security-kms-encryption/) for complete documentation.  You must configure encryption at rest for the Atlas project before enabling it on any cluster in the project. For Documentation, see [AWS](https://docs.atlas.mongodb.com/security-aws-kms/), [GCP](https://docs.atlas.mongodb.com/security-kms-encryption/) and [Azure](https://docs.atlas.mongodb.com/security-azure-kms/#std-label-security-azure-kms). Requirements are if `replication_specs.#.region_configs.#.<type>Specs.instance_size` is M10 or greater and `backup_enabled` is false or omitted.
     * 
     */
    @Import(name="encryptionAtRestProvider")
    private @Nullable Output encryptionAtRestProvider;

    /**
     * @return Possible values are AWS, GCP, AZURE or NONE.  Only needed if you desire to manage the keys, see [Encryption at Rest using Customer Key Management](https://docs.atlas.mongodb.com/security-kms-encryption/) for complete documentation.  You must configure encryption at rest for the Atlas project before enabling it on any cluster in the project. For Documentation, see [AWS](https://docs.atlas.mongodb.com/security-aws-kms/), [GCP](https://docs.atlas.mongodb.com/security-kms-encryption/) and [Azure](https://docs.atlas.mongodb.com/security-azure-kms/#std-label-security-azure-kms). Requirements are if `replication_specs.#.region_configs.#.<type>Specs.instance_size` is M10 or greater and `backup_enabled` is false or omitted.
     * 
     */
    public Optional> encryptionAtRestProvider() {
        return Optional.ofNullable(this.encryptionAtRestProvider);
    }

    /**
     * Flag that indicates if cluster uses Atlas-Managed Sharding (false, default) or Self-Managed Sharding (true). It can only be enabled for Global Clusters (`GEOSHARDED`). It cannot be changed once the cluster is created. Use this mode if you're an advanced user and the default configuration is too restrictive for your workload. If you select this option, you must manually configure the sharding strategy, more info [here](https://www.mongodb.com/docs/atlas/tutorial/create-global-cluster/#select-your-sharding-configuration).
     * 
     */
    @Import(name="globalClusterSelfManagedSharding")
    private @Nullable Output globalClusterSelfManagedSharding;

    /**
     * @return Flag that indicates if cluster uses Atlas-Managed Sharding (false, default) or Self-Managed Sharding (true). It can only be enabled for Global Clusters (`GEOSHARDED`). It cannot be changed once the cluster is created. Use this mode if you're an advanced user and the default configuration is too restrictive for your workload. If you select this option, you must manually configure the sharding strategy, more info [here](https://www.mongodb.com/docs/atlas/tutorial/create-global-cluster/#select-your-sharding-configuration).
     * 
     */
    public Optional> globalClusterSelfManagedSharding() {
        return Optional.ofNullable(this.globalClusterSelfManagedSharding);
    }

    /**
     * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead.
     * 
     * @deprecated
     * This parameter is deprecated and will be removed in the future. Please transition to tags
     * 
     */
    @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */
    @Import(name="labels")
    private @Nullable Output> labels;

    /**
     * @return Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead.
     * 
     * @deprecated
     * This parameter is deprecated and will be removed in the future. Please transition to tags
     * 
     */
    @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */
    public Optional>> labels() {
        return Optional.ofNullable(this.labels);
    }

    /**
     * Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `replication_specs#.region_configs#.<type>Specs.instance_size`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 4.4. Atlas always deploys the cluster with the latest stable release of the specified version.  If you set a value to this parameter and set `version_release_system` `CONTINUOUS`, the resource returns an error. Either clear this parameter or set `version_release_system`: `LTS`.
     * 
     */
    @Import(name="mongoDbMajorVersion")
    private @Nullable Output mongoDbMajorVersion;

    /**
     * @return Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `replication_specs#.region_configs#.<type>Specs.instance_size`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 4.4. Atlas always deploys the cluster with the latest stable release of the specified version.  If you set a value to this parameter and set `version_release_system` `CONTINUOUS`, the resource returns an error. Either clear this parameter or set `version_release_system`: `LTS`.
     * 
     */
    public Optional> mongoDbMajorVersion() {
        return Optional.ofNullable(this.mongoDbMajorVersion);
    }

    /**
     * Name of the cluster as it appears in Atlas. Once the cluster is created, its name cannot be changed. **WARNING** Changing the name will result in destruction of the existing cluster and the creation of a new cluster.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Name of the cluster as it appears in Atlas. Once the cluster is created, its name cannot be changed. **WARNING** Changing the name will result in destruction of the existing cluster and the creation of a new cluster.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

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

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

    /**
     * Flag that indicates if the cluster uses Continuous Cloud Backup.
     * 
     */
    @Import(name="pitEnabled")
    private @Nullable Output pitEnabled;

    /**
     * @return Flag that indicates if the cluster uses Continuous Cloud Backup.
     * 
     */
    public Optional> pitEnabled() {
        return Optional.ofNullable(this.pitEnabled);
    }

    /**
     * Unique ID for the project to create the database user.
     * 
     */
    @Import(name="projectId", required=true)
    private Output projectId;

    /**
     * @return Unique ID for the project to create the database user.
     * 
     */
    public Output projectId() {
        return this.projectId;
    }

    /**
     * Replica set scaling mode for your cluster. Valid values are `WORKLOAD_TYPE`, `SEQUENTIAL` and `NODE_TYPE`. By default, Atlas scales under `WORKLOAD_TYPE`. This mode allows Atlas to scale your analytics nodes in parallel to your operational nodes. When configured as `SEQUENTIAL`, Atlas scales all nodes sequentially. This mode is intended for steady-state workloads and applications performing latency-sensitive secondary reads. When configured as `NODE_TYPE`, Atlas scales your electable nodes in parallel with your read-only and analytics nodes. This mode is intended for large, dynamic workloads requiring frequent and timely cluster tier scaling. This is the fastest scaling strategy, but it might impact latency of workloads when performing extensive secondary reads. [Modify the Replica Set Scaling Mode](https://dochub.mongodb.org/core/scale-nodes)
     * 
     */
    @Import(name="replicaSetScalingStrategy")
    private @Nullable Output replicaSetScalingStrategy;

    /**
     * @return Replica set scaling mode for your cluster. Valid values are `WORKLOAD_TYPE`, `SEQUENTIAL` and `NODE_TYPE`. By default, Atlas scales under `WORKLOAD_TYPE`. This mode allows Atlas to scale your analytics nodes in parallel to your operational nodes. When configured as `SEQUENTIAL`, Atlas scales all nodes sequentially. This mode is intended for steady-state workloads and applications performing latency-sensitive secondary reads. When configured as `NODE_TYPE`, Atlas scales your electable nodes in parallel with your read-only and analytics nodes. This mode is intended for large, dynamic workloads requiring frequent and timely cluster tier scaling. This is the fastest scaling strategy, but it might impact latency of workloads when performing extensive secondary reads. [Modify the Replica Set Scaling Mode](https://dochub.mongodb.org/core/scale-nodes)
     * 
     */
    public Optional> replicaSetScalingStrategy() {
        return Optional.ofNullable(this.replicaSetScalingStrategy);
    }

    /**
     * List of settings that configure your cluster regions. This attribute has one object per shard representing node configurations in each shard. For replica sets there is only one object representing node configurations. If for each replication_spec `num_shards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below
     * 
     */
    @Import(name="replicationSpecs", required=true)
    private Output> replicationSpecs;

    /**
     * @return List of settings that configure your cluster regions. This attribute has one object per shard representing node configurations in each shard. For replica sets there is only one object representing node configurations. If for each replication_spec `num_shards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below
     * 
     */
    public Output> replicationSpecs() {
        return this.replicationSpecs;
    }

    /**
     * Flag that indicates whether to retain backup snapshots for the deleted dedicated cluster
     * 
     */
    @Import(name="retainBackupsEnabled")
    private @Nullable Output retainBackupsEnabled;

    /**
     * @return Flag that indicates whether to retain backup snapshots for the deleted dedicated cluster
     * 
     */
    public Optional> retainBackupsEnabled() {
        return Optional.ofNullable(this.retainBackupsEnabled);
    }

    /**
     * Certificate Authority that MongoDB Atlas clusters use. You can specify ISRGROOTX1 (for ISRG Root X1).
     * 
     */
    @Import(name="rootCertType")
    private @Nullable Output rootCertType;

    /**
     * @return Certificate Authority that MongoDB Atlas clusters use. You can specify ISRGROOTX1 (for ISRG Root X1).
     * 
     */
    public Optional> rootCertType() {
        return Optional.ofNullable(this.rootCertType);
    }

    /**
     * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.
     * 
     */
    @Import(name="terminationProtectionEnabled")
    private @Nullable Output terminationProtectionEnabled;

    /**
     * @return Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.
     * 
     */
    public Optional> terminationProtectionEnabled() {
        return Optional.ofNullable(this.terminationProtectionEnabled);
    }

    /**
     * Release cadence that Atlas uses for this cluster. This parameter defaults to `LTS`. If you set this field to `CONTINUOUS`, you must omit the `mongo_db_major_version` field. Atlas accepts:
     * - `CONTINUOUS`:  Atlas creates your cluster using the most recent MongoDB release. Atlas automatically updates your cluster to the latest major and rapid MongoDB releases as they become available.
     * - `LTS`: Atlas creates your cluster using the latest patch release of the MongoDB version that you specify in the mongoDBMajorVersion field. Atlas automatically updates your cluster to subsequent patch releases of this MongoDB version. Atlas doesn't update your cluster to newer rapid or major MongoDB releases as they become available.
     * 
     */
    @Import(name="versionReleaseSystem")
    private @Nullable Output versionReleaseSystem;

    /**
     * @return Release cadence that Atlas uses for this cluster. This parameter defaults to `LTS`. If you set this field to `CONTINUOUS`, you must omit the `mongo_db_major_version` field. Atlas accepts:
     * - `CONTINUOUS`:  Atlas creates your cluster using the most recent MongoDB release. Atlas automatically updates your cluster to the latest major and rapid MongoDB releases as they become available.
     * - `LTS`: Atlas creates your cluster using the latest patch release of the MongoDB version that you specify in the mongoDBMajorVersion field. Atlas automatically updates your cluster to subsequent patch releases of this MongoDB version. Atlas doesn't update your cluster to newer rapid or major MongoDB releases as they become available.
     * 
     */
    public Optional> versionReleaseSystem() {
        return Optional.ofNullable(this.versionReleaseSystem);
    }

    private AdvancedClusterArgs() {}

    private AdvancedClusterArgs(AdvancedClusterArgs $) {
        this.acceptDataRisksAndForceReplicaSetReconfig = $.acceptDataRisksAndForceReplicaSetReconfig;
        this.advancedConfiguration = $.advancedConfiguration;
        this.backupEnabled = $.backupEnabled;
        this.biConnectorConfig = $.biConnectorConfig;
        this.clusterType = $.clusterType;
        this.diskSizeGb = $.diskSizeGb;
        this.encryptionAtRestProvider = $.encryptionAtRestProvider;
        this.globalClusterSelfManagedSharding = $.globalClusterSelfManagedSharding;
        this.labels = $.labels;
        this.mongoDbMajorVersion = $.mongoDbMajorVersion;
        this.name = $.name;
        this.paused = $.paused;
        this.pitEnabled = $.pitEnabled;
        this.projectId = $.projectId;
        this.replicaSetScalingStrategy = $.replicaSetScalingStrategy;
        this.replicationSpecs = $.replicationSpecs;
        this.retainBackupsEnabled = $.retainBackupsEnabled;
        this.rootCertType = $.rootCertType;
        this.tags = $.tags;
        this.terminationProtectionEnabled = $.terminationProtectionEnabled;
        this.versionReleaseSystem = $.versionReleaseSystem;
    }

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

    public static final class Builder {
        private AdvancedClusterArgs $;

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

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

        /**
         * @param acceptDataRisksAndForceReplicaSetReconfig If reconfiguration is necessary to regain a primary due to a regional outage, submit this field alongside your topology reconfiguration to request a new regional outage resistant topology. Forced reconfigurations during an outage of the majority of electable nodes carry a risk of data loss if replicated writes (even majority committed writes) have not been replicated to the new primary node. MongoDB Atlas docs contain more information. To proceed with an operation which carries that risk, set `accept_data_risks_and_force_replica_set_reconfig` to the current date. Learn more about Reconfiguring a Replica Set during a regional outage [here](https://dochub.mongodb.org/core/regional-outage-reconfigure-replica-set).
         * 
         * @return builder
         * 
         */
        public Builder acceptDataRisksAndForceReplicaSetReconfig(@Nullable Output acceptDataRisksAndForceReplicaSetReconfig) {
            $.acceptDataRisksAndForceReplicaSetReconfig = acceptDataRisksAndForceReplicaSetReconfig;
            return this;
        }

        /**
         * @param acceptDataRisksAndForceReplicaSetReconfig If reconfiguration is necessary to regain a primary due to a regional outage, submit this field alongside your topology reconfiguration to request a new regional outage resistant topology. Forced reconfigurations during an outage of the majority of electable nodes carry a risk of data loss if replicated writes (even majority committed writes) have not been replicated to the new primary node. MongoDB Atlas docs contain more information. To proceed with an operation which carries that risk, set `accept_data_risks_and_force_replica_set_reconfig` to the current date. Learn more about Reconfiguring a Replica Set during a regional outage [here](https://dochub.mongodb.org/core/regional-outage-reconfigure-replica-set).
         * 
         * @return builder
         * 
         */
        public Builder acceptDataRisksAndForceReplicaSetReconfig(String acceptDataRisksAndForceReplicaSetReconfig) {
            return acceptDataRisksAndForceReplicaSetReconfig(Output.of(acceptDataRisksAndForceReplicaSetReconfig));
        }

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

        public Builder advancedConfiguration(AdvancedClusterAdvancedConfigurationArgs advancedConfiguration) {
            return advancedConfiguration(Output.of(advancedConfiguration));
        }

        /**
         * @param backupEnabled Flag that indicates whether the cluster can perform backups.
         * If `true`, the cluster can perform backups. You must set this value to `true` for NVMe clusters.
         * 
         * Backup uses:
         * [Cloud Backups](https://docs.atlas.mongodb.com/backup/cloud-backup/overview/#std-label-backup-cloud-provider) for dedicated clusters.
         * [Shared Cluster Backups](https://docs.atlas.mongodb.com/backup/shared-tier/overview/#std-label-m2-m5-snapshots) for tenant clusters.
         * If "`backup_enabled`" : `false`, the cluster doesn't use Atlas backups.
         * 
         * This parameter defaults to false.
         * 
         * @return builder
         * 
         */
        public Builder backupEnabled(@Nullable Output backupEnabled) {
            $.backupEnabled = backupEnabled;
            return this;
        }

        /**
         * @param backupEnabled Flag that indicates whether the cluster can perform backups.
         * If `true`, the cluster can perform backups. You must set this value to `true` for NVMe clusters.
         * 
         * Backup uses:
         * [Cloud Backups](https://docs.atlas.mongodb.com/backup/cloud-backup/overview/#std-label-backup-cloud-provider) for dedicated clusters.
         * [Shared Cluster Backups](https://docs.atlas.mongodb.com/backup/shared-tier/overview/#std-label-m2-m5-snapshots) for tenant clusters.
         * If "`backup_enabled`" : `false`, the cluster doesn't use Atlas backups.
         * 
         * This parameter defaults to false.
         * 
         * @return builder
         * 
         */
        public Builder backupEnabled(Boolean backupEnabled) {
            return backupEnabled(Output.of(backupEnabled));
        }

        /**
         * @param biConnectorConfig Configuration settings applied to BI Connector for Atlas on this cluster. The MongoDB Connector for Business Intelligence for Atlas (BI Connector) is only available for M10 and larger clusters. The BI Connector is a powerful tool which provides users SQL-based access to their MongoDB databases. As a result, the BI Connector performs operations which may be CPU and memory intensive. Given the limited hardware resources on M10 and M20 cluster tiers, you may experience performance degradation of the cluster when enabling the BI Connector. If this occurs, upgrade to an M30 or larger cluster or disable the BI Connector. See below.
         * 
         * @return builder
         * 
         */
        public Builder biConnectorConfig(@Nullable Output biConnectorConfig) {
            $.biConnectorConfig = biConnectorConfig;
            return this;
        }

        /**
         * @param biConnectorConfig Configuration settings applied to BI Connector for Atlas on this cluster. The MongoDB Connector for Business Intelligence for Atlas (BI Connector) is only available for M10 and larger clusters. The BI Connector is a powerful tool which provides users SQL-based access to their MongoDB databases. As a result, the BI Connector performs operations which may be CPU and memory intensive. Given the limited hardware resources on M10 and M20 cluster tiers, you may experience performance degradation of the cluster when enabling the BI Connector. If this occurs, upgrade to an M30 or larger cluster or disable the BI Connector. See below.
         * 
         * @return builder
         * 
         */
        public Builder biConnectorConfig(AdvancedClusterBiConnectorConfigArgs biConnectorConfig) {
            return biConnectorConfig(Output.of(biConnectorConfig));
        }

        /**
         * @param clusterType Type of the cluster that you want to create.
         * Accepted values include:
         * - `REPLICASET` Replica set
         * - `SHARDED`	Sharded cluster
         * - `GEOSHARDED` Global Cluster
         * 
         * @return builder
         * 
         */
        public Builder clusterType(Output clusterType) {
            $.clusterType = clusterType;
            return this;
        }

        /**
         * @param clusterType Type of the cluster that you want to create.
         * Accepted values include:
         * - `REPLICASET` Replica set
         * - `SHARDED`	Sharded cluster
         * - `GEOSHARDED` Global Cluster
         * 
         * @return builder
         * 
         */
        public Builder clusterType(String clusterType) {
            return clusterType(Output.of(clusterType));
        }

        /**
         * @param diskSizeGb Capacity, in gigabytes, of the host's root volume. Increase this number to add capacity, up to a maximum possible value of 4096 (4 TB). This value must be a positive number. You can't set this value with clusters with local [NVMe SSDs](https://docs.atlas.mongodb.com/cluster-tier/#std-label-nvme-storage). The minimum disk size for dedicated clusters is 10 GB for AWS and GCP. If you specify diskSizeGB with a lower disk size, Atlas defaults to the minimum disk size value. If your cluster includes Azure nodes, this value must correspond to an existing Azure disk type (8, 16, 32, 64, 128, 256, 512, 1024, 2048, or 4095)Atlas calculates storage charges differently depending on whether you choose the default value or a custom value. The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require additional storage space beyond this limitation, consider [upgrading your cluster](https://docs.atlas.mongodb.com/scale-cluster/#std-label-scale-cluster-instance) to a higher tier. If your cluster spans cloud service providers, this value defaults to the minimum default of the providers involved. **(DEPRECATED)** Use `replication_specs.#.region_config.#.(analytics_specs|electable_specs|read_only_specs).disk_size_gb` instead. To learn more, see the 1.18.0 upgrade guide.
         * 
         * @return builder
         * 
         * @deprecated
         * This parameter is deprecated. Please refer to our examples, documentation, and 1.18.0 migration guide for more details at https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/1.18.0-upgrade-guide.html.markdown
         * 
         */
        @Deprecated /* This parameter is deprecated. Please refer to our examples, documentation, and 1.18.0 migration guide for more details at https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/1.18.0-upgrade-guide.html.markdown */
        public Builder diskSizeGb(@Nullable Output diskSizeGb) {
            $.diskSizeGb = diskSizeGb;
            return this;
        }

        /**
         * @param diskSizeGb Capacity, in gigabytes, of the host's root volume. Increase this number to add capacity, up to a maximum possible value of 4096 (4 TB). This value must be a positive number. You can't set this value with clusters with local [NVMe SSDs](https://docs.atlas.mongodb.com/cluster-tier/#std-label-nvme-storage). The minimum disk size for dedicated clusters is 10 GB for AWS and GCP. If you specify diskSizeGB with a lower disk size, Atlas defaults to the minimum disk size value. If your cluster includes Azure nodes, this value must correspond to an existing Azure disk type (8, 16, 32, 64, 128, 256, 512, 1024, 2048, or 4095)Atlas calculates storage charges differently depending on whether you choose the default value or a custom value. The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require additional storage space beyond this limitation, consider [upgrading your cluster](https://docs.atlas.mongodb.com/scale-cluster/#std-label-scale-cluster-instance) to a higher tier. If your cluster spans cloud service providers, this value defaults to the minimum default of the providers involved. **(DEPRECATED)** Use `replication_specs.#.region_config.#.(analytics_specs|electable_specs|read_only_specs).disk_size_gb` instead. To learn more, see the 1.18.0 upgrade guide.
         * 
         * @return builder
         * 
         * @deprecated
         * This parameter is deprecated. Please refer to our examples, documentation, and 1.18.0 migration guide for more details at https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/1.18.0-upgrade-guide.html.markdown
         * 
         */
        @Deprecated /* This parameter is deprecated. Please refer to our examples, documentation, and 1.18.0 migration guide for more details at https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/1.18.0-upgrade-guide.html.markdown */
        public Builder diskSizeGb(Double diskSizeGb) {
            return diskSizeGb(Output.of(diskSizeGb));
        }

        /**
         * @param encryptionAtRestProvider Possible values are AWS, GCP, AZURE or NONE.  Only needed if you desire to manage the keys, see [Encryption at Rest using Customer Key Management](https://docs.atlas.mongodb.com/security-kms-encryption/) for complete documentation.  You must configure encryption at rest for the Atlas project before enabling it on any cluster in the project. For Documentation, see [AWS](https://docs.atlas.mongodb.com/security-aws-kms/), [GCP](https://docs.atlas.mongodb.com/security-kms-encryption/) and [Azure](https://docs.atlas.mongodb.com/security-azure-kms/#std-label-security-azure-kms). Requirements are if `replication_specs.#.region_configs.#.<type>Specs.instance_size` is M10 or greater and `backup_enabled` is false or omitted.
         * 
         * @return builder
         * 
         */
        public Builder encryptionAtRestProvider(@Nullable Output encryptionAtRestProvider) {
            $.encryptionAtRestProvider = encryptionAtRestProvider;
            return this;
        }

        /**
         * @param encryptionAtRestProvider Possible values are AWS, GCP, AZURE or NONE.  Only needed if you desire to manage the keys, see [Encryption at Rest using Customer Key Management](https://docs.atlas.mongodb.com/security-kms-encryption/) for complete documentation.  You must configure encryption at rest for the Atlas project before enabling it on any cluster in the project. For Documentation, see [AWS](https://docs.atlas.mongodb.com/security-aws-kms/), [GCP](https://docs.atlas.mongodb.com/security-kms-encryption/) and [Azure](https://docs.atlas.mongodb.com/security-azure-kms/#std-label-security-azure-kms). Requirements are if `replication_specs.#.region_configs.#.<type>Specs.instance_size` is M10 or greater and `backup_enabled` is false or omitted.
         * 
         * @return builder
         * 
         */
        public Builder encryptionAtRestProvider(String encryptionAtRestProvider) {
            return encryptionAtRestProvider(Output.of(encryptionAtRestProvider));
        }

        /**
         * @param globalClusterSelfManagedSharding Flag that indicates if cluster uses Atlas-Managed Sharding (false, default) or Self-Managed Sharding (true). It can only be enabled for Global Clusters (`GEOSHARDED`). It cannot be changed once the cluster is created. Use this mode if you're an advanced user and the default configuration is too restrictive for your workload. If you select this option, you must manually configure the sharding strategy, more info [here](https://www.mongodb.com/docs/atlas/tutorial/create-global-cluster/#select-your-sharding-configuration).
         * 
         * @return builder
         * 
         */
        public Builder globalClusterSelfManagedSharding(@Nullable Output globalClusterSelfManagedSharding) {
            $.globalClusterSelfManagedSharding = globalClusterSelfManagedSharding;
            return this;
        }

        /**
         * @param globalClusterSelfManagedSharding Flag that indicates if cluster uses Atlas-Managed Sharding (false, default) or Self-Managed Sharding (true). It can only be enabled for Global Clusters (`GEOSHARDED`). It cannot be changed once the cluster is created. Use this mode if you're an advanced user and the default configuration is too restrictive for your workload. If you select this option, you must manually configure the sharding strategy, more info [here](https://www.mongodb.com/docs/atlas/tutorial/create-global-cluster/#select-your-sharding-configuration).
         * 
         * @return builder
         * 
         */
        public Builder globalClusterSelfManagedSharding(Boolean globalClusterSelfManagedSharding) {
            return globalClusterSelfManagedSharding(Output.of(globalClusterSelfManagedSharding));
        }

        /**
         * @param labels Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead.
         * 
         * @return builder
         * 
         * @deprecated
         * This parameter is deprecated and will be removed in the future. Please transition to tags
         * 
         */
        @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */
        public Builder labels(@Nullable Output> labels) {
            $.labels = labels;
            return this;
        }

        /**
         * @param labels Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead.
         * 
         * @return builder
         * 
         * @deprecated
         * This parameter is deprecated and will be removed in the future. Please transition to tags
         * 
         */
        @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */
        public Builder labels(List labels) {
            return labels(Output.of(labels));
        }

        /**
         * @param labels Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead.
         * 
         * @return builder
         * 
         * @deprecated
         * This parameter is deprecated and will be removed in the future. Please transition to tags
         * 
         */
        @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */
        public Builder labels(AdvancedClusterLabelArgs... labels) {
            return labels(List.of(labels));
        }

        /**
         * @param mongoDbMajorVersion Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `replication_specs#.region_configs#.<type>Specs.instance_size`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 4.4. Atlas always deploys the cluster with the latest stable release of the specified version.  If you set a value to this parameter and set `version_release_system` `CONTINUOUS`, the resource returns an error. Either clear this parameter or set `version_release_system`: `LTS`.
         * 
         * @return builder
         * 
         */
        public Builder mongoDbMajorVersion(@Nullable Output mongoDbMajorVersion) {
            $.mongoDbMajorVersion = mongoDbMajorVersion;
            return this;
        }

        /**
         * @param mongoDbMajorVersion Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `replication_specs#.region_configs#.<type>Specs.instance_size`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 4.4. Atlas always deploys the cluster with the latest stable release of the specified version.  If you set a value to this parameter and set `version_release_system` `CONTINUOUS`, the resource returns an error. Either clear this parameter or set `version_release_system`: `LTS`.
         * 
         * @return builder
         * 
         */
        public Builder mongoDbMajorVersion(String mongoDbMajorVersion) {
            return mongoDbMajorVersion(Output.of(mongoDbMajorVersion));
        }

        /**
         * @param name Name of the cluster as it appears in Atlas. Once the cluster is created, its name cannot be changed. **WARNING** Changing the name will result in destruction of the existing cluster and the creation of a new cluster.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Name of the cluster as it appears in Atlas. Once the cluster is created, its name cannot be changed. **WARNING** Changing the name will result in destruction of the existing cluster and the creation of a new cluster.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

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

        public Builder paused(Boolean paused) {
            return paused(Output.of(paused));
        }

        /**
         * @param pitEnabled Flag that indicates if the cluster uses Continuous Cloud Backup.
         * 
         * @return builder
         * 
         */
        public Builder pitEnabled(@Nullable Output pitEnabled) {
            $.pitEnabled = pitEnabled;
            return this;
        }

        /**
         * @param pitEnabled Flag that indicates if the cluster uses Continuous Cloud Backup.
         * 
         * @return builder
         * 
         */
        public Builder pitEnabled(Boolean pitEnabled) {
            return pitEnabled(Output.of(pitEnabled));
        }

        /**
         * @param projectId Unique ID for the project to create the database user.
         * 
         * @return builder
         * 
         */
        public Builder projectId(Output projectId) {
            $.projectId = projectId;
            return this;
        }

        /**
         * @param projectId Unique ID for the project to create the database user.
         * 
         * @return builder
         * 
         */
        public Builder projectId(String projectId) {
            return projectId(Output.of(projectId));
        }

        /**
         * @param replicaSetScalingStrategy Replica set scaling mode for your cluster. Valid values are `WORKLOAD_TYPE`, `SEQUENTIAL` and `NODE_TYPE`. By default, Atlas scales under `WORKLOAD_TYPE`. This mode allows Atlas to scale your analytics nodes in parallel to your operational nodes. When configured as `SEQUENTIAL`, Atlas scales all nodes sequentially. This mode is intended for steady-state workloads and applications performing latency-sensitive secondary reads. When configured as `NODE_TYPE`, Atlas scales your electable nodes in parallel with your read-only and analytics nodes. This mode is intended for large, dynamic workloads requiring frequent and timely cluster tier scaling. This is the fastest scaling strategy, but it might impact latency of workloads when performing extensive secondary reads. [Modify the Replica Set Scaling Mode](https://dochub.mongodb.org/core/scale-nodes)
         * 
         * @return builder
         * 
         */
        public Builder replicaSetScalingStrategy(@Nullable Output replicaSetScalingStrategy) {
            $.replicaSetScalingStrategy = replicaSetScalingStrategy;
            return this;
        }

        /**
         * @param replicaSetScalingStrategy Replica set scaling mode for your cluster. Valid values are `WORKLOAD_TYPE`, `SEQUENTIAL` and `NODE_TYPE`. By default, Atlas scales under `WORKLOAD_TYPE`. This mode allows Atlas to scale your analytics nodes in parallel to your operational nodes. When configured as `SEQUENTIAL`, Atlas scales all nodes sequentially. This mode is intended for steady-state workloads and applications performing latency-sensitive secondary reads. When configured as `NODE_TYPE`, Atlas scales your electable nodes in parallel with your read-only and analytics nodes. This mode is intended for large, dynamic workloads requiring frequent and timely cluster tier scaling. This is the fastest scaling strategy, but it might impact latency of workloads when performing extensive secondary reads. [Modify the Replica Set Scaling Mode](https://dochub.mongodb.org/core/scale-nodes)
         * 
         * @return builder
         * 
         */
        public Builder replicaSetScalingStrategy(String replicaSetScalingStrategy) {
            return replicaSetScalingStrategy(Output.of(replicaSetScalingStrategy));
        }

        /**
         * @param replicationSpecs List of settings that configure your cluster regions. This attribute has one object per shard representing node configurations in each shard. For replica sets there is only one object representing node configurations. If for each replication_spec `num_shards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below
         * 
         * @return builder
         * 
         */
        public Builder replicationSpecs(Output> replicationSpecs) {
            $.replicationSpecs = replicationSpecs;
            return this;
        }

        /**
         * @param replicationSpecs List of settings that configure your cluster regions. This attribute has one object per shard representing node configurations in each shard. For replica sets there is only one object representing node configurations. If for each replication_spec `num_shards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below
         * 
         * @return builder
         * 
         */
        public Builder replicationSpecs(List replicationSpecs) {
            return replicationSpecs(Output.of(replicationSpecs));
        }

        /**
         * @param replicationSpecs List of settings that configure your cluster regions. This attribute has one object per shard representing node configurations in each shard. For replica sets there is only one object representing node configurations. If for each replication_spec `num_shards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below
         * 
         * @return builder
         * 
         */
        public Builder replicationSpecs(AdvancedClusterReplicationSpecArgs... replicationSpecs) {
            return replicationSpecs(List.of(replicationSpecs));
        }

        /**
         * @param retainBackupsEnabled Flag that indicates whether to retain backup snapshots for the deleted dedicated cluster
         * 
         * @return builder
         * 
         */
        public Builder retainBackupsEnabled(@Nullable Output retainBackupsEnabled) {
            $.retainBackupsEnabled = retainBackupsEnabled;
            return this;
        }

        /**
         * @param retainBackupsEnabled Flag that indicates whether to retain backup snapshots for the deleted dedicated cluster
         * 
         * @return builder
         * 
         */
        public Builder retainBackupsEnabled(Boolean retainBackupsEnabled) {
            return retainBackupsEnabled(Output.of(retainBackupsEnabled));
        }

        /**
         * @param rootCertType Certificate Authority that MongoDB Atlas clusters use. You can specify ISRGROOTX1 (for ISRG Root X1).
         * 
         * @return builder
         * 
         */
        public Builder rootCertType(@Nullable Output rootCertType) {
            $.rootCertType = rootCertType;
            return this;
        }

        /**
         * @param rootCertType Certificate Authority that MongoDB Atlas clusters use. You can specify ISRGROOTX1 (for ISRG Root X1).
         * 
         * @return builder
         * 
         */
        public Builder rootCertType(String rootCertType) {
            return rootCertType(Output.of(rootCertType));
        }

        /**
         * @param tags Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.
         * 
         * @return builder
         * 
         */
        public Builder tags(List tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param tags Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.
         * 
         * @return builder
         * 
         */
        public Builder tags(AdvancedClusterTagArgs... tags) {
            return tags(List.of(tags));
        }

        /**
         * @param terminationProtectionEnabled Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.
         * 
         * @return builder
         * 
         */
        public Builder terminationProtectionEnabled(@Nullable Output terminationProtectionEnabled) {
            $.terminationProtectionEnabled = terminationProtectionEnabled;
            return this;
        }

        /**
         * @param terminationProtectionEnabled Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.
         * 
         * @return builder
         * 
         */
        public Builder terminationProtectionEnabled(Boolean terminationProtectionEnabled) {
            return terminationProtectionEnabled(Output.of(terminationProtectionEnabled));
        }

        /**
         * @param versionReleaseSystem Release cadence that Atlas uses for this cluster. This parameter defaults to `LTS`. If you set this field to `CONTINUOUS`, you must omit the `mongo_db_major_version` field. Atlas accepts:
         * - `CONTINUOUS`:  Atlas creates your cluster using the most recent MongoDB release. Atlas automatically updates your cluster to the latest major and rapid MongoDB releases as they become available.
         * - `LTS`: Atlas creates your cluster using the latest patch release of the MongoDB version that you specify in the mongoDBMajorVersion field. Atlas automatically updates your cluster to subsequent patch releases of this MongoDB version. Atlas doesn't update your cluster to newer rapid or major MongoDB releases as they become available.
         * 
         * @return builder
         * 
         */
        public Builder versionReleaseSystem(@Nullable Output versionReleaseSystem) {
            $.versionReleaseSystem = versionReleaseSystem;
            return this;
        }

        /**
         * @param versionReleaseSystem Release cadence that Atlas uses for this cluster. This parameter defaults to `LTS`. If you set this field to `CONTINUOUS`, you must omit the `mongo_db_major_version` field. Atlas accepts:
         * - `CONTINUOUS`:  Atlas creates your cluster using the most recent MongoDB release. Atlas automatically updates your cluster to the latest major and rapid MongoDB releases as they become available.
         * - `LTS`: Atlas creates your cluster using the latest patch release of the MongoDB version that you specify in the mongoDBMajorVersion field. Atlas automatically updates your cluster to subsequent patch releases of this MongoDB version. Atlas doesn't update your cluster to newer rapid or major MongoDB releases as they become available.
         * 
         * @return builder
         * 
         */
        public Builder versionReleaseSystem(String versionReleaseSystem) {
            return versionReleaseSystem(Output.of(versionReleaseSystem));
        }

        public AdvancedClusterArgs build() {
            if ($.clusterType == null) {
                throw new MissingRequiredPropertyException("AdvancedClusterArgs", "clusterType");
            }
            if ($.projectId == null) {
                throw new MissingRequiredPropertyException("AdvancedClusterArgs", "projectId");
            }
            if ($.replicationSpecs == null) {
                throw new MissingRequiredPropertyException("AdvancedClusterArgs", "replicationSpecs");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy