Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.aws.dynamodb.inputs.TableState Maven / Gradle / Ivy
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.aws.dynamodb.inputs;
import com.pulumi.aws.dynamodb.inputs.TableAttributeArgs;
import com.pulumi.aws.dynamodb.inputs.TableGlobalSecondaryIndexArgs;
import com.pulumi.aws.dynamodb.inputs.TableImportTableArgs;
import com.pulumi.aws.dynamodb.inputs.TableLocalSecondaryIndexArgs;
import com.pulumi.aws.dynamodb.inputs.TablePointInTimeRecoveryArgs;
import com.pulumi.aws.dynamodb.inputs.TableReplicaArgs;
import com.pulumi.aws.dynamodb.inputs.TableServerSideEncryptionArgs;
import com.pulumi.aws.dynamodb.inputs.TableTtlArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class TableState extends com.pulumi.resources.ResourceArgs {
public static final TableState Empty = new TableState();
/**
* ARN of the table
*
*/
@Import(name="arn")
private @Nullable Output arn;
/**
* @return ARN of the table
*
*/
public Optional> arn() {
return Optional.ofNullable(this.arn);
}
/**
* Set of nested attribute definitions. Only required for `hash_key` and `range_key` attributes. See below.
*
*/
@Import(name="attributes")
private @Nullable Output> attributes;
/**
* @return Set of nested attribute definitions. Only required for `hash_key` and `range_key` attributes. See below.
*
*/
public Optional>> attributes() {
return Optional.ofNullable(this.attributes);
}
/**
* Controls how you are charged for read and write throughput and how you manage capacity. The valid values are `PROVISIONED` and `PAY_PER_REQUEST`. Defaults to `PROVISIONED`.
*
*/
@Import(name="billingMode")
private @Nullable Output billingMode;
/**
* @return Controls how you are charged for read and write throughput and how you manage capacity. The valid values are `PROVISIONED` and `PAY_PER_REQUEST`. Defaults to `PROVISIONED`.
*
*/
public Optional> billingMode() {
return Optional.ofNullable(this.billingMode);
}
/**
* Enables deletion protection for table. Defaults to `false`.
*
*/
@Import(name="deletionProtectionEnabled")
private @Nullable Output deletionProtectionEnabled;
/**
* @return Enables deletion protection for table. Defaults to `false`.
*
*/
public Optional> deletionProtectionEnabled() {
return Optional.ofNullable(this.deletionProtectionEnabled);
}
/**
* Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
*
*/
@Import(name="globalSecondaryIndexes")
private @Nullable Output> globalSecondaryIndexes;
/**
* @return Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
*
*/
public Optional>> globalSecondaryIndexes() {
return Optional.ofNullable(this.globalSecondaryIndexes);
}
/**
* Attribute to use as the hash (partition) key. Must also be defined as an `attribute`. See below.
*
*/
@Import(name="hashKey")
private @Nullable Output hashKey;
/**
* @return Attribute to use as the hash (partition) key. Must also be defined as an `attribute`. See below.
*
*/
public Optional> hashKey() {
return Optional.ofNullable(this.hashKey);
}
/**
* Import Amazon S3 data into a new table. See below.
*
*/
@Import(name="importTable")
private @Nullable Output importTable;
/**
* @return Import Amazon S3 data into a new table. See below.
*
*/
public Optional> importTable() {
return Optional.ofNullable(this.importTable);
}
/**
* Describe an LSI on the table; these can only be allocated _at creation_ so you cannot change this definition after you have created the resource. See below.
*
*/
@Import(name="localSecondaryIndexes")
private @Nullable Output> localSecondaryIndexes;
/**
* @return Describe an LSI on the table; these can only be allocated _at creation_ so you cannot change this definition after you have created the resource. See below.
*
*/
public Optional>> localSecondaryIndexes() {
return Optional.ofNullable(this.localSecondaryIndexes);
}
/**
* Unique within a region name of the table.
*
* Optional arguments:
*
*/
@Import(name="name")
private @Nullable Output name;
/**
* @return Unique within a region name of the table.
*
* Optional arguments:
*
*/
public Optional> name() {
return Optional.ofNullable(this.name);
}
/**
* Enable point-in-time recovery options. See below.
*
*/
@Import(name="pointInTimeRecovery")
private @Nullable Output pointInTimeRecovery;
/**
* @return Enable point-in-time recovery options. See below.
*
*/
public Optional> pointInTimeRecovery() {
return Optional.ofNullable(this.pointInTimeRecovery);
}
/**
* Attribute to use as the range (sort) key. Must also be defined as an `attribute`, see below.
*
*/
@Import(name="rangeKey")
private @Nullable Output rangeKey;
/**
* @return Attribute to use as the range (sort) key. Must also be defined as an `attribute`, see below.
*
*/
public Optional> rangeKey() {
return Optional.ofNullable(this.rangeKey);
}
/**
* Number of read units for this table. If the `billing_mode` is `PROVISIONED`, this field is required.
*
*/
@Import(name="readCapacity")
private @Nullable Output readCapacity;
/**
* @return Number of read units for this table. If the `billing_mode` is `PROVISIONED`, this field is required.
*
*/
public Optional> readCapacity() {
return Optional.ofNullable(this.readCapacity);
}
/**
* Configuration block(s) with [DynamoDB Global Tables V2 (version 2019.11.21)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html) replication configurations. See below.
*
*/
@Import(name="replicas")
private @Nullable Output> replicas;
/**
* @return Configuration block(s) with [DynamoDB Global Tables V2 (version 2019.11.21)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html) replication configurations. See below.
*
*/
public Optional>> replicas() {
return Optional.ofNullable(this.replicas);
}
/**
* Time of the point-in-time recovery point to restore.
*
*/
@Import(name="restoreDateTime")
private @Nullable Output restoreDateTime;
/**
* @return Time of the point-in-time recovery point to restore.
*
*/
public Optional> restoreDateTime() {
return Optional.ofNullable(this.restoreDateTime);
}
/**
* Name of the table to restore. Must match the name of an existing table.
*
*/
@Import(name="restoreSourceName")
private @Nullable Output restoreSourceName;
/**
* @return Name of the table to restore. Must match the name of an existing table.
*
*/
public Optional> restoreSourceName() {
return Optional.ofNullable(this.restoreSourceName);
}
/**
* ARN of the source table to restore. Must be supplied for cross-region restores.
*
*/
@Import(name="restoreSourceTableArn")
private @Nullable Output restoreSourceTableArn;
/**
* @return ARN of the source table to restore. Must be supplied for cross-region restores.
*
*/
public Optional> restoreSourceTableArn() {
return Optional.ofNullable(this.restoreSourceTableArn);
}
/**
* If set, restores table to the most recent point-in-time recovery point.
*
*/
@Import(name="restoreToLatestTime")
private @Nullable Output restoreToLatestTime;
/**
* @return If set, restores table to the most recent point-in-time recovery point.
*
*/
public Optional> restoreToLatestTime() {
return Optional.ofNullable(this.restoreToLatestTime);
}
/**
* Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. Must be supplied for cross-region restores. See below.
*
*/
@Import(name="serverSideEncryption")
private @Nullable Output serverSideEncryption;
/**
* @return Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. Must be supplied for cross-region restores. See below.
*
*/
public Optional> serverSideEncryption() {
return Optional.ofNullable(this.serverSideEncryption);
}
/**
* ARN of the Table Stream. Only available when `stream_enabled = true`
*
*/
@Import(name="streamArn")
private @Nullable Output streamArn;
/**
* @return ARN of the Table Stream. Only available when `stream_enabled = true`
*
*/
public Optional> streamArn() {
return Optional.ofNullable(this.streamArn);
}
/**
* Whether Streams are enabled.
*
*/
@Import(name="streamEnabled")
private @Nullable Output streamEnabled;
/**
* @return Whether Streams are enabled.
*
*/
public Optional> streamEnabled() {
return Optional.ofNullable(this.streamEnabled);
}
/**
* Timestamp, in ISO 8601 format, for this stream. Note that this timestamp is not a unique identifier for the stream on its own. However, the combination of AWS customer ID, table name and this field is guaranteed to be unique. It can be used for creating CloudWatch Alarms. Only available when `stream_enabled = true`.
*
*/
@Import(name="streamLabel")
private @Nullable Output streamLabel;
/**
* @return Timestamp, in ISO 8601 format, for this stream. Note that this timestamp is not a unique identifier for the stream on its own. However, the combination of AWS customer ID, table name and this field is guaranteed to be unique. It can be used for creating CloudWatch Alarms. Only available when `stream_enabled = true`.
*
*/
public Optional> streamLabel() {
return Optional.ofNullable(this.streamLabel);
}
/**
* When an item in the table is modified, StreamViewType determines what information is written to the table's stream. Valid values are `KEYS_ONLY`, `NEW_IMAGE`, `OLD_IMAGE`, `NEW_AND_OLD_IMAGES`.
*
*/
@Import(name="streamViewType")
private @Nullable Output streamViewType;
/**
* @return When an item in the table is modified, StreamViewType determines what information is written to the table's stream. Valid values are `KEYS_ONLY`, `NEW_IMAGE`, `OLD_IMAGE`, `NEW_AND_OLD_IMAGES`.
*
*/
public Optional> streamViewType() {
return Optional.ofNullable(this.streamViewType);
}
/**
* Storage class of the table.
* Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`.
* Default value is `STANDARD`.
*
*/
@Import(name="tableClass")
private @Nullable Output tableClass;
/**
* @return Storage class of the table.
* Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`.
* Default value is `STANDARD`.
*
*/
public Optional> tableClass() {
return Optional.ofNullable(this.tableClass);
}
/**
* A map of tags to populate on the created table. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*
*/
@Import(name="tags")
private @Nullable Output> tags;
/**
* @return A map of tags to populate on the created table. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*
*/
public Optional>> tags() {
return Optional.ofNullable(this.tags);
}
/**
* Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
*
* @deprecated
* Please use `tags` instead.
*
*/
@Deprecated /* Please use `tags` instead. */
@Import(name="tagsAll")
private @Nullable Output> tagsAll;
/**
* @return Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
*
* @deprecated
* Please use `tags` instead.
*
*/
@Deprecated /* Please use `tags` instead. */
public Optional>> tagsAll() {
return Optional.ofNullable(this.tagsAll);
}
/**
* Configuration block for TTL. See below.
*
*/
@Import(name="ttl")
private @Nullable Output ttl;
/**
* @return Configuration block for TTL. See below.
*
*/
public Optional> ttl() {
return Optional.ofNullable(this.ttl);
}
/**
* Number of write units for this table. If the `billing_mode` is `PROVISIONED`, this field is required.
*
*/
@Import(name="writeCapacity")
private @Nullable Output writeCapacity;
/**
* @return Number of write units for this table. If the `billing_mode` is `PROVISIONED`, this field is required.
*
*/
public Optional> writeCapacity() {
return Optional.ofNullable(this.writeCapacity);
}
private TableState() {}
private TableState(TableState $) {
this.arn = $.arn;
this.attributes = $.attributes;
this.billingMode = $.billingMode;
this.deletionProtectionEnabled = $.deletionProtectionEnabled;
this.globalSecondaryIndexes = $.globalSecondaryIndexes;
this.hashKey = $.hashKey;
this.importTable = $.importTable;
this.localSecondaryIndexes = $.localSecondaryIndexes;
this.name = $.name;
this.pointInTimeRecovery = $.pointInTimeRecovery;
this.rangeKey = $.rangeKey;
this.readCapacity = $.readCapacity;
this.replicas = $.replicas;
this.restoreDateTime = $.restoreDateTime;
this.restoreSourceName = $.restoreSourceName;
this.restoreSourceTableArn = $.restoreSourceTableArn;
this.restoreToLatestTime = $.restoreToLatestTime;
this.serverSideEncryption = $.serverSideEncryption;
this.streamArn = $.streamArn;
this.streamEnabled = $.streamEnabled;
this.streamLabel = $.streamLabel;
this.streamViewType = $.streamViewType;
this.tableClass = $.tableClass;
this.tags = $.tags;
this.tagsAll = $.tagsAll;
this.ttl = $.ttl;
this.writeCapacity = $.writeCapacity;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(TableState defaults) {
return new Builder(defaults);
}
public static final class Builder {
private TableState $;
public Builder() {
$ = new TableState();
}
public Builder(TableState defaults) {
$ = new TableState(Objects.requireNonNull(defaults));
}
/**
* @param arn ARN of the table
*
* @return builder
*
*/
public Builder arn(@Nullable Output arn) {
$.arn = arn;
return this;
}
/**
* @param arn ARN of the table
*
* @return builder
*
*/
public Builder arn(String arn) {
return arn(Output.of(arn));
}
/**
* @param attributes Set of nested attribute definitions. Only required for `hash_key` and `range_key` attributes. See below.
*
* @return builder
*
*/
public Builder attributes(@Nullable Output> attributes) {
$.attributes = attributes;
return this;
}
/**
* @param attributes Set of nested attribute definitions. Only required for `hash_key` and `range_key` attributes. See below.
*
* @return builder
*
*/
public Builder attributes(List attributes) {
return attributes(Output.of(attributes));
}
/**
* @param attributes Set of nested attribute definitions. Only required for `hash_key` and `range_key` attributes. See below.
*
* @return builder
*
*/
public Builder attributes(TableAttributeArgs... attributes) {
return attributes(List.of(attributes));
}
/**
* @param billingMode Controls how you are charged for read and write throughput and how you manage capacity. The valid values are `PROVISIONED` and `PAY_PER_REQUEST`. Defaults to `PROVISIONED`.
*
* @return builder
*
*/
public Builder billingMode(@Nullable Output billingMode) {
$.billingMode = billingMode;
return this;
}
/**
* @param billingMode Controls how you are charged for read and write throughput and how you manage capacity. The valid values are `PROVISIONED` and `PAY_PER_REQUEST`. Defaults to `PROVISIONED`.
*
* @return builder
*
*/
public Builder billingMode(String billingMode) {
return billingMode(Output.of(billingMode));
}
/**
* @param deletionProtectionEnabled Enables deletion protection for table. Defaults to `false`.
*
* @return builder
*
*/
public Builder deletionProtectionEnabled(@Nullable Output deletionProtectionEnabled) {
$.deletionProtectionEnabled = deletionProtectionEnabled;
return this;
}
/**
* @param deletionProtectionEnabled Enables deletion protection for table. Defaults to `false`.
*
* @return builder
*
*/
public Builder deletionProtectionEnabled(Boolean deletionProtectionEnabled) {
return deletionProtectionEnabled(Output.of(deletionProtectionEnabled));
}
/**
* @param globalSecondaryIndexes Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
*
* @return builder
*
*/
public Builder globalSecondaryIndexes(@Nullable Output> globalSecondaryIndexes) {
$.globalSecondaryIndexes = globalSecondaryIndexes;
return this;
}
/**
* @param globalSecondaryIndexes Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
*
* @return builder
*
*/
public Builder globalSecondaryIndexes(List globalSecondaryIndexes) {
return globalSecondaryIndexes(Output.of(globalSecondaryIndexes));
}
/**
* @param globalSecondaryIndexes Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
*
* @return builder
*
*/
public Builder globalSecondaryIndexes(TableGlobalSecondaryIndexArgs... globalSecondaryIndexes) {
return globalSecondaryIndexes(List.of(globalSecondaryIndexes));
}
/**
* @param hashKey Attribute to use as the hash (partition) key. Must also be defined as an `attribute`. See below.
*
* @return builder
*
*/
public Builder hashKey(@Nullable Output hashKey) {
$.hashKey = hashKey;
return this;
}
/**
* @param hashKey Attribute to use as the hash (partition) key. Must also be defined as an `attribute`. See below.
*
* @return builder
*
*/
public Builder hashKey(String hashKey) {
return hashKey(Output.of(hashKey));
}
/**
* @param importTable Import Amazon S3 data into a new table. See below.
*
* @return builder
*
*/
public Builder importTable(@Nullable Output importTable) {
$.importTable = importTable;
return this;
}
/**
* @param importTable Import Amazon S3 data into a new table. See below.
*
* @return builder
*
*/
public Builder importTable(TableImportTableArgs importTable) {
return importTable(Output.of(importTable));
}
/**
* @param localSecondaryIndexes Describe an LSI on the table; these can only be allocated _at creation_ so you cannot change this definition after you have created the resource. See below.
*
* @return builder
*
*/
public Builder localSecondaryIndexes(@Nullable Output> localSecondaryIndexes) {
$.localSecondaryIndexes = localSecondaryIndexes;
return this;
}
/**
* @param localSecondaryIndexes Describe an LSI on the table; these can only be allocated _at creation_ so you cannot change this definition after you have created the resource. See below.
*
* @return builder
*
*/
public Builder localSecondaryIndexes(List localSecondaryIndexes) {
return localSecondaryIndexes(Output.of(localSecondaryIndexes));
}
/**
* @param localSecondaryIndexes Describe an LSI on the table; these can only be allocated _at creation_ so you cannot change this definition after you have created the resource. See below.
*
* @return builder
*
*/
public Builder localSecondaryIndexes(TableLocalSecondaryIndexArgs... localSecondaryIndexes) {
return localSecondaryIndexes(List.of(localSecondaryIndexes));
}
/**
* @param name Unique within a region name of the table.
*
* Optional arguments:
*
* @return builder
*
*/
public Builder name(@Nullable Output name) {
$.name = name;
return this;
}
/**
* @param name Unique within a region name of the table.
*
* Optional arguments:
*
* @return builder
*
*/
public Builder name(String name) {
return name(Output.of(name));
}
/**
* @param pointInTimeRecovery Enable point-in-time recovery options. See below.
*
* @return builder
*
*/
public Builder pointInTimeRecovery(@Nullable Output pointInTimeRecovery) {
$.pointInTimeRecovery = pointInTimeRecovery;
return this;
}
/**
* @param pointInTimeRecovery Enable point-in-time recovery options. See below.
*
* @return builder
*
*/
public Builder pointInTimeRecovery(TablePointInTimeRecoveryArgs pointInTimeRecovery) {
return pointInTimeRecovery(Output.of(pointInTimeRecovery));
}
/**
* @param rangeKey Attribute to use as the range (sort) key. Must also be defined as an `attribute`, see below.
*
* @return builder
*
*/
public Builder rangeKey(@Nullable Output rangeKey) {
$.rangeKey = rangeKey;
return this;
}
/**
* @param rangeKey Attribute to use as the range (sort) key. Must also be defined as an `attribute`, see below.
*
* @return builder
*
*/
public Builder rangeKey(String rangeKey) {
return rangeKey(Output.of(rangeKey));
}
/**
* @param readCapacity Number of read units for this table. If the `billing_mode` is `PROVISIONED`, this field is required.
*
* @return builder
*
*/
public Builder readCapacity(@Nullable Output readCapacity) {
$.readCapacity = readCapacity;
return this;
}
/**
* @param readCapacity Number of read units for this table. If the `billing_mode` is `PROVISIONED`, this field is required.
*
* @return builder
*
*/
public Builder readCapacity(Integer readCapacity) {
return readCapacity(Output.of(readCapacity));
}
/**
* @param replicas Configuration block(s) with [DynamoDB Global Tables V2 (version 2019.11.21)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html) replication configurations. See below.
*
* @return builder
*
*/
public Builder replicas(@Nullable Output> replicas) {
$.replicas = replicas;
return this;
}
/**
* @param replicas Configuration block(s) with [DynamoDB Global Tables V2 (version 2019.11.21)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html) replication configurations. See below.
*
* @return builder
*
*/
public Builder replicas(List replicas) {
return replicas(Output.of(replicas));
}
/**
* @param replicas Configuration block(s) with [DynamoDB Global Tables V2 (version 2019.11.21)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html) replication configurations. See below.
*
* @return builder
*
*/
public Builder replicas(TableReplicaArgs... replicas) {
return replicas(List.of(replicas));
}
/**
* @param restoreDateTime Time of the point-in-time recovery point to restore.
*
* @return builder
*
*/
public Builder restoreDateTime(@Nullable Output restoreDateTime) {
$.restoreDateTime = restoreDateTime;
return this;
}
/**
* @param restoreDateTime Time of the point-in-time recovery point to restore.
*
* @return builder
*
*/
public Builder restoreDateTime(String restoreDateTime) {
return restoreDateTime(Output.of(restoreDateTime));
}
/**
* @param restoreSourceName Name of the table to restore. Must match the name of an existing table.
*
* @return builder
*
*/
public Builder restoreSourceName(@Nullable Output restoreSourceName) {
$.restoreSourceName = restoreSourceName;
return this;
}
/**
* @param restoreSourceName Name of the table to restore. Must match the name of an existing table.
*
* @return builder
*
*/
public Builder restoreSourceName(String restoreSourceName) {
return restoreSourceName(Output.of(restoreSourceName));
}
/**
* @param restoreSourceTableArn ARN of the source table to restore. Must be supplied for cross-region restores.
*
* @return builder
*
*/
public Builder restoreSourceTableArn(@Nullable Output restoreSourceTableArn) {
$.restoreSourceTableArn = restoreSourceTableArn;
return this;
}
/**
* @param restoreSourceTableArn ARN of the source table to restore. Must be supplied for cross-region restores.
*
* @return builder
*
*/
public Builder restoreSourceTableArn(String restoreSourceTableArn) {
return restoreSourceTableArn(Output.of(restoreSourceTableArn));
}
/**
* @param restoreToLatestTime If set, restores table to the most recent point-in-time recovery point.
*
* @return builder
*
*/
public Builder restoreToLatestTime(@Nullable Output restoreToLatestTime) {
$.restoreToLatestTime = restoreToLatestTime;
return this;
}
/**
* @param restoreToLatestTime If set, restores table to the most recent point-in-time recovery point.
*
* @return builder
*
*/
public Builder restoreToLatestTime(Boolean restoreToLatestTime) {
return restoreToLatestTime(Output.of(restoreToLatestTime));
}
/**
* @param serverSideEncryption Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. Must be supplied for cross-region restores. See below.
*
* @return builder
*
*/
public Builder serverSideEncryption(@Nullable Output serverSideEncryption) {
$.serverSideEncryption = serverSideEncryption;
return this;
}
/**
* @param serverSideEncryption Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. Must be supplied for cross-region restores. See below.
*
* @return builder
*
*/
public Builder serverSideEncryption(TableServerSideEncryptionArgs serverSideEncryption) {
return serverSideEncryption(Output.of(serverSideEncryption));
}
/**
* @param streamArn ARN of the Table Stream. Only available when `stream_enabled = true`
*
* @return builder
*
*/
public Builder streamArn(@Nullable Output streamArn) {
$.streamArn = streamArn;
return this;
}
/**
* @param streamArn ARN of the Table Stream. Only available when `stream_enabled = true`
*
* @return builder
*
*/
public Builder streamArn(String streamArn) {
return streamArn(Output.of(streamArn));
}
/**
* @param streamEnabled Whether Streams are enabled.
*
* @return builder
*
*/
public Builder streamEnabled(@Nullable Output streamEnabled) {
$.streamEnabled = streamEnabled;
return this;
}
/**
* @param streamEnabled Whether Streams are enabled.
*
* @return builder
*
*/
public Builder streamEnabled(Boolean streamEnabled) {
return streamEnabled(Output.of(streamEnabled));
}
/**
* @param streamLabel Timestamp, in ISO 8601 format, for this stream. Note that this timestamp is not a unique identifier for the stream on its own. However, the combination of AWS customer ID, table name and this field is guaranteed to be unique. It can be used for creating CloudWatch Alarms. Only available when `stream_enabled = true`.
*
* @return builder
*
*/
public Builder streamLabel(@Nullable Output streamLabel) {
$.streamLabel = streamLabel;
return this;
}
/**
* @param streamLabel Timestamp, in ISO 8601 format, for this stream. Note that this timestamp is not a unique identifier for the stream on its own. However, the combination of AWS customer ID, table name and this field is guaranteed to be unique. It can be used for creating CloudWatch Alarms. Only available when `stream_enabled = true`.
*
* @return builder
*
*/
public Builder streamLabel(String streamLabel) {
return streamLabel(Output.of(streamLabel));
}
/**
* @param streamViewType When an item in the table is modified, StreamViewType determines what information is written to the table's stream. Valid values are `KEYS_ONLY`, `NEW_IMAGE`, `OLD_IMAGE`, `NEW_AND_OLD_IMAGES`.
*
* @return builder
*
*/
public Builder streamViewType(@Nullable Output streamViewType) {
$.streamViewType = streamViewType;
return this;
}
/**
* @param streamViewType When an item in the table is modified, StreamViewType determines what information is written to the table's stream. Valid values are `KEYS_ONLY`, `NEW_IMAGE`, `OLD_IMAGE`, `NEW_AND_OLD_IMAGES`.
*
* @return builder
*
*/
public Builder streamViewType(String streamViewType) {
return streamViewType(Output.of(streamViewType));
}
/**
* @param tableClass Storage class of the table.
* Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`.
* Default value is `STANDARD`.
*
* @return builder
*
*/
public Builder tableClass(@Nullable Output tableClass) {
$.tableClass = tableClass;
return this;
}
/**
* @param tableClass Storage class of the table.
* Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`.
* Default value is `STANDARD`.
*
* @return builder
*
*/
public Builder tableClass(String tableClass) {
return tableClass(Output.of(tableClass));
}
/**
* @param tags A map of tags to populate on the created table. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*
* @return builder
*
*/
public Builder tags(@Nullable Output> tags) {
$.tags = tags;
return this;
}
/**
* @param tags A map of tags to populate on the created table. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*
* @return builder
*
*/
public Builder tags(Map tags) {
return tags(Output.of(tags));
}
/**
* @param tagsAll Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
*
* @return builder
*
* @deprecated
* Please use `tags` instead.
*
*/
@Deprecated /* Please use `tags` instead. */
public Builder tagsAll(@Nullable Output> tagsAll) {
$.tagsAll = tagsAll;
return this;
}
/**
* @param tagsAll Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
*
* @return builder
*
* @deprecated
* Please use `tags` instead.
*
*/
@Deprecated /* Please use `tags` instead. */
public Builder tagsAll(Map tagsAll) {
return tagsAll(Output.of(tagsAll));
}
/**
* @param ttl Configuration block for TTL. See below.
*
* @return builder
*
*/
public Builder ttl(@Nullable Output ttl) {
$.ttl = ttl;
return this;
}
/**
* @param ttl Configuration block for TTL. See below.
*
* @return builder
*
*/
public Builder ttl(TableTtlArgs ttl) {
return ttl(Output.of(ttl));
}
/**
* @param writeCapacity Number of write units for this table. If the `billing_mode` is `PROVISIONED`, this field is required.
*
* @return builder
*
*/
public Builder writeCapacity(@Nullable Output writeCapacity) {
$.writeCapacity = writeCapacity;
return this;
}
/**
* @param writeCapacity Number of write units for this table. If the `billing_mode` is `PROVISIONED`, this field is required.
*
* @return builder
*
*/
public Builder writeCapacity(Integer writeCapacity) {
return writeCapacity(Output.of(writeCapacity));
}
public TableState build() {
return $;
}
}
}