org.mongodb.awscdk.resources.mongodbatlas.CfnFederatedQueryLimitProps Maven / Gradle / Ivy
Show all versions of awscdk-resources-mongodbatlas Show documentation
package org.mongodb.awscdk.resources.mongodbatlas;
/**
* Query limit for one federated database instance.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.101.0 (build b95fe5d)", date = "2024-07-30T09:54:28.933Z")
@software.amazon.jsii.Jsii(module = org.mongodb.awscdk.resources.mongodbatlas.$Module.class, fqn = "awscdk-resources-mongodbatlas.CfnFederatedQueryLimitProps")
@software.amazon.jsii.Jsii.Proxy(CfnFederatedQueryLimitProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public interface CfnFederatedQueryLimitProps extends software.amazon.jsii.JsiiSerializable {
/**
* Human-readable label that identifies this data federation instance limit.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull org.mongodb.awscdk.resources.mongodbatlas.CfnFederatedQueryLimitPropsLimitName getLimitName();
/**
* Unique 24-hexadecimal digit string that identifies your project.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull java.lang.String getProjectId();
/**
* Human-readable label that identifies the data federated database instance to which the query limit applies.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull java.lang.String getTenantName();
/**
* Amount to set the limit to.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull java.lang.String getValue();
/**
* Only used for Data Federation limits.
*
* Action to take when the usage limit is exceeded. If limit span is set to QUERY, this is ignored because MongoDB Cloud stops the query when it exceeds the usage limit. "enum" : [ "BLOCK", "BLOCK_AND_KILL" ]
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getOverrunPolicy() {
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;
}
/**
* @return a {@link Builder} of {@link CfnFederatedQueryLimitProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link CfnFederatedQueryLimitProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
org.mongodb.awscdk.resources.mongodbatlas.CfnFederatedQueryLimitPropsLimitName limitName;
java.lang.String projectId;
java.lang.String tenantName;
java.lang.String value;
java.lang.String overrunPolicy;
java.lang.String profile;
/**
* Sets the value of {@link CfnFederatedQueryLimitProps#getLimitName}
* @param limitName Human-readable label that identifies this data federation instance limit. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder limitName(org.mongodb.awscdk.resources.mongodbatlas.CfnFederatedQueryLimitPropsLimitName limitName) {
this.limitName = limitName;
return this;
}
/**
* Sets the value of {@link CfnFederatedQueryLimitProps#getProjectId}
* @param projectId Unique 24-hexadecimal digit string that identifies your project. 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 CfnFederatedQueryLimitProps#getTenantName}
* @param tenantName Human-readable label that identifies the data federated database instance to which the query limit applies. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder tenantName(java.lang.String tenantName) {
this.tenantName = tenantName;
return this;
}
/**
* Sets the value of {@link CfnFederatedQueryLimitProps#getValue}
* @param value Amount to set the limit to. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder value(java.lang.String value) {
this.value = value;
return this;
}
/**
* Sets the value of {@link CfnFederatedQueryLimitProps#getOverrunPolicy}
* @param overrunPolicy Only used for Data Federation limits.
* Action to take when the usage limit is exceeded. If limit span is set to QUERY, this is ignored because MongoDB Cloud stops the query when it exceeds the usage limit. "enum" : [ "BLOCK", "BLOCK_AND_KILL" ]
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder overrunPolicy(java.lang.String overrunPolicy) {
this.overrunPolicy = overrunPolicy;
return this;
}
/**
* Sets the value of {@link CfnFederatedQueryLimitProps#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;
}
/**
* Builds the configured instance.
* @return a new instance of {@link CfnFederatedQueryLimitProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public CfnFederatedQueryLimitProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link CfnFederatedQueryLimitProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements CfnFederatedQueryLimitProps {
private final org.mongodb.awscdk.resources.mongodbatlas.CfnFederatedQueryLimitPropsLimitName limitName;
private final java.lang.String projectId;
private final java.lang.String tenantName;
private final java.lang.String value;
private final java.lang.String overrunPolicy;
private final java.lang.String profile;
/**
* 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.limitName = software.amazon.jsii.Kernel.get(this, "limitName", software.amazon.jsii.NativeType.forClass(org.mongodb.awscdk.resources.mongodbatlas.CfnFederatedQueryLimitPropsLimitName.class));
this.projectId = software.amazon.jsii.Kernel.get(this, "projectId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.tenantName = software.amazon.jsii.Kernel.get(this, "tenantName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.value = software.amazon.jsii.Kernel.get(this, "value", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.overrunPolicy = software.amazon.jsii.Kernel.get(this, "overrunPolicy", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.profile = software.amazon.jsii.Kernel.get(this, "profile", software.amazon.jsii.NativeType.forClass(java.lang.String.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.limitName = java.util.Objects.requireNonNull(builder.limitName, "limitName is required");
this.projectId = java.util.Objects.requireNonNull(builder.projectId, "projectId is required");
this.tenantName = java.util.Objects.requireNonNull(builder.tenantName, "tenantName is required");
this.value = java.util.Objects.requireNonNull(builder.value, "value is required");
this.overrunPolicy = builder.overrunPolicy;
this.profile = builder.profile;
}
@Override
public final org.mongodb.awscdk.resources.mongodbatlas.CfnFederatedQueryLimitPropsLimitName getLimitName() {
return this.limitName;
}
@Override
public final java.lang.String getProjectId() {
return this.projectId;
}
@Override
public final java.lang.String getTenantName() {
return this.tenantName;
}
@Override
public final java.lang.String getValue() {
return this.value;
}
@Override
public final java.lang.String getOverrunPolicy() {
return this.overrunPolicy;
}
@Override
public final java.lang.String getProfile() {
return this.profile;
}
@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("limitName", om.valueToTree(this.getLimitName()));
data.set("projectId", om.valueToTree(this.getProjectId()));
data.set("tenantName", om.valueToTree(this.getTenantName()));
data.set("value", om.valueToTree(this.getValue()));
if (this.getOverrunPolicy() != null) {
data.set("overrunPolicy", om.valueToTree(this.getOverrunPolicy()));
}
if (this.getProfile() != null) {
data.set("profile", om.valueToTree(this.getProfile()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("awscdk-resources-mongodbatlas.CfnFederatedQueryLimitProps"));
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;
CfnFederatedQueryLimitProps.Jsii$Proxy that = (CfnFederatedQueryLimitProps.Jsii$Proxy) o;
if (!limitName.equals(that.limitName)) return false;
if (!projectId.equals(that.projectId)) return false;
if (!tenantName.equals(that.tenantName)) return false;
if (!value.equals(that.value)) return false;
if (this.overrunPolicy != null ? !this.overrunPolicy.equals(that.overrunPolicy) : that.overrunPolicy != null) return false;
return this.profile != null ? this.profile.equals(that.profile) : that.profile == null;
}
@Override
public final int hashCode() {
int result = this.limitName.hashCode();
result = 31 * result + (this.projectId.hashCode());
result = 31 * result + (this.tenantName.hashCode());
result = 31 * result + (this.value.hashCode());
result = 31 * result + (this.overrunPolicy != null ? this.overrunPolicy.hashCode() : 0);
result = 31 * result + (this.profile != null ? this.profile.hashCode() : 0);
return result;
}
}
}