org.mongodb.awscdk.resources.mongodbatlas.CfnCluster Maven / Gradle / Ivy
Show all versions of awscdk-resources-mongodbatlas Show documentation
package org.mongodb.awscdk.resources.mongodbatlas;
/**
* A CloudFormation MongoDB::Atlas::Cluster
.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.101.0 (build b95fe5d)", date = "2024-07-30T09:54:28.908Z")
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Jsii(module = org.mongodb.awscdk.resources.mongodbatlas.$Module.class, fqn = "awscdk-resources-mongodbatlas.CfnCluster")
public class CfnCluster extends software.amazon.awscdk.CfnResource {
protected CfnCluster(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
}
protected CfnCluster(final software.amazon.jsii.JsiiObject.InitializationMode initializationMode) {
super(initializationMode);
}
static {
CFN_RESOURCE_TYPE_NAME = software.amazon.jsii.JsiiObject.jsiiStaticGet(org.mongodb.awscdk.resources.mongodbatlas.CfnCluster.class, "CFN_RESOURCE_TYPE_NAME", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Create a new MongoDB::Atlas::Cluster
.
*
* @param scope
- scope in which this resource is defined.
This parameter is required.
* @param id - scoped id of the resource.
This parameter is required.
* @param props - resource properties.
This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public CfnCluster(final @org.jetbrains.annotations.NotNull software.constructs.Construct scope, final @org.jetbrains.annotations.NotNull java.lang.String id, final @org.jetbrains.annotations.NotNull org.mongodb.awscdk.resources.mongodbatlas.CfnClusterProps props) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, new Object[] { java.util.Objects.requireNonNull(scope, "scope is required"), java.util.Objects.requireNonNull(id, "id is required"), java.util.Objects.requireNonNull(props, "props is required") });
}
/**
* The CloudFormation resource type name for this resource class.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public final static java.lang.String CFN_RESOURCE_TYPE_NAME;
/**
* Attribute MongoDB::Atlas::Cluster.CreatedDate
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.NotNull java.lang.String getAttrCreatedDate() {
return software.amazon.jsii.Kernel.get(this, "attrCreatedDate", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Attribute MongoDB::Atlas::Cluster.Id
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.NotNull java.lang.String getAttrId() {
return software.amazon.jsii.Kernel.get(this, "attrId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Attribute MongoDB::Atlas::Cluster.MongoDBVersion
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.NotNull java.lang.String getAttrMongoDBVersion() {
return software.amazon.jsii.Kernel.get(this, "attrMongoDBVersion", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Attribute MongoDB::Atlas::Cluster.StateName
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.NotNull java.lang.String getAttrStateName() {
return software.amazon.jsii.Kernel.get(this, "attrStateName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Resource props.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.NotNull org.mongodb.awscdk.resources.mongodbatlas.CfnClusterProps getProps() {
return software.amazon.jsii.Kernel.get(this, "props", software.amazon.jsii.NativeType.forClass(org.mongodb.awscdk.resources.mongodbatlas.CfnClusterProps.class));
}
/**
* A fluent builder for {@link org.mongodb.awscdk.resources.mongodbatlas.CfnCluster}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
/**
* @return a new instance of {@link Builder}.
* @param scope - scope in which this resource is defined.
This parameter is required.
* @param id - scoped id of the resource.
This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static Builder create(final software.constructs.Construct scope, final java.lang.String id) {
return new Builder(scope, id);
}
private final software.constructs.Construct scope;
private final java.lang.String id;
private final org.mongodb.awscdk.resources.mongodbatlas.CfnClusterProps.Builder props;
private Builder(final software.constructs.Construct scope, final java.lang.String id) {
this.scope = scope;
this.id = id;
this.props = new org.mongodb.awscdk.resources.mongodbatlas.CfnClusterProps.Builder();
}
/**
* Human-readable label that identifies the advanced cluster.
*
* @return {@code this}
* @param name Human-readable label that identifies the advanced cluster. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder name(final java.lang.String name) {
this.props.name(name);
return this;
}
/**
* Unique identifier of the project the cluster belongs to.
*
* @return {@code this}
* @param projectId Unique identifier of the project the cluster belongs to. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder projectId(final java.lang.String projectId) {
this.props.projectId(projectId);
return this;
}
/**
* @return {@code this}
* @param advancedSettings This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder advancedSettings(final org.mongodb.awscdk.resources.mongodbatlas.ProcessArgs advancedSettings) {
this.props.advancedSettings(advancedSettings);
return this;
}
/**
* Flag that indicates whether the cluster can perform backups.
*
* If set to true, the cluster can perform backups. You must set this value to true for NVMe clusters. Backup uses Cloud Backups for dedicated clusters and Shared Cluster Backups for tenant clusters. If set to false, the cluster doesn't use backups.
*
* @return {@code this}
* @param backupEnabled Flag that indicates whether the cluster can perform backups. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder backupEnabled(final java.lang.Boolean backupEnabled) {
this.props.backupEnabled(backupEnabled);
return this;
}
/**
* Settings needed to configure the MongoDB Connector for Business Intelligence for this cluster.
*
* @return {@code this}
* @param biConnector Settings needed to configure the MongoDB Connector for Business Intelligence for this cluster. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder biConnector(final org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsBiConnector biConnector) {
this.props.biConnector(biConnector);
return this;
}
/**
* Configuration of nodes that comprise the cluster.
*
* @return {@code this}
* @param clusterType Configuration of nodes that comprise the cluster. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder clusterType(final java.lang.String clusterType) {
this.props.clusterType(clusterType);
return this;
}
/**
* Set of connection strings that your applications use to connect to this cluster.
*
* Use the parameters in this object to connect your applications to this cluster. See the MongoDB Connection String URI Format reference for further details.
*
* @return {@code this}
* @param connectionStrings Set of connection strings that your applications use to connect to this cluster. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder connectionStrings(final org.mongodb.awscdk.resources.mongodbatlas.ConnectionStrings connectionStrings) {
this.props.connectionStrings(connectionStrings);
return this;
}
/**
* Storage capacity that the host's root volume possesses expressed in gigabytes.
*
* Increase this number to add capacity. MongoDB Cloud requires this parameter if you set replicationSpecs. If you specify a disk size below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend 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 more storage space, consider upgrading your cluster to a higher tier.
*
* @return {@code this}
* @param diskSizeGb Storage capacity that the host's root volume possesses expressed in gigabytes. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder diskSizeGb(final java.lang.Number diskSizeGb) {
this.props.diskSizeGb(diskSizeGb);
return this;
}
/**
* Cloud service provider that manages your customer keys to provide an additional layer of encryption at rest for the cluster.
*
* To enable customer key management for encryption at rest, the cluster replicationSpecs[n].regionConfigs[m].{type}Specs.instanceSize setting must be M10 or higher and "backupEnabled" : false or omitted entirely.
*
* @return {@code this}
* @param encryptionAtRestProvider Cloud service provider that manages your customer keys to provide an additional layer of encryption at rest for the cluster. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder encryptionAtRestProvider(final org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsEncryptionAtRestProvider encryptionAtRestProvider) {
this.props.encryptionAtRestProvider(encryptionAtRestProvider);
return this;
}
/**
* (Optional) 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.
*
* @return {@code this}
* @param globalClusterSelfManagedSharding (Optional) Flag that indicates if cluster uses Atlas-Managed Sharding (false, default) or Self-Managed Sharding (true). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder globalClusterSelfManagedSharding(final java.lang.Boolean globalClusterSelfManagedSharding) {
this.props.globalClusterSelfManagedSharding(globalClusterSelfManagedSharding);
return this;
}
/**
* Collection of key-value pairs between 1 to 255 characters in length that tag and categorize the cluster.
*
* The MongoDB Cloud console doesn't display your labels.
*
* @return {@code this}
* @param labels Collection of key-value pairs between 1 to 255 characters in length that tag and categorize the cluster. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder labels(final java.util.List extends org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsLabels> labels) {
this.props.labels(labels);
return this;
}
/**
* Major MongoDB version of the cluster.
*
* MongoDB Cloud deploys the cluster with the latest stable release of the specified version.
*
* @return {@code this}
* @param mongoDbMajorVersion Major MongoDB version of the cluster. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder mongoDbMajorVersion(final java.lang.String mongoDbMajorVersion) {
this.props.mongoDbMajorVersion(mongoDbMajorVersion);
return this;
}
/**
* Flag that indicates whether the cluster is paused or not.
*
* @return {@code this}
* @param paused Flag that indicates whether the cluster is paused or not. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder paused(final java.lang.Boolean paused) {
this.props.paused(paused);
return this;
}
/**
* Flag that indicates whether the cluster uses continuous cloud backups.
*
* @return {@code this}
* @param pitEnabled Flag that indicates whether the cluster uses continuous cloud backups. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder pitEnabled(final java.lang.Boolean pitEnabled) {
this.props.pitEnabled(pitEnabled);
return this;
}
/**
* Profile used to provide credentials information, (a secret with the cfn/atlas/profile/{Profile}, is required), if not provided default is used.
*
* @return {@code this}
* @param profile Profile used to provide credentials information, (a secret with the cfn/atlas/profile/{Profile}, is required), if not provided default is used. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder profile(final java.lang.String profile) {
this.props.profile(profile);
return this;
}
/**
* List of settings that configure your cluster regions.
*
* For Global Clusters, each object in the array represents a zone where your clusters nodes deploy. For non-Global replica sets and sharded clusters, this array has one object representing where your clusters nodes deploy.
*
* @return {@code this}
* @param replicationSpecs List of settings that configure your cluster regions. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder replicationSpecs(final java.util.List extends org.mongodb.awscdk.resources.mongodbatlas.AdvancedReplicationSpec> replicationSpecs) {
this.props.replicationSpecs(replicationSpecs);
return this;
}
/**
* Root Certificate Authority that MongoDB Cloud cluster uses.
*
* MongoDB Cloud supports Internet Security Research Group.
*
* @return {@code this}
* @param rootCertType Root Certificate Authority that MongoDB Cloud cluster uses. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder rootCertType(final java.lang.String rootCertType) {
this.props.rootCertType(rootCertType);
return this;
}
/**
* List of settings that configure your cluster regions.
*
* For Global Clusters, each object in the array represents a zone where your clusters nodes deploy. For non-Global replica sets and sharded clusters, this array has one object representing where your clusters nodes deploy.
*
* @return {@code this}
* @param tags List of settings that configure your cluster regions. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder tags(final java.util.List extends org.mongodb.awscdk.resources.mongodbatlas.Tag> tags) {
this.props.tags(tags);
return this;
}
/**
* 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 {@code this}
* @param terminationProtectionEnabled Flag that indicates whether termination protection is enabled on the cluster. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder terminationProtectionEnabled(final java.lang.Boolean terminationProtectionEnabled) {
this.props.terminationProtectionEnabled(terminationProtectionEnabled);
return this;
}
/**
* Method by which the cluster maintains the MongoDB versions.
*
* If value is CONTINUOUS, you must not specify mongoDBMajorVersion
*
* @return {@code this}
* @param versionReleaseSystem Method by which the cluster maintains the MongoDB versions. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder versionReleaseSystem(final java.lang.String versionReleaseSystem) {
this.props.versionReleaseSystem(versionReleaseSystem);
return this;
}
/**
* @return a newly built instance of {@link org.mongodb.awscdk.resources.mongodbatlas.CfnCluster}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public org.mongodb.awscdk.resources.mongodbatlas.CfnCluster build() {
return new org.mongodb.awscdk.resources.mongodbatlas.CfnCluster(
this.scope,
this.id,
this.props.build()
);
}
}
}