org.mongodb.awscdk.resources.mongodbatlas.CfnClusterProps Maven / Gradle / Ivy
Show all versions of awscdk-resources-mongodbatlas Show documentation
package org.mongodb.awscdk.resources.mongodbatlas;
/**
* The cluster resource provides access to your cluster configurations.
*
* The resource lets you create, edit and delete clusters. The resource requires your Project ID.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.101.0 (build b95fe5d)", date = "2024-07-30T09:54:28.913Z")
@software.amazon.jsii.Jsii(module = org.mongodb.awscdk.resources.mongodbatlas.$Module.class, fqn = "awscdk-resources-mongodbatlas.CfnClusterProps")
@software.amazon.jsii.Jsii.Proxy(CfnClusterProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public interface CfnClusterProps extends software.amazon.jsii.JsiiSerializable {
/**
* Human-readable label that identifies the advanced cluster.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull java.lang.String getName();
/**
* Unique identifier of the project the cluster belongs to.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull java.lang.String getProjectId();
/**
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable org.mongodb.awscdk.resources.mongodbatlas.ProcessArgs getAdvancedSettings() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getBackupEnabled() {
return null;
}
/**
* Settings needed to configure the MongoDB Connector for Business Intelligence for this cluster.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsBiConnector getBiConnector() {
return null;
}
/**
* Configuration of nodes that comprise the cluster.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getClusterType() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable org.mongodb.awscdk.resources.mongodbatlas.ConnectionStrings getConnectionStrings() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getDiskSizeGb() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsEncryptionAtRestProvider getEncryptionAtRestProvider() {
return null;
}
/**
* (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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getGlobalClusterSelfManagedSharding() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.util.List getLabels() {
return null;
}
/**
* Major MongoDB version of the cluster.
*
* MongoDB Cloud deploys the cluster with the latest stable release of the specified version.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getMongoDbMajorVersion() {
return null;
}
/**
* Flag that indicates whether the cluster is paused or not.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getPaused() {
return null;
}
/**
* Flag that indicates whether the cluster uses continuous cloud backups.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getPitEnabled() {
return null;
}
/**
* Profile used to provide credentials information, (a secret with the cfn/atlas/profile/{Profile}, is required), if not provided default is used.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getProfile() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.util.List getReplicationSpecs() {
return null;
}
/**
* Root Certificate Authority that MongoDB Cloud cluster uses.
*
* MongoDB Cloud supports Internet Security Research Group.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getRootCertType() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.util.List getTags() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getTerminationProtectionEnabled() {
return null;
}
/**
* Method by which the cluster maintains the MongoDB versions.
*
* If value is CONTINUOUS, you must not specify mongoDBMajorVersion
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getVersionReleaseSystem() {
return null;
}
/**
* @return a {@link Builder} of {@link CfnClusterProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link CfnClusterProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String name;
java.lang.String projectId;
org.mongodb.awscdk.resources.mongodbatlas.ProcessArgs advancedSettings;
java.lang.Boolean backupEnabled;
org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsBiConnector biConnector;
java.lang.String clusterType;
org.mongodb.awscdk.resources.mongodbatlas.ConnectionStrings connectionStrings;
java.lang.Number diskSizeGb;
org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsEncryptionAtRestProvider encryptionAtRestProvider;
java.lang.Boolean globalClusterSelfManagedSharding;
java.util.List labels;
java.lang.String mongoDbMajorVersion;
java.lang.Boolean paused;
java.lang.Boolean pitEnabled;
java.lang.String profile;
java.util.List replicationSpecs;
java.lang.String rootCertType;
java.util.List tags;
java.lang.Boolean terminationProtectionEnabled;
java.lang.String versionReleaseSystem;
/**
* Sets the value of {@link CfnClusterProps#getName}
* @param name Human-readable label that identifies the advanced cluster. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder name(java.lang.String name) {
this.name = name;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getProjectId}
* @param projectId Unique identifier of the project the cluster belongs to. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder projectId(java.lang.String projectId) {
this.projectId = projectId;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getAdvancedSettings}
* @param advancedSettings the value to be set.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder advancedSettings(org.mongodb.awscdk.resources.mongodbatlas.ProcessArgs advancedSettings) {
this.advancedSettings = advancedSettings;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getBackupEnabled}
* @param backupEnabled 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}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder backupEnabled(java.lang.Boolean backupEnabled) {
this.backupEnabled = backupEnabled;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getBiConnector}
* @param biConnector Settings needed to configure the MongoDB Connector for Business Intelligence for this cluster.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder biConnector(org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsBiConnector biConnector) {
this.biConnector = biConnector;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getClusterType}
* @param clusterType Configuration of nodes that comprise the cluster.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder clusterType(java.lang.String clusterType) {
this.clusterType = clusterType;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getConnectionStrings}
* @param connectionStrings 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}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder connectionStrings(org.mongodb.awscdk.resources.mongodbatlas.ConnectionStrings connectionStrings) {
this.connectionStrings = connectionStrings;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getDiskSizeGb}
* @param diskSizeGb 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}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder diskSizeGb(java.lang.Number diskSizeGb) {
this.diskSizeGb = diskSizeGb;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getEncryptionAtRestProvider}
* @param encryptionAtRestProvider 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}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder encryptionAtRestProvider(org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsEncryptionAtRestProvider encryptionAtRestProvider) {
this.encryptionAtRestProvider = encryptionAtRestProvider;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getGlobalClusterSelfManagedSharding}
* @param globalClusterSelfManagedSharding (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}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder globalClusterSelfManagedSharding(java.lang.Boolean globalClusterSelfManagedSharding) {
this.globalClusterSelfManagedSharding = globalClusterSelfManagedSharding;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getLabels}
* @param labels 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}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder labels(java.util.List extends org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsLabels> labels) {
this.labels = (java.util.List)labels;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getMongoDbMajorVersion}
* @param mongoDbMajorVersion Major MongoDB version of the cluster.
* MongoDB Cloud deploys the cluster with the latest stable release of the specified version.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder mongoDbMajorVersion(java.lang.String mongoDbMajorVersion) {
this.mongoDbMajorVersion = mongoDbMajorVersion;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getPaused}
* @param paused Flag that indicates whether the cluster is paused or not.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder paused(java.lang.Boolean paused) {
this.paused = paused;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getPitEnabled}
* @param pitEnabled Flag that indicates whether the cluster uses continuous cloud backups.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder pitEnabled(java.lang.Boolean pitEnabled) {
this.pitEnabled = pitEnabled;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getProfile}
* @param profile 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}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder profile(java.lang.String profile) {
this.profile = profile;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getReplicationSpecs}
* @param replicationSpecs 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}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder replicationSpecs(java.util.List extends org.mongodb.awscdk.resources.mongodbatlas.AdvancedReplicationSpec> replicationSpecs) {
this.replicationSpecs = (java.util.List)replicationSpecs;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getRootCertType}
* @param rootCertType Root Certificate Authority that MongoDB Cloud cluster uses.
* MongoDB Cloud supports Internet Security Research Group.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder rootCertType(java.lang.String rootCertType) {
this.rootCertType = rootCertType;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getTags}
* @param tags 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}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder tags(java.util.List extends org.mongodb.awscdk.resources.mongodbatlas.Tag> tags) {
this.tags = (java.util.List)tags;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getTerminationProtectionEnabled}
* @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 {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder terminationProtectionEnabled(java.lang.Boolean terminationProtectionEnabled) {
this.terminationProtectionEnabled = terminationProtectionEnabled;
return this;
}
/**
* Sets the value of {@link CfnClusterProps#getVersionReleaseSystem}
* @param versionReleaseSystem Method by which the cluster maintains the MongoDB versions.
* If value is CONTINUOUS, you must not specify mongoDBMajorVersion
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder versionReleaseSystem(java.lang.String versionReleaseSystem) {
this.versionReleaseSystem = versionReleaseSystem;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link CfnClusterProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public CfnClusterProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link CfnClusterProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements CfnClusterProps {
private final java.lang.String name;
private final java.lang.String projectId;
private final org.mongodb.awscdk.resources.mongodbatlas.ProcessArgs advancedSettings;
private final java.lang.Boolean backupEnabled;
private final org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsBiConnector biConnector;
private final java.lang.String clusterType;
private final org.mongodb.awscdk.resources.mongodbatlas.ConnectionStrings connectionStrings;
private final java.lang.Number diskSizeGb;
private final org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsEncryptionAtRestProvider encryptionAtRestProvider;
private final java.lang.Boolean globalClusterSelfManagedSharding;
private final java.util.List labels;
private final java.lang.String mongoDbMajorVersion;
private final java.lang.Boolean paused;
private final java.lang.Boolean pitEnabled;
private final java.lang.String profile;
private final java.util.List replicationSpecs;
private final java.lang.String rootCertType;
private final java.util.List tags;
private final java.lang.Boolean terminationProtectionEnabled;
private final java.lang.String versionReleaseSystem;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.name = software.amazon.jsii.Kernel.get(this, "name", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.projectId = software.amazon.jsii.Kernel.get(this, "projectId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.advancedSettings = software.amazon.jsii.Kernel.get(this, "advancedSettings", software.amazon.jsii.NativeType.forClass(org.mongodb.awscdk.resources.mongodbatlas.ProcessArgs.class));
this.backupEnabled = software.amazon.jsii.Kernel.get(this, "backupEnabled", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.biConnector = software.amazon.jsii.Kernel.get(this, "biConnector", software.amazon.jsii.NativeType.forClass(org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsBiConnector.class));
this.clusterType = software.amazon.jsii.Kernel.get(this, "clusterType", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.connectionStrings = software.amazon.jsii.Kernel.get(this, "connectionStrings", software.amazon.jsii.NativeType.forClass(org.mongodb.awscdk.resources.mongodbatlas.ConnectionStrings.class));
this.diskSizeGb = software.amazon.jsii.Kernel.get(this, "diskSizeGb", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.encryptionAtRestProvider = software.amazon.jsii.Kernel.get(this, "encryptionAtRestProvider", software.amazon.jsii.NativeType.forClass(org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsEncryptionAtRestProvider.class));
this.globalClusterSelfManagedSharding = software.amazon.jsii.Kernel.get(this, "globalClusterSelfManagedSharding", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.labels = software.amazon.jsii.Kernel.get(this, "labels", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsLabels.class)));
this.mongoDbMajorVersion = software.amazon.jsii.Kernel.get(this, "mongoDbMajorVersion", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.paused = software.amazon.jsii.Kernel.get(this, "paused", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.pitEnabled = software.amazon.jsii.Kernel.get(this, "pitEnabled", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.profile = software.amazon.jsii.Kernel.get(this, "profile", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.replicationSpecs = software.amazon.jsii.Kernel.get(this, "replicationSpecs", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(org.mongodb.awscdk.resources.mongodbatlas.AdvancedReplicationSpec.class)));
this.rootCertType = software.amazon.jsii.Kernel.get(this, "rootCertType", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.tags = software.amazon.jsii.Kernel.get(this, "tags", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(org.mongodb.awscdk.resources.mongodbatlas.Tag.class)));
this.terminationProtectionEnabled = software.amazon.jsii.Kernel.get(this, "terminationProtectionEnabled", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.versionReleaseSystem = software.amazon.jsii.Kernel.get(this, "versionReleaseSystem", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
@SuppressWarnings("unchecked")
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.name = java.util.Objects.requireNonNull(builder.name, "name is required");
this.projectId = java.util.Objects.requireNonNull(builder.projectId, "projectId is required");
this.advancedSettings = builder.advancedSettings;
this.backupEnabled = builder.backupEnabled;
this.biConnector = builder.biConnector;
this.clusterType = builder.clusterType;
this.connectionStrings = builder.connectionStrings;
this.diskSizeGb = builder.diskSizeGb;
this.encryptionAtRestProvider = builder.encryptionAtRestProvider;
this.globalClusterSelfManagedSharding = builder.globalClusterSelfManagedSharding;
this.labels = (java.util.List)builder.labels;
this.mongoDbMajorVersion = builder.mongoDbMajorVersion;
this.paused = builder.paused;
this.pitEnabled = builder.pitEnabled;
this.profile = builder.profile;
this.replicationSpecs = (java.util.List)builder.replicationSpecs;
this.rootCertType = builder.rootCertType;
this.tags = (java.util.List)builder.tags;
this.terminationProtectionEnabled = builder.terminationProtectionEnabled;
this.versionReleaseSystem = builder.versionReleaseSystem;
}
@Override
public final java.lang.String getName() {
return this.name;
}
@Override
public final java.lang.String getProjectId() {
return this.projectId;
}
@Override
public final org.mongodb.awscdk.resources.mongodbatlas.ProcessArgs getAdvancedSettings() {
return this.advancedSettings;
}
@Override
public final java.lang.Boolean getBackupEnabled() {
return this.backupEnabled;
}
@Override
public final org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsBiConnector getBiConnector() {
return this.biConnector;
}
@Override
public final java.lang.String getClusterType() {
return this.clusterType;
}
@Override
public final org.mongodb.awscdk.resources.mongodbatlas.ConnectionStrings getConnectionStrings() {
return this.connectionStrings;
}
@Override
public final java.lang.Number getDiskSizeGb() {
return this.diskSizeGb;
}
@Override
public final org.mongodb.awscdk.resources.mongodbatlas.CfnClusterPropsEncryptionAtRestProvider getEncryptionAtRestProvider() {
return this.encryptionAtRestProvider;
}
@Override
public final java.lang.Boolean getGlobalClusterSelfManagedSharding() {
return this.globalClusterSelfManagedSharding;
}
@Override
public final java.util.List getLabels() {
return this.labels;
}
@Override
public final java.lang.String getMongoDbMajorVersion() {
return this.mongoDbMajorVersion;
}
@Override
public final java.lang.Boolean getPaused() {
return this.paused;
}
@Override
public final java.lang.Boolean getPitEnabled() {
return this.pitEnabled;
}
@Override
public final java.lang.String getProfile() {
return this.profile;
}
@Override
public final java.util.List getReplicationSpecs() {
return this.replicationSpecs;
}
@Override
public final java.lang.String getRootCertType() {
return this.rootCertType;
}
@Override
public final java.util.List getTags() {
return this.tags;
}
@Override
public final java.lang.Boolean getTerminationProtectionEnabled() {
return this.terminationProtectionEnabled;
}
@Override
public final java.lang.String getVersionReleaseSystem() {
return this.versionReleaseSystem;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
data.set("name", om.valueToTree(this.getName()));
data.set("projectId", om.valueToTree(this.getProjectId()));
if (this.getAdvancedSettings() != null) {
data.set("advancedSettings", om.valueToTree(this.getAdvancedSettings()));
}
if (this.getBackupEnabled() != null) {
data.set("backupEnabled", om.valueToTree(this.getBackupEnabled()));
}
if (this.getBiConnector() != null) {
data.set("biConnector", om.valueToTree(this.getBiConnector()));
}
if (this.getClusterType() != null) {
data.set("clusterType", om.valueToTree(this.getClusterType()));
}
if (this.getConnectionStrings() != null) {
data.set("connectionStrings", om.valueToTree(this.getConnectionStrings()));
}
if (this.getDiskSizeGb() != null) {
data.set("diskSizeGb", om.valueToTree(this.getDiskSizeGb()));
}
if (this.getEncryptionAtRestProvider() != null) {
data.set("encryptionAtRestProvider", om.valueToTree(this.getEncryptionAtRestProvider()));
}
if (this.getGlobalClusterSelfManagedSharding() != null) {
data.set("globalClusterSelfManagedSharding", om.valueToTree(this.getGlobalClusterSelfManagedSharding()));
}
if (this.getLabels() != null) {
data.set("labels", om.valueToTree(this.getLabels()));
}
if (this.getMongoDbMajorVersion() != null) {
data.set("mongoDbMajorVersion", om.valueToTree(this.getMongoDbMajorVersion()));
}
if (this.getPaused() != null) {
data.set("paused", om.valueToTree(this.getPaused()));
}
if (this.getPitEnabled() != null) {
data.set("pitEnabled", om.valueToTree(this.getPitEnabled()));
}
if (this.getProfile() != null) {
data.set("profile", om.valueToTree(this.getProfile()));
}
if (this.getReplicationSpecs() != null) {
data.set("replicationSpecs", om.valueToTree(this.getReplicationSpecs()));
}
if (this.getRootCertType() != null) {
data.set("rootCertType", om.valueToTree(this.getRootCertType()));
}
if (this.getTags() != null) {
data.set("tags", om.valueToTree(this.getTags()));
}
if (this.getTerminationProtectionEnabled() != null) {
data.set("terminationProtectionEnabled", om.valueToTree(this.getTerminationProtectionEnabled()));
}
if (this.getVersionReleaseSystem() != null) {
data.set("versionReleaseSystem", om.valueToTree(this.getVersionReleaseSystem()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("awscdk-resources-mongodbatlas.CfnClusterProps"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
CfnClusterProps.Jsii$Proxy that = (CfnClusterProps.Jsii$Proxy) o;
if (!name.equals(that.name)) return false;
if (!projectId.equals(that.projectId)) return false;
if (this.advancedSettings != null ? !this.advancedSettings.equals(that.advancedSettings) : that.advancedSettings != null) return false;
if (this.backupEnabled != null ? !this.backupEnabled.equals(that.backupEnabled) : that.backupEnabled != null) return false;
if (this.biConnector != null ? !this.biConnector.equals(that.biConnector) : that.biConnector != null) return false;
if (this.clusterType != null ? !this.clusterType.equals(that.clusterType) : that.clusterType != null) return false;
if (this.connectionStrings != null ? !this.connectionStrings.equals(that.connectionStrings) : that.connectionStrings != null) return false;
if (this.diskSizeGb != null ? !this.diskSizeGb.equals(that.diskSizeGb) : that.diskSizeGb != null) return false;
if (this.encryptionAtRestProvider != null ? !this.encryptionAtRestProvider.equals(that.encryptionAtRestProvider) : that.encryptionAtRestProvider != null) return false;
if (this.globalClusterSelfManagedSharding != null ? !this.globalClusterSelfManagedSharding.equals(that.globalClusterSelfManagedSharding) : that.globalClusterSelfManagedSharding != null) return false;
if (this.labels != null ? !this.labels.equals(that.labels) : that.labels != null) return false;
if (this.mongoDbMajorVersion != null ? !this.mongoDbMajorVersion.equals(that.mongoDbMajorVersion) : that.mongoDbMajorVersion != null) return false;
if (this.paused != null ? !this.paused.equals(that.paused) : that.paused != null) return false;
if (this.pitEnabled != null ? !this.pitEnabled.equals(that.pitEnabled) : that.pitEnabled != null) return false;
if (this.profile != null ? !this.profile.equals(that.profile) : that.profile != null) return false;
if (this.replicationSpecs != null ? !this.replicationSpecs.equals(that.replicationSpecs) : that.replicationSpecs != null) return false;
if (this.rootCertType != null ? !this.rootCertType.equals(that.rootCertType) : that.rootCertType != null) return false;
if (this.tags != null ? !this.tags.equals(that.tags) : that.tags != null) return false;
if (this.terminationProtectionEnabled != null ? !this.terminationProtectionEnabled.equals(that.terminationProtectionEnabled) : that.terminationProtectionEnabled != null) return false;
return this.versionReleaseSystem != null ? this.versionReleaseSystem.equals(that.versionReleaseSystem) : that.versionReleaseSystem == null;
}
@Override
public final int hashCode() {
int result = this.name.hashCode();
result = 31 * result + (this.projectId.hashCode());
result = 31 * result + (this.advancedSettings != null ? this.advancedSettings.hashCode() : 0);
result = 31 * result + (this.backupEnabled != null ? this.backupEnabled.hashCode() : 0);
result = 31 * result + (this.biConnector != null ? this.biConnector.hashCode() : 0);
result = 31 * result + (this.clusterType != null ? this.clusterType.hashCode() : 0);
result = 31 * result + (this.connectionStrings != null ? this.connectionStrings.hashCode() : 0);
result = 31 * result + (this.diskSizeGb != null ? this.diskSizeGb.hashCode() : 0);
result = 31 * result + (this.encryptionAtRestProvider != null ? this.encryptionAtRestProvider.hashCode() : 0);
result = 31 * result + (this.globalClusterSelfManagedSharding != null ? this.globalClusterSelfManagedSharding.hashCode() : 0);
result = 31 * result + (this.labels != null ? this.labels.hashCode() : 0);
result = 31 * result + (this.mongoDbMajorVersion != null ? this.mongoDbMajorVersion.hashCode() : 0);
result = 31 * result + (this.paused != null ? this.paused.hashCode() : 0);
result = 31 * result + (this.pitEnabled != null ? this.pitEnabled.hashCode() : 0);
result = 31 * result + (this.profile != null ? this.profile.hashCode() : 0);
result = 31 * result + (this.replicationSpecs != null ? this.replicationSpecs.hashCode() : 0);
result = 31 * result + (this.rootCertType != null ? this.rootCertType.hashCode() : 0);
result = 31 * result + (this.tags != null ? this.tags.hashCode() : 0);
result = 31 * result + (this.terminationProtectionEnabled != null ? this.terminationProtectionEnabled.hashCode() : 0);
result = 31 * result + (this.versionReleaseSystem != null ? this.versionReleaseSystem.hashCode() : 0);
return result;
}
}
}