Ctrl + k

or run

tessl search
Log in

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/com.pulumi/aws@7.16.x

docs

common-patterns.mdgetting-started.mdindex.mdprovider.md
tile.json

tessl/maven-com-pulumi--aws

tessl install tessl/maven-com-pulumi--aws@7.16.0

Pulumi 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.

dynamodb.mddocs/services/databases/

DynamoDB

Amazon DynamoDB provides a fully managed NoSQL database service.

Amazon DynamoDB provides a fully managed NoSQL database service.

Core Imports

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;

Table Resource

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();
    }
}

Global Table Resource

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();
    }
}

Table Item Resource

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();
    }
}

Usage Example

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());
    }
}