
software.amazon.awscdk.services.dynamodb.global.GlobalTableProps Maven / Gradle / Ivy
package software.amazon.awscdk.services.dynamodb.global;
/**
* (deprecated) Properties for the multiple DynamoDB tables to mash together into a global table.
*
* Example:
*
*
* import software.amazon.awscdk.services.dynamodb.AttributeType;
* import software.amazon.awscdk.services.dynamodb.global.GlobalTable;
* import software.amazon.awscdk.core.App;
* App app = new App();
* GlobalTable.Builder.create(app, "globdynamodb")
* .partitionKey(Attribute.builder().name("hashKey").type(AttributeType.STRING).build())
* .tableName("GlobalTable")
* .regions(List.of("us-east-1", "us-east-2", "us-west-2"))
* .build();
* app.synth();
*
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.52.1 (build 5ccc8f6)", date = "2022-02-08T19:43:54.380Z")
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dynamodb.global.$Module.class, fqn = "@aws-cdk/aws-dynamodb-global.GlobalTableProps")
@software.amazon.jsii.Jsii.Proxy(GlobalTableProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public interface GlobalTableProps extends software.amazon.jsii.JsiiSerializable, software.amazon.awscdk.core.StackProps, software.amazon.awscdk.services.dynamodb.TableOptions {
/**
* (deprecated) Array of environments to create DynamoDB tables in.
*
* The tables will all be created in the same account.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
@org.jetbrains.annotations.NotNull java.util.List getRegions();
/**
* (deprecated) Name of the DynamoDB table to use across all regional tables.
*
* This is required for global tables.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
@org.jetbrains.annotations.NotNull java.lang.String getTableName();
/**
* @return a {@link Builder} of {@link GlobalTableProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link GlobalTableProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public static final class Builder implements software.amazon.jsii.Builder {
java.util.List regions;
java.lang.String tableName;
java.lang.Boolean analyticsReporting;
java.lang.String description;
software.amazon.awscdk.core.Environment env;
java.lang.String stackName;
software.amazon.awscdk.core.IStackSynthesizer synthesizer;
java.util.Map tags;
java.lang.Boolean terminationProtection;
software.amazon.awscdk.services.dynamodb.BillingMode billingMode;
java.lang.Boolean contributorInsightsEnabled;
software.amazon.awscdk.services.dynamodb.TableEncryption encryption;
software.amazon.awscdk.services.kms.IKey encryptionKey;
java.lang.Boolean pointInTimeRecovery;
java.lang.Number readCapacity;
software.amazon.awscdk.core.RemovalPolicy removalPolicy;
java.util.List replicationRegions;
software.amazon.awscdk.core.Duration replicationTimeout;
java.lang.Boolean serverSideEncryption;
software.amazon.awscdk.services.dynamodb.StreamViewType stream;
software.amazon.awscdk.services.dynamodb.TableClass tableClass;
java.lang.String timeToLiveAttribute;
java.lang.Boolean waitForReplicationToFinish;
java.lang.Number writeCapacity;
software.amazon.awscdk.services.dynamodb.Attribute partitionKey;
software.amazon.awscdk.services.dynamodb.Attribute sortKey;
/**
* Sets the value of {@link GlobalTableProps#getRegions}
* @param regions Array of environments to create DynamoDB tables in. This parameter is required.
* The tables will all be created in the same account.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder regions(java.util.List regions) {
this.regions = regions;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getTableName}
* @param tableName Name of the DynamoDB table to use across all regional tables. This parameter is required.
* This is required for global tables.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder tableName(java.lang.String tableName) {
this.tableName = tableName;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getAnalyticsReporting}
* @param analyticsReporting Include runtime versioning information in this Stack.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder analyticsReporting(java.lang.Boolean analyticsReporting) {
this.analyticsReporting = analyticsReporting;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getDescription}
* @param description A description of the stack.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder description(java.lang.String description) {
this.description = description;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getEnv}
* @param env The AWS environment (account/region) where this stack will be deployed.
* Set the region
/account
fields of env
to either a concrete value to
* select the indicated environment (recommended for production stacks), or to
* the values of environment variables
* CDK_DEFAULT_REGION
/CDK_DEFAULT_ACCOUNT
to let the target environment
* depend on the AWS credentials/configuration that the CDK CLI is executed
* under (recommended for development stacks).
*
* If the Stack
is instantiated inside a Stage
, any undefined
* region
/account
fields from env
will default to the same field on the
* encompassing Stage
, if configured there.
*
* If either region
or account
are not set nor inherited from Stage
, the
* Stack will be considered "environment-agnostic"". Environment-agnostic
* stacks can be deployed to any environment but may not be able to take
* advantage of all features of the CDK. For example, they will not be able to
* use environmental context lookups such as ec2.Vpc.fromLookup
and will not
* automatically translate Service Principals to the right format based on the
* environment's AWS partition, and other such enhancements.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder env(software.amazon.awscdk.core.Environment env) {
this.env = env;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getStackName}
* @param stackName Name to deploy the stack with.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder stackName(java.lang.String stackName) {
this.stackName = stackName;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getSynthesizer}
* @param synthesizer Synthesis method to use while deploying this stack.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder synthesizer(software.amazon.awscdk.core.IStackSynthesizer synthesizer) {
this.synthesizer = synthesizer;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getTags}
* @param tags Stack tags that will be applied to all the taggable resources and the stack itself.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder tags(java.util.Map tags) {
this.tags = tags;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getTerminationProtection}
* @param terminationProtection Whether to enable termination protection for this stack.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder terminationProtection(java.lang.Boolean terminationProtection) {
this.terminationProtection = terminationProtection;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getBillingMode}
* @param billingMode Specify how you are charged for read and write throughput and how you manage capacity.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder billingMode(software.amazon.awscdk.services.dynamodb.BillingMode billingMode) {
this.billingMode = billingMode;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getContributorInsightsEnabled}
* @param contributorInsightsEnabled Whether CloudWatch contributor insights is enabled.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder contributorInsightsEnabled(java.lang.Boolean contributorInsightsEnabled) {
this.contributorInsightsEnabled = contributorInsightsEnabled;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getEncryption}
* @param encryption Whether server-side encryption with an AWS managed customer master key is enabled.
* This property cannot be set if serverSideEncryption
is set.
*
*
*
* NOTE: if you set this to CUSTOMER_MANAGED
and encryptionKey
is not
* specified, the key that the Tablet generates for you will be created with
* default permissions. If you are using CDKv2, these permissions will be
* sufficient to enable the key for use with DynamoDB tables. If you are
* using CDKv1, make sure the feature flag
* @aws-cdk/aws-kms:defaultKeyPolicies
is set to true
in your cdk.json
.
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder encryption(software.amazon.awscdk.services.dynamodb.TableEncryption encryption) {
this.encryption = encryption;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getEncryptionKey}
* @param encryptionKey External KMS key to use for table encryption.
* This property can only be set if encryption
is set to TableEncryption.CUSTOMER_MANAGED
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder encryptionKey(software.amazon.awscdk.services.kms.IKey encryptionKey) {
this.encryptionKey = encryptionKey;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getPointInTimeRecovery}
* @param pointInTimeRecovery Whether point-in-time recovery is enabled.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder pointInTimeRecovery(java.lang.Boolean pointInTimeRecovery) {
this.pointInTimeRecovery = pointInTimeRecovery;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getReadCapacity}
* @param readCapacity The read capacity for the table.
* Careful if you add Global Secondary Indexes, as
* those will share the table's provisioned throughput.
*
* Can only be provided if billingMode is Provisioned.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder readCapacity(java.lang.Number readCapacity) {
this.readCapacity = readCapacity;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getRemovalPolicy}
* @param removalPolicy The removal policy to apply to the DynamoDB Table.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder removalPolicy(software.amazon.awscdk.core.RemovalPolicy removalPolicy) {
this.removalPolicy = removalPolicy;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getReplicationRegions}
* @param replicationRegions Regions where replica tables will be created.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder replicationRegions(java.util.List replicationRegions) {
this.replicationRegions = replicationRegions;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getReplicationTimeout}
* @param replicationTimeout The timeout for a table replication operation in a single region.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder replicationTimeout(software.amazon.awscdk.core.Duration replicationTimeout) {
this.replicationTimeout = replicationTimeout;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getServerSideEncryption}
* @param serverSideEncryption Whether server-side encryption with an AWS managed customer master key is enabled.
* This property cannot be set if encryption
and/or encryptionKey
is set.
* @return {@code this}
* @deprecated This property is deprecated. In order to obtain the same behavior as
enabling this, set the `encryption` property to `TableEncryption.AWS_MANAGED` instead.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder serverSideEncryption(java.lang.Boolean serverSideEncryption) {
this.serverSideEncryption = serverSideEncryption;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getStream}
* @param stream When an item in the table is modified, StreamViewType determines what information is written to the stream for this table.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder stream(software.amazon.awscdk.services.dynamodb.StreamViewType stream) {
this.stream = stream;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getTableClass}
* @param tableClass Specify the table class.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder tableClass(software.amazon.awscdk.services.dynamodb.TableClass tableClass) {
this.tableClass = tableClass;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getTimeToLiveAttribute}
* @param timeToLiveAttribute The name of TTL attribute.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder timeToLiveAttribute(java.lang.String timeToLiveAttribute) {
this.timeToLiveAttribute = timeToLiveAttribute;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getWaitForReplicationToFinish}
* @param waitForReplicationToFinish Indicates whether CloudFormation stack waits for replication to finish.
* If set to false, the CloudFormation resource will mark the resource as
* created and replication will be completed asynchronously. This property is
* ignored if replicationRegions property is not set.
*
* DO NOT UNSET this property if adding/removing multiple replicationRegions
* in one deployment, as CloudFormation only supports one region replication
* at a time. CDK overcomes this limitation by waiting for replication to
* finish before starting new replicationRegion.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder waitForReplicationToFinish(java.lang.Boolean waitForReplicationToFinish) {
this.waitForReplicationToFinish = waitForReplicationToFinish;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getWriteCapacity}
* @param writeCapacity The write capacity for the table.
* Careful if you add Global Secondary Indexes, as
* those will share the table's provisioned throughput.
*
* Can only be provided if billingMode is Provisioned.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder writeCapacity(java.lang.Number writeCapacity) {
this.writeCapacity = writeCapacity;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getPartitionKey}
* @param partitionKey Partition key attribute definition. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder partitionKey(software.amazon.awscdk.services.dynamodb.Attribute partitionKey) {
this.partitionKey = partitionKey;
return this;
}
/**
* Sets the value of {@link GlobalTableProps#getSortKey}
* @param sortKey Sort key attribute definition.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder sortKey(software.amazon.awscdk.services.dynamodb.Attribute sortKey) {
this.sortKey = sortKey;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link GlobalTableProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
@Override
public GlobalTableProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link GlobalTableProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements GlobalTableProps {
private final java.util.List regions;
private final java.lang.String tableName;
private final java.lang.Boolean analyticsReporting;
private final java.lang.String description;
private final software.amazon.awscdk.core.Environment env;
private final java.lang.String stackName;
private final software.amazon.awscdk.core.IStackSynthesizer synthesizer;
private final java.util.Map tags;
private final java.lang.Boolean terminationProtection;
private final software.amazon.awscdk.services.dynamodb.BillingMode billingMode;
private final java.lang.Boolean contributorInsightsEnabled;
private final software.amazon.awscdk.services.dynamodb.TableEncryption encryption;
private final software.amazon.awscdk.services.kms.IKey encryptionKey;
private final java.lang.Boolean pointInTimeRecovery;
private final java.lang.Number readCapacity;
private final software.amazon.awscdk.core.RemovalPolicy removalPolicy;
private final java.util.List replicationRegions;
private final software.amazon.awscdk.core.Duration replicationTimeout;
private final java.lang.Boolean serverSideEncryption;
private final software.amazon.awscdk.services.dynamodb.StreamViewType stream;
private final software.amazon.awscdk.services.dynamodb.TableClass tableClass;
private final java.lang.String timeToLiveAttribute;
private final java.lang.Boolean waitForReplicationToFinish;
private final java.lang.Number writeCapacity;
private final software.amazon.awscdk.services.dynamodb.Attribute partitionKey;
private final software.amazon.awscdk.services.dynamodb.Attribute sortKey;
/**
* 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.regions = software.amazon.jsii.Kernel.get(this, "regions", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
this.tableName = software.amazon.jsii.Kernel.get(this, "tableName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.analyticsReporting = software.amazon.jsii.Kernel.get(this, "analyticsReporting", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.description = software.amazon.jsii.Kernel.get(this, "description", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.env = software.amazon.jsii.Kernel.get(this, "env", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.core.Environment.class));
this.stackName = software.amazon.jsii.Kernel.get(this, "stackName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.synthesizer = software.amazon.jsii.Kernel.get(this, "synthesizer", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.core.IStackSynthesizer.class));
this.tags = software.amazon.jsii.Kernel.get(this, "tags", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
this.terminationProtection = software.amazon.jsii.Kernel.get(this, "terminationProtection", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.billingMode = software.amazon.jsii.Kernel.get(this, "billingMode", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.dynamodb.BillingMode.class));
this.contributorInsightsEnabled = software.amazon.jsii.Kernel.get(this, "contributorInsightsEnabled", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.encryption = software.amazon.jsii.Kernel.get(this, "encryption", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.dynamodb.TableEncryption.class));
this.encryptionKey = software.amazon.jsii.Kernel.get(this, "encryptionKey", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.kms.IKey.class));
this.pointInTimeRecovery = software.amazon.jsii.Kernel.get(this, "pointInTimeRecovery", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.readCapacity = software.amazon.jsii.Kernel.get(this, "readCapacity", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.removalPolicy = software.amazon.jsii.Kernel.get(this, "removalPolicy", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.core.RemovalPolicy.class));
this.replicationRegions = software.amazon.jsii.Kernel.get(this, "replicationRegions", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
this.replicationTimeout = software.amazon.jsii.Kernel.get(this, "replicationTimeout", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.core.Duration.class));
this.serverSideEncryption = software.amazon.jsii.Kernel.get(this, "serverSideEncryption", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.stream = software.amazon.jsii.Kernel.get(this, "stream", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.dynamodb.StreamViewType.class));
this.tableClass = software.amazon.jsii.Kernel.get(this, "tableClass", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.dynamodb.TableClass.class));
this.timeToLiveAttribute = software.amazon.jsii.Kernel.get(this, "timeToLiveAttribute", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.waitForReplicationToFinish = software.amazon.jsii.Kernel.get(this, "waitForReplicationToFinish", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.writeCapacity = software.amazon.jsii.Kernel.get(this, "writeCapacity", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.partitionKey = software.amazon.jsii.Kernel.get(this, "partitionKey", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.dynamodb.Attribute.class));
this.sortKey = software.amazon.jsii.Kernel.get(this, "sortKey", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.dynamodb.Attribute.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.regions = java.util.Objects.requireNonNull(builder.regions, "regions is required");
this.tableName = java.util.Objects.requireNonNull(builder.tableName, "tableName is required");
this.analyticsReporting = builder.analyticsReporting;
this.description = builder.description;
this.env = builder.env;
this.stackName = builder.stackName;
this.synthesizer = builder.synthesizer;
this.tags = builder.tags;
this.terminationProtection = builder.terminationProtection;
this.billingMode = builder.billingMode;
this.contributorInsightsEnabled = builder.contributorInsightsEnabled;
this.encryption = builder.encryption;
this.encryptionKey = builder.encryptionKey;
this.pointInTimeRecovery = builder.pointInTimeRecovery;
this.readCapacity = builder.readCapacity;
this.removalPolicy = builder.removalPolicy;
this.replicationRegions = builder.replicationRegions;
this.replicationTimeout = builder.replicationTimeout;
this.serverSideEncryption = builder.serverSideEncryption;
this.stream = builder.stream;
this.tableClass = builder.tableClass;
this.timeToLiveAttribute = builder.timeToLiveAttribute;
this.waitForReplicationToFinish = builder.waitForReplicationToFinish;
this.writeCapacity = builder.writeCapacity;
this.partitionKey = java.util.Objects.requireNonNull(builder.partitionKey, "partitionKey is required");
this.sortKey = builder.sortKey;
}
@Override
public final java.util.List getRegions() {
return this.regions;
}
@Override
public final java.lang.String getTableName() {
return this.tableName;
}
@Override
public final java.lang.Boolean getAnalyticsReporting() {
return this.analyticsReporting;
}
@Override
public final java.lang.String getDescription() {
return this.description;
}
@Override
public final software.amazon.awscdk.core.Environment getEnv() {
return this.env;
}
@Override
public final java.lang.String getStackName() {
return this.stackName;
}
@Override
public final software.amazon.awscdk.core.IStackSynthesizer getSynthesizer() {
return this.synthesizer;
}
@Override
public final java.util.Map getTags() {
return this.tags;
}
@Override
public final java.lang.Boolean getTerminationProtection() {
return this.terminationProtection;
}
@Override
public final software.amazon.awscdk.services.dynamodb.BillingMode getBillingMode() {
return this.billingMode;
}
@Override
public final java.lang.Boolean getContributorInsightsEnabled() {
return this.contributorInsightsEnabled;
}
@Override
public final software.amazon.awscdk.services.dynamodb.TableEncryption getEncryption() {
return this.encryption;
}
@Override
public final software.amazon.awscdk.services.kms.IKey getEncryptionKey() {
return this.encryptionKey;
}
@Override
public final java.lang.Boolean getPointInTimeRecovery() {
return this.pointInTimeRecovery;
}
@Override
public final java.lang.Number getReadCapacity() {
return this.readCapacity;
}
@Override
public final software.amazon.awscdk.core.RemovalPolicy getRemovalPolicy() {
return this.removalPolicy;
}
@Override
public final java.util.List getReplicationRegions() {
return this.replicationRegions;
}
@Override
public final software.amazon.awscdk.core.Duration getReplicationTimeout() {
return this.replicationTimeout;
}
@Override
public final java.lang.Boolean getServerSideEncryption() {
return this.serverSideEncryption;
}
@Override
public final software.amazon.awscdk.services.dynamodb.StreamViewType getStream() {
return this.stream;
}
@Override
public final software.amazon.awscdk.services.dynamodb.TableClass getTableClass() {
return this.tableClass;
}
@Override
public final java.lang.String getTimeToLiveAttribute() {
return this.timeToLiveAttribute;
}
@Override
public final java.lang.Boolean getWaitForReplicationToFinish() {
return this.waitForReplicationToFinish;
}
@Override
public final java.lang.Number getWriteCapacity() {
return this.writeCapacity;
}
@Override
public final software.amazon.awscdk.services.dynamodb.Attribute getPartitionKey() {
return this.partitionKey;
}
@Override
public final software.amazon.awscdk.services.dynamodb.Attribute getSortKey() {
return this.sortKey;
}
@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("regions", om.valueToTree(this.getRegions()));
data.set("tableName", om.valueToTree(this.getTableName()));
if (this.getAnalyticsReporting() != null) {
data.set("analyticsReporting", om.valueToTree(this.getAnalyticsReporting()));
}
if (this.getDescription() != null) {
data.set("description", om.valueToTree(this.getDescription()));
}
if (this.getEnv() != null) {
data.set("env", om.valueToTree(this.getEnv()));
}
if (this.getStackName() != null) {
data.set("stackName", om.valueToTree(this.getStackName()));
}
if (this.getSynthesizer() != null) {
data.set("synthesizer", om.valueToTree(this.getSynthesizer()));
}
if (this.getTags() != null) {
data.set("tags", om.valueToTree(this.getTags()));
}
if (this.getTerminationProtection() != null) {
data.set("terminationProtection", om.valueToTree(this.getTerminationProtection()));
}
if (this.getBillingMode() != null) {
data.set("billingMode", om.valueToTree(this.getBillingMode()));
}
if (this.getContributorInsightsEnabled() != null) {
data.set("contributorInsightsEnabled", om.valueToTree(this.getContributorInsightsEnabled()));
}
if (this.getEncryption() != null) {
data.set("encryption", om.valueToTree(this.getEncryption()));
}
if (this.getEncryptionKey() != null) {
data.set("encryptionKey", om.valueToTree(this.getEncryptionKey()));
}
if (this.getPointInTimeRecovery() != null) {
data.set("pointInTimeRecovery", om.valueToTree(this.getPointInTimeRecovery()));
}
if (this.getReadCapacity() != null) {
data.set("readCapacity", om.valueToTree(this.getReadCapacity()));
}
if (this.getRemovalPolicy() != null) {
data.set("removalPolicy", om.valueToTree(this.getRemovalPolicy()));
}
if (this.getReplicationRegions() != null) {
data.set("replicationRegions", om.valueToTree(this.getReplicationRegions()));
}
if (this.getReplicationTimeout() != null) {
data.set("replicationTimeout", om.valueToTree(this.getReplicationTimeout()));
}
if (this.getServerSideEncryption() != null) {
data.set("serverSideEncryption", om.valueToTree(this.getServerSideEncryption()));
}
if (this.getStream() != null) {
data.set("stream", om.valueToTree(this.getStream()));
}
if (this.getTableClass() != null) {
data.set("tableClass", om.valueToTree(this.getTableClass()));
}
if (this.getTimeToLiveAttribute() != null) {
data.set("timeToLiveAttribute", om.valueToTree(this.getTimeToLiveAttribute()));
}
if (this.getWaitForReplicationToFinish() != null) {
data.set("waitForReplicationToFinish", om.valueToTree(this.getWaitForReplicationToFinish()));
}
if (this.getWriteCapacity() != null) {
data.set("writeCapacity", om.valueToTree(this.getWriteCapacity()));
}
data.set("partitionKey", om.valueToTree(this.getPartitionKey()));
if (this.getSortKey() != null) {
data.set("sortKey", om.valueToTree(this.getSortKey()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dynamodb-global.GlobalTableProps"));
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;
GlobalTableProps.Jsii$Proxy that = (GlobalTableProps.Jsii$Proxy) o;
if (!regions.equals(that.regions)) return false;
if (!tableName.equals(that.tableName)) return false;
if (this.analyticsReporting != null ? !this.analyticsReporting.equals(that.analyticsReporting) : that.analyticsReporting != null) return false;
if (this.description != null ? !this.description.equals(that.description) : that.description != null) return false;
if (this.env != null ? !this.env.equals(that.env) : that.env != null) return false;
if (this.stackName != null ? !this.stackName.equals(that.stackName) : that.stackName != null) return false;
if (this.synthesizer != null ? !this.synthesizer.equals(that.synthesizer) : that.synthesizer != null) return false;
if (this.tags != null ? !this.tags.equals(that.tags) : that.tags != null) return false;
if (this.terminationProtection != null ? !this.terminationProtection.equals(that.terminationProtection) : that.terminationProtection != null) return false;
if (this.billingMode != null ? !this.billingMode.equals(that.billingMode) : that.billingMode != null) return false;
if (this.contributorInsightsEnabled != null ? !this.contributorInsightsEnabled.equals(that.contributorInsightsEnabled) : that.contributorInsightsEnabled != null) return false;
if (this.encryption != null ? !this.encryption.equals(that.encryption) : that.encryption != null) return false;
if (this.encryptionKey != null ? !this.encryptionKey.equals(that.encryptionKey) : that.encryptionKey != null) return false;
if (this.pointInTimeRecovery != null ? !this.pointInTimeRecovery.equals(that.pointInTimeRecovery) : that.pointInTimeRecovery != null) return false;
if (this.readCapacity != null ? !this.readCapacity.equals(that.readCapacity) : that.readCapacity != null) return false;
if (this.removalPolicy != null ? !this.removalPolicy.equals(that.removalPolicy) : that.removalPolicy != null) return false;
if (this.replicationRegions != null ? !this.replicationRegions.equals(that.replicationRegions) : that.replicationRegions != null) return false;
if (this.replicationTimeout != null ? !this.replicationTimeout.equals(that.replicationTimeout) : that.replicationTimeout != null) return false;
if (this.serverSideEncryption != null ? !this.serverSideEncryption.equals(that.serverSideEncryption) : that.serverSideEncryption != null) return false;
if (this.stream != null ? !this.stream.equals(that.stream) : that.stream != null) return false;
if (this.tableClass != null ? !this.tableClass.equals(that.tableClass) : that.tableClass != null) return false;
if (this.timeToLiveAttribute != null ? !this.timeToLiveAttribute.equals(that.timeToLiveAttribute) : that.timeToLiveAttribute != null) return false;
if (this.waitForReplicationToFinish != null ? !this.waitForReplicationToFinish.equals(that.waitForReplicationToFinish) : that.waitForReplicationToFinish != null) return false;
if (this.writeCapacity != null ? !this.writeCapacity.equals(that.writeCapacity) : that.writeCapacity != null) return false;
if (!partitionKey.equals(that.partitionKey)) return false;
return this.sortKey != null ? this.sortKey.equals(that.sortKey) : that.sortKey == null;
}
@Override
public final int hashCode() {
int result = this.regions.hashCode();
result = 31 * result + (this.tableName.hashCode());
result = 31 * result + (this.analyticsReporting != null ? this.analyticsReporting.hashCode() : 0);
result = 31 * result + (this.description != null ? this.description.hashCode() : 0);
result = 31 * result + (this.env != null ? this.env.hashCode() : 0);
result = 31 * result + (this.stackName != null ? this.stackName.hashCode() : 0);
result = 31 * result + (this.synthesizer != null ? this.synthesizer.hashCode() : 0);
result = 31 * result + (this.tags != null ? this.tags.hashCode() : 0);
result = 31 * result + (this.terminationProtection != null ? this.terminationProtection.hashCode() : 0);
result = 31 * result + (this.billingMode != null ? this.billingMode.hashCode() : 0);
result = 31 * result + (this.contributorInsightsEnabled != null ? this.contributorInsightsEnabled.hashCode() : 0);
result = 31 * result + (this.encryption != null ? this.encryption.hashCode() : 0);
result = 31 * result + (this.encryptionKey != null ? this.encryptionKey.hashCode() : 0);
result = 31 * result + (this.pointInTimeRecovery != null ? this.pointInTimeRecovery.hashCode() : 0);
result = 31 * result + (this.readCapacity != null ? this.readCapacity.hashCode() : 0);
result = 31 * result + (this.removalPolicy != null ? this.removalPolicy.hashCode() : 0);
result = 31 * result + (this.replicationRegions != null ? this.replicationRegions.hashCode() : 0);
result = 31 * result + (this.replicationTimeout != null ? this.replicationTimeout.hashCode() : 0);
result = 31 * result + (this.serverSideEncryption != null ? this.serverSideEncryption.hashCode() : 0);
result = 31 * result + (this.stream != null ? this.stream.hashCode() : 0);
result = 31 * result + (this.tableClass != null ? this.tableClass.hashCode() : 0);
result = 31 * result + (this.timeToLiveAttribute != null ? this.timeToLiveAttribute.hashCode() : 0);
result = 31 * result + (this.waitForReplicationToFinish != null ? this.waitForReplicationToFinish.hashCode() : 0);
result = 31 * result + (this.writeCapacity != null ? this.writeCapacity.hashCode() : 0);
result = 31 * result + (this.partitionKey.hashCode());
result = 31 * result + (this.sortKey != null ? this.sortKey.hashCode() : 0);
return result;
}
}
}