docs
reference
services
tessl install tessl/maven-com-pulumi--aws@7.16.0Pulumi Java SDK for AWS providing strongly-typed Infrastructure-as-Code for 227 AWS service packages including compute, storage, databases, networking, security, analytics, machine learning, and more.
Amazon DynamoDB provides a fully managed NoSQL database service.
Amazon DynamoDB provides a fully managed NoSQL database service.
import com.pulumi.aws.dynamodb.Table;
import com.pulumi.aws.dynamodb.TableArgs;
import com.pulumi.aws.dynamodb.GlobalTable;
import com.pulumi.aws.dynamodb.GlobalTableArgs;
import com.pulumi.aws.dynamodb.TableItem;
import com.pulumi.aws.dynamodb.TableItemArgs;
import com.pulumi.aws.dynamodb.ContributorInsights;
import com.pulumi.aws.dynamodb.ContributorInsightsArgs;
import com.pulumi.aws.dynamodb.DynamodbFunctions;Create and manage DynamoDB tables.
@ResourceType(type="aws:dynamodb/table:Table")
public class Table extends com.pulumi.resources.CustomResource {
public Table(String name, TableArgs args);
public Table(String name, TableArgs args, @Nullable CustomResourceOptions options);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<List<TableAttribute>> attributes();
public Output<String> hashKey();
public Output<Optional<String>> rangeKey();
public Output<Optional<Integer>> readCapacity();
public Output<Optional<Integer>> writeCapacity();
public Output<Optional<String>> billingMode();
public Output<Optional<List<TableGlobalSecondaryIndex>>> globalSecondaryIndexes();
public Output<Optional<List<TableLocalSecondaryIndex>>> localSecondaryIndexes();
public Output<Optional<TableStreamSpecification>> streamSpecification();
public Output<String> streamArn();
public Output<String> streamLabel();
public Output<Optional<TableTtl>> ttl();
public Output<Optional<TablePointInTimeRecovery>> pointInTimeRecovery();
public Output<Optional<Map<String, String>>> tags();
}
public class TableArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder() { return new Builder(); }
public static final class Builder {
// Required
public Builder name(Output<String> name);
public Builder hashKey(Output<String> hashKey);
public Builder attributes(Output<List<TableAttributeArgs>> attributes);
// Optional
public Builder rangeKey(Output<String> rangeKey);
public Builder billingMode(Output<String> billingMode);
public Builder readCapacity(Output<Integer> readCapacity);
public Builder writeCapacity(Output<Integer> writeCapacity);
public Builder globalSecondaryIndexes(Output<List<TableGlobalSecondaryIndexArgs>> globalSecondaryIndexes);
public Builder localSecondaryIndexes(Output<List<TableLocalSecondaryIndexArgs>> localSecondaryIndexes);
public Builder streamEnabled(Output<Boolean> streamEnabled);
public Builder streamViewType(Output<String> streamViewType);
public Builder ttl(Output<TableTtlArgs> ttl);
public Builder pointInTimeRecovery(Output<TablePointInTimeRecoveryArgs> pointInTimeRecovery);
public Builder serverSideEncryption(Output<TableServerSideEncryptionArgs> serverSideEncryption);
public Builder tags(Output<Map<String, String>> tags);
public Builder deletionProtectionEnabled(Output<Boolean> deletionProtectionEnabled);
public TableArgs build();
}
}Create multi-region DynamoDB tables.
@ResourceType(type="aws:dynamodb/globalTable:GlobalTable")
public class GlobalTable extends com.pulumi.resources.CustomResource {
public GlobalTable(String name, GlobalTableArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<List<GlobalTableReplica>> replicas();
}
public class GlobalTableArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder() { return new Builder(); }
public static final class Builder {
public Builder name(Output<String> name);
public Builder replicas(Output<List<GlobalTableReplicaArgs>> replicas);
public GlobalTableArgs build();
}
}Manage individual items in DynamoDB tables.
@ResourceType(type="aws:dynamodb/tableItem:TableItem")
public class TableItem extends com.pulumi.resources.CustomResource {
public TableItem(String name, TableItemArgs args);
public Output<String> tableName();
public Output<String> hashKey();
public Output<Optional<String>> rangeKey();
public Output<String> item();
}
public class TableItemArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder() { return new Builder(); }
public static final class Builder {
public Builder tableName(Output<String> tableName);
public Builder hashKey(Output<String> hashKey);
public Builder rangeKey(Output<String> rangeKey);
public Builder item(Output<String> item);
public TableItemArgs build();
}
}import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.dynamodb.*;
import com.pulumi.aws.dynamodb.inputs.*;
import java.util.Map;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Create DynamoDB table
var table = new Table("users-table", TableArgs.builder()
.name("users")
.billingMode("PAY_PER_REQUEST")
.hashKey("userId")
.rangeKey("timestamp")
.attributes(
TableAttributeArgs.builder()
.name("userId")
.type("S")
.build(),
TableAttributeArgs.builder()
.name("timestamp")
.type("N")
.build(),
TableAttributeArgs.builder()
.name("email")
.type("S")
.build()
)
.globalSecondaryIndexes(TableGlobalSecondaryIndexArgs.builder()
.name("EmailIndex")
.hashKey("email")
.projectionType("ALL")
.build())
.ttl(TableTtlArgs.builder()
.enabled(true)
.attributeName("expiresAt")
.build())
.pointInTimeRecovery(TablePointInTimeRecoveryArgs.builder()
.enabled(true)
.build())
.serverSideEncryption(TableServerSideEncryptionArgs.builder()
.enabled(true)
.build())
.streamEnabled(true)
.streamViewType("NEW_AND_OLD_IMAGES")
.deletionProtectionEnabled(true)
.tags(Map.of(
"Environment", "Production",
"Application", "UserService"
))
.build());
// Add table item
var item = new TableItem("sample-user", TableItemArgs.builder()
.tableName(table.name())
.hashKey("userId")
.rangeKey("timestamp")
.item("""
{
"userId": {"S": "user123"},
"timestamp": {"N": "1234567890"},
"email": {"S": "user@example.com"},
"name": {"S": "John Doe"}
}
""")
.build());
ctx.export("tableName", table.name());
ctx.export("tableArn", table.arn());
ctx.export("streamArn", table.streamArn());
}
}