org.mongodb.awscdk.resources.mongodbatlas.CfnOrganizationProps Maven / Gradle / Ivy
Show all versions of awscdk-resources-mongodbatlas Show documentation
package org.mongodb.awscdk.resources.mongodbatlas;
/**
* Returns, adds, and edits organizational units in MongoDB Cloud.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.101.0 (build b95fe5d)", date = "2024-07-30T09:54:28.954Z")
@software.amazon.jsii.Jsii(module = org.mongodb.awscdk.resources.mongodbatlas.$Module.class, fqn = "awscdk-resources-mongodbatlas.CfnOrganizationProps")
@software.amazon.jsii.Jsii.Proxy(CfnOrganizationProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public interface CfnOrganizationProps extends software.amazon.jsii.JsiiSerializable {
/**
* AwsSecretName used to set newly created Org credentials information.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull java.lang.String getAwsSecretName();
/**
* Human-readable label that identifies the organization.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull java.lang.String getName();
/**
* Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user that you want to assign the Organization Owner role.
*
* This user must be a member of the same organization as the calling API key. If you provide federationSettingsId, this user must instead have the Organization Owner role on an organization in the specified federation. This parameter is required only when you authenticate with Programmatic API Keys.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull java.lang.String getOrgOwnerId();
/**
* Flag that indicates whether to require API operations to originate from an IP Address added to the API access list for the specified organization.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getApiAccessListRequired() {
return null;
}
/**
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable org.mongodb.awscdk.resources.mongodbatlas.ApiKey getApiKey() {
return null;
}
/**
* Unique 24-hexadecimal digit string that identifies the federation to link the newly created organization to.
*
* If specified, the proposed Organization Owner of the new organization must have the Organization Owner role in an organization associated with the federation.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getFederatedSettingsId() {
return null;
}
/**
* Flag that indicates whether this organization has been deleted.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getIsDeleted() {
return null;
}
/**
* Flag that indicates whether to require users to set up Multi-Factor Authentication (MFA) before accessing the specified organization.
*
* To learn more, see: https://www.mongodb.com/docs/atlas/security-multi-factor-authentication/.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getMultiFactorAuthRequired() {
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;
}
/**
* Flag that indicates whether to block MongoDB Support from accessing Atlas infrastructure for any deployment in the specified organization without explicit permission.
*
* Once this setting is turned on, you can grant MongoDB Support a 24-hour bypass access to the Atlas deployment to resolve support issues. To learn more, see: https://www.mongodb.com/docs/atlas/security-restrict-support-access/.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getRestrictEmployeeAccess() {
return null;
}
/**
* @return a {@link Builder} of {@link CfnOrganizationProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link CfnOrganizationProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String awsSecretName;
java.lang.String name;
java.lang.String orgOwnerId;
java.lang.Boolean apiAccessListRequired;
org.mongodb.awscdk.resources.mongodbatlas.ApiKey apiKey;
java.lang.String federatedSettingsId;
java.lang.Boolean isDeleted;
java.lang.Boolean multiFactorAuthRequired;
java.lang.String profile;
java.lang.Boolean restrictEmployeeAccess;
/**
* Sets the value of {@link CfnOrganizationProps#getAwsSecretName}
* @param awsSecretName AwsSecretName used to set newly created Org credentials information. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder awsSecretName(java.lang.String awsSecretName) {
this.awsSecretName = awsSecretName;
return this;
}
/**
* Sets the value of {@link CfnOrganizationProps#getName}
* @param name Human-readable label that identifies the organization. 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 CfnOrganizationProps#getOrgOwnerId}
* @param orgOwnerId Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user that you want to assign the Organization Owner role. This parameter is required.
* This user must be a member of the same organization as the calling API key. If you provide federationSettingsId, this user must instead have the Organization Owner role on an organization in the specified federation. This parameter is required only when you authenticate with Programmatic API Keys.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder orgOwnerId(java.lang.String orgOwnerId) {
this.orgOwnerId = orgOwnerId;
return this;
}
/**
* Sets the value of {@link CfnOrganizationProps#getApiAccessListRequired}
* @param apiAccessListRequired Flag that indicates whether to require API operations to originate from an IP Address added to the API access list for the specified organization.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder apiAccessListRequired(java.lang.Boolean apiAccessListRequired) {
this.apiAccessListRequired = apiAccessListRequired;
return this;
}
/**
* Sets the value of {@link CfnOrganizationProps#getApiKey}
* @param apiKey the value to be set.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder apiKey(org.mongodb.awscdk.resources.mongodbatlas.ApiKey apiKey) {
this.apiKey = apiKey;
return this;
}
/**
* Sets the value of {@link CfnOrganizationProps#getFederatedSettingsId}
* @param federatedSettingsId Unique 24-hexadecimal digit string that identifies the federation to link the newly created organization to.
* If specified, the proposed Organization Owner of the new organization must have the Organization Owner role in an organization associated with the federation.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder federatedSettingsId(java.lang.String federatedSettingsId) {
this.federatedSettingsId = federatedSettingsId;
return this;
}
/**
* Sets the value of {@link CfnOrganizationProps#getIsDeleted}
* @param isDeleted Flag that indicates whether this organization has been deleted.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder isDeleted(java.lang.Boolean isDeleted) {
this.isDeleted = isDeleted;
return this;
}
/**
* Sets the value of {@link CfnOrganizationProps#getMultiFactorAuthRequired}
* @param multiFactorAuthRequired Flag that indicates whether to require users to set up Multi-Factor Authentication (MFA) before accessing the specified organization.
* To learn more, see: https://www.mongodb.com/docs/atlas/security-multi-factor-authentication/.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder multiFactorAuthRequired(java.lang.Boolean multiFactorAuthRequired) {
this.multiFactorAuthRequired = multiFactorAuthRequired;
return this;
}
/**
* Sets the value of {@link CfnOrganizationProps#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 CfnOrganizationProps#getRestrictEmployeeAccess}
* @param restrictEmployeeAccess Flag that indicates whether to block MongoDB Support from accessing Atlas infrastructure for any deployment in the specified organization without explicit permission.
* Once this setting is turned on, you can grant MongoDB Support a 24-hour bypass access to the Atlas deployment to resolve support issues. To learn more, see: https://www.mongodb.com/docs/atlas/security-restrict-support-access/.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder restrictEmployeeAccess(java.lang.Boolean restrictEmployeeAccess) {
this.restrictEmployeeAccess = restrictEmployeeAccess;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link CfnOrganizationProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public CfnOrganizationProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link CfnOrganizationProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements CfnOrganizationProps {
private final java.lang.String awsSecretName;
private final java.lang.String name;
private final java.lang.String orgOwnerId;
private final java.lang.Boolean apiAccessListRequired;
private final org.mongodb.awscdk.resources.mongodbatlas.ApiKey apiKey;
private final java.lang.String federatedSettingsId;
private final java.lang.Boolean isDeleted;
private final java.lang.Boolean multiFactorAuthRequired;
private final java.lang.String profile;
private final java.lang.Boolean restrictEmployeeAccess;
/**
* 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.awsSecretName = software.amazon.jsii.Kernel.get(this, "awsSecretName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.name = software.amazon.jsii.Kernel.get(this, "name", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.orgOwnerId = software.amazon.jsii.Kernel.get(this, "orgOwnerId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.apiAccessListRequired = software.amazon.jsii.Kernel.get(this, "apiAccessListRequired", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.apiKey = software.amazon.jsii.Kernel.get(this, "apiKey", software.amazon.jsii.NativeType.forClass(org.mongodb.awscdk.resources.mongodbatlas.ApiKey.class));
this.federatedSettingsId = software.amazon.jsii.Kernel.get(this, "federatedSettingsId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.isDeleted = software.amazon.jsii.Kernel.get(this, "isDeleted", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.multiFactorAuthRequired = software.amazon.jsii.Kernel.get(this, "multiFactorAuthRequired", 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.restrictEmployeeAccess = software.amazon.jsii.Kernel.get(this, "restrictEmployeeAccess", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.awsSecretName = java.util.Objects.requireNonNull(builder.awsSecretName, "awsSecretName is required");
this.name = java.util.Objects.requireNonNull(builder.name, "name is required");
this.orgOwnerId = java.util.Objects.requireNonNull(builder.orgOwnerId, "orgOwnerId is required");
this.apiAccessListRequired = builder.apiAccessListRequired;
this.apiKey = builder.apiKey;
this.federatedSettingsId = builder.federatedSettingsId;
this.isDeleted = builder.isDeleted;
this.multiFactorAuthRequired = builder.multiFactorAuthRequired;
this.profile = builder.profile;
this.restrictEmployeeAccess = builder.restrictEmployeeAccess;
}
@Override
public final java.lang.String getAwsSecretName() {
return this.awsSecretName;
}
@Override
public final java.lang.String getName() {
return this.name;
}
@Override
public final java.lang.String getOrgOwnerId() {
return this.orgOwnerId;
}
@Override
public final java.lang.Boolean getApiAccessListRequired() {
return this.apiAccessListRequired;
}
@Override
public final org.mongodb.awscdk.resources.mongodbatlas.ApiKey getApiKey() {
return this.apiKey;
}
@Override
public final java.lang.String getFederatedSettingsId() {
return this.federatedSettingsId;
}
@Override
public final java.lang.Boolean getIsDeleted() {
return this.isDeleted;
}
@Override
public final java.lang.Boolean getMultiFactorAuthRequired() {
return this.multiFactorAuthRequired;
}
@Override
public final java.lang.String getProfile() {
return this.profile;
}
@Override
public final java.lang.Boolean getRestrictEmployeeAccess() {
return this.restrictEmployeeAccess;
}
@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("awsSecretName", om.valueToTree(this.getAwsSecretName()));
data.set("name", om.valueToTree(this.getName()));
data.set("orgOwnerId", om.valueToTree(this.getOrgOwnerId()));
if (this.getApiAccessListRequired() != null) {
data.set("apiAccessListRequired", om.valueToTree(this.getApiAccessListRequired()));
}
if (this.getApiKey() != null) {
data.set("apiKey", om.valueToTree(this.getApiKey()));
}
if (this.getFederatedSettingsId() != null) {
data.set("federatedSettingsId", om.valueToTree(this.getFederatedSettingsId()));
}
if (this.getIsDeleted() != null) {
data.set("isDeleted", om.valueToTree(this.getIsDeleted()));
}
if (this.getMultiFactorAuthRequired() != null) {
data.set("multiFactorAuthRequired", om.valueToTree(this.getMultiFactorAuthRequired()));
}
if (this.getProfile() != null) {
data.set("profile", om.valueToTree(this.getProfile()));
}
if (this.getRestrictEmployeeAccess() != null) {
data.set("restrictEmployeeAccess", om.valueToTree(this.getRestrictEmployeeAccess()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("awscdk-resources-mongodbatlas.CfnOrganizationProps"));
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;
CfnOrganizationProps.Jsii$Proxy that = (CfnOrganizationProps.Jsii$Proxy) o;
if (!awsSecretName.equals(that.awsSecretName)) return false;
if (!name.equals(that.name)) return false;
if (!orgOwnerId.equals(that.orgOwnerId)) return false;
if (this.apiAccessListRequired != null ? !this.apiAccessListRequired.equals(that.apiAccessListRequired) : that.apiAccessListRequired != null) return false;
if (this.apiKey != null ? !this.apiKey.equals(that.apiKey) : that.apiKey != null) return false;
if (this.federatedSettingsId != null ? !this.federatedSettingsId.equals(that.federatedSettingsId) : that.federatedSettingsId != null) return false;
if (this.isDeleted != null ? !this.isDeleted.equals(that.isDeleted) : that.isDeleted != null) return false;
if (this.multiFactorAuthRequired != null ? !this.multiFactorAuthRequired.equals(that.multiFactorAuthRequired) : that.multiFactorAuthRequired != null) return false;
if (this.profile != null ? !this.profile.equals(that.profile) : that.profile != null) return false;
return this.restrictEmployeeAccess != null ? this.restrictEmployeeAccess.equals(that.restrictEmployeeAccess) : that.restrictEmployeeAccess == null;
}
@Override
public final int hashCode() {
int result = this.awsSecretName.hashCode();
result = 31 * result + (this.name.hashCode());
result = 31 * result + (this.orgOwnerId.hashCode());
result = 31 * result + (this.apiAccessListRequired != null ? this.apiAccessListRequired.hashCode() : 0);
result = 31 * result + (this.apiKey != null ? this.apiKey.hashCode() : 0);
result = 31 * result + (this.federatedSettingsId != null ? this.federatedSettingsId.hashCode() : 0);
result = 31 * result + (this.isDeleted != null ? this.isDeleted.hashCode() : 0);
result = 31 * result + (this.multiFactorAuthRequired != null ? this.multiFactorAuthRequired.hashCode() : 0);
result = 31 * result + (this.profile != null ? this.profile.hashCode() : 0);
result = 31 * result + (this.restrictEmployeeAccess != null ? this.restrictEmployeeAccess.hashCode() : 0);
return result;
}
}
}