aws logo
AWS Classic v5.29.0, Feb 1 23

aws.dynamodb.Table

Provides a DynamoDB table resource.

Note: It is recommended to use ignoreChanges for read_capacity and/or write_capacity if there’s autoscaling policy attached to the table.

Note: When using aws.dynamodb.TableReplica with this resource, use lifecycle ignore_changes for replica, e.g., lifecycle { ignore_changes = [replica] }.

DynamoDB Table attributes

Only define attributes on the table object that are going to be used as:

  • Table hash key or range key
  • LSI or GSI hash key or range key

The DynamoDB API expects attribute structure (name and type) to be passed along when creating or updating GSI/LSIs or creating the initial table. In these cases it expects the Hash / Range keys to be provided. Because these get re-used in numerous places (i.e the table’s range key could be a part of one or more GSIs), they are stored on the table object to prevent duplication and increase consistency. If you add attributes here that are not used in these scenarios it can cause an infinite loop in planning.

Example Usage

Basic Example

using System.Collections.Generic;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var basic_dynamodb_table = new Aws.DynamoDB.Table("basic-dynamodb-table", new()
    {
        Attributes = new[]
        {
            new Aws.DynamoDB.Inputs.TableAttributeArgs
            {
                Name = "UserId",
                Type = "S",
            },
            new Aws.DynamoDB.Inputs.TableAttributeArgs
            {
                Name = "GameTitle",
                Type = "S",
            },
            new Aws.DynamoDB.Inputs.TableAttributeArgs
            {
                Name = "TopScore",
                Type = "N",
            },
        },
        BillingMode = "PROVISIONED",
        GlobalSecondaryIndexes = new[]
        {
            new Aws.DynamoDB.Inputs.TableGlobalSecondaryIndexArgs
            {
                HashKey = "GameTitle",
                Name = "GameTitleIndex",
                NonKeyAttributes = new[]
                {
                    "UserId",
                },
                ProjectionType = "INCLUDE",
                RangeKey = "TopScore",
                ReadCapacity = 10,
                WriteCapacity = 10,
            },
        },
        HashKey = "UserId",
        RangeKey = "GameTitle",
        ReadCapacity = 20,
        Tags = 
        {
            { "Environment", "production" },
            { "Name", "dynamodb-table-1" },
        },
        Ttl = new Aws.DynamoDB.Inputs.TableTtlArgs
        {
            AttributeName = "TimeToExist",
            Enabled = false,
        },
        WriteCapacity = 20,
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/dynamodb"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := dynamodb.NewTable(ctx, "basic-dynamodb-table", &dynamodb.TableArgs{
			Attributes: dynamodb.TableAttributeArray{
				&dynamodb.TableAttributeArgs{
					Name: pulumi.String("UserId"),
					Type: pulumi.String("S"),
				},
				&dynamodb.TableAttributeArgs{
					Name: pulumi.String("GameTitle"),
					Type: pulumi.String("S"),
				},
				&dynamodb.TableAttributeArgs{
					Name: pulumi.String("TopScore"),
					Type: pulumi.String("N"),
				},
			},
			BillingMode: pulumi.String("PROVISIONED"),
			GlobalSecondaryIndexes: dynamodb.TableGlobalSecondaryIndexArray{
				&dynamodb.TableGlobalSecondaryIndexArgs{
					HashKey: pulumi.String("GameTitle"),
					Name:    pulumi.String("GameTitleIndex"),
					NonKeyAttributes: pulumi.StringArray{
						pulumi.String("UserId"),
					},
					ProjectionType: pulumi.String("INCLUDE"),
					RangeKey:       pulumi.String("TopScore"),
					ReadCapacity:   pulumi.Int(10),
					WriteCapacity:  pulumi.Int(10),
				},
			},
			HashKey:      pulumi.String("UserId"),
			RangeKey:     pulumi.String("GameTitle"),
			ReadCapacity: pulumi.Int(20),
			Tags: pulumi.StringMap{
				"Environment": pulumi.String("production"),
				"Name":        pulumi.String("dynamodb-table-1"),
			},
			Ttl: &dynamodb.TableTtlArgs{
				AttributeName: pulumi.String("TimeToExist"),
				Enabled:       pulumi.Bool(false),
			},
			WriteCapacity: pulumi.Int(20),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.dynamodb.Table;
import com.pulumi.aws.dynamodb.TableArgs;
import com.pulumi.aws.dynamodb.inputs.TableAttributeArgs;
import com.pulumi.aws.dynamodb.inputs.TableGlobalSecondaryIndexArgs;
import com.pulumi.aws.dynamodb.inputs.TableTtlArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var basic_dynamodb_table = new Table("basic-dynamodb-table", TableArgs.builder()        
            .attributes(            
                TableAttributeArgs.builder()
                    .name("UserId")
                    .type("S")
                    .build(),
                TableAttributeArgs.builder()
                    .name("GameTitle")
                    .type("S")
                    .build(),
                TableAttributeArgs.builder()
                    .name("TopScore")
                    .type("N")
                    .build())
            .billingMode("PROVISIONED")
            .globalSecondaryIndexes(TableGlobalSecondaryIndexArgs.builder()
                .hashKey("GameTitle")
                .name("GameTitleIndex")
                .nonKeyAttributes("UserId")
                .projectionType("INCLUDE")
                .rangeKey("TopScore")
                .readCapacity(10)
                .writeCapacity(10)
                .build())
            .hashKey("UserId")
            .rangeKey("GameTitle")
            .readCapacity(20)
            .tags(Map.ofEntries(
                Map.entry("Environment", "production"),
                Map.entry("Name", "dynamodb-table-1")
            ))
            .ttl(TableTtlArgs.builder()
                .attributeName("TimeToExist")
                .enabled(false)
                .build())
            .writeCapacity(20)
            .build());

    }
}
import pulumi
import pulumi_aws as aws

basic_dynamodb_table = aws.dynamodb.Table("basic-dynamodb-table",
    attributes=[
        aws.dynamodb.TableAttributeArgs(
            name="UserId",
            type="S",
        ),
        aws.dynamodb.TableAttributeArgs(
            name="GameTitle",
            type="S",
        ),
        aws.dynamodb.TableAttributeArgs(
            name="TopScore",
            type="N",
        ),
    ],
    billing_mode="PROVISIONED",
    global_secondary_indexes=[aws.dynamodb.TableGlobalSecondaryIndexArgs(
        hash_key="GameTitle",
        name="GameTitleIndex",
        non_key_attributes=["UserId"],
        projection_type="INCLUDE",
        range_key="TopScore",
        read_capacity=10,
        write_capacity=10,
    )],
    hash_key="UserId",
    range_key="GameTitle",
    read_capacity=20,
    tags={
        "Environment": "production",
        "Name": "dynamodb-table-1",
    },
    ttl=aws.dynamodb.TableTtlArgs(
        attribute_name="TimeToExist",
        enabled=False,
    ),
    write_capacity=20)
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const basic_dynamodb_table = new aws.dynamodb.Table("basic-dynamodb-table", {
    attributes: [
        {
            name: "UserId",
            type: "S",
        },
        {
            name: "GameTitle",
            type: "S",
        },
        {
            name: "TopScore",
            type: "N",
        },
    ],
    billingMode: "PROVISIONED",
    globalSecondaryIndexes: [{
        hashKey: "GameTitle",
        name: "GameTitleIndex",
        nonKeyAttributes: ["UserId"],
        projectionType: "INCLUDE",
        rangeKey: "TopScore",
        readCapacity: 10,
        writeCapacity: 10,
    }],
    hashKey: "UserId",
    rangeKey: "GameTitle",
    readCapacity: 20,
    tags: {
        Environment: "production",
        Name: "dynamodb-table-1",
    },
    ttl: {
        attributeName: "TimeToExist",
        enabled: false,
    },
    writeCapacity: 20,
});
resources:
  basic-dynamodb-table:
    type: aws:dynamodb:Table
    properties:
      attributes:
        - name: UserId
          type: S
        - name: GameTitle
          type: S
        - name: TopScore
          type: N
      billingMode: PROVISIONED
      globalSecondaryIndexes:
        - hashKey: GameTitle
          name: GameTitleIndex
          nonKeyAttributes:
            - UserId
          projectionType: INCLUDE
          rangeKey: TopScore
          readCapacity: 10
          writeCapacity: 10
      hashKey: UserId
      rangeKey: GameTitle
      readCapacity: 20
      tags:
        Environment: production
        Name: dynamodb-table-1
      ttl:
        attributeName: TimeToExist
        enabled: false
      writeCapacity: 20

Global Tables

using System.Collections.Generic;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.DynamoDB.Table("example", new()
    {
        Attributes = new[]
        {
            new Aws.DynamoDB.Inputs.TableAttributeArgs
            {
                Name = "TestTableHashKey",
                Type = "S",
            },
        },
        BillingMode = "PAY_PER_REQUEST",
        HashKey = "TestTableHashKey",
        Replicas = new[]
        {
            new Aws.DynamoDB.Inputs.TableReplicaArgs
            {
                RegionName = "us-east-2",
            },
            new Aws.DynamoDB.Inputs.TableReplicaArgs
            {
                RegionName = "us-west-2",
            },
        },
        StreamEnabled = true,
        StreamViewType = "NEW_AND_OLD_IMAGES",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/dynamodb"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := dynamodb.NewTable(ctx, "example", &dynamodb.TableArgs{
			Attributes: dynamodb.TableAttributeArray{
				&dynamodb.TableAttributeArgs{
					Name: pulumi.String("TestTableHashKey"),
					Type: pulumi.String("S"),
				},
			},
			BillingMode: pulumi.String("PAY_PER_REQUEST"),
			HashKey:     pulumi.String("TestTableHashKey"),
			Replicas: dynamodb.TableReplicaTypeArray{
				&dynamodb.TableReplicaTypeArgs{
					RegionName: pulumi.String("us-east-2"),
				},
				&dynamodb.TableReplicaTypeArgs{
					RegionName: pulumi.String("us-west-2"),
				},
			},
			StreamEnabled:  pulumi.Bool(true),
			StreamViewType: pulumi.String("NEW_AND_OLD_IMAGES"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.dynamodb.Table;
import com.pulumi.aws.dynamodb.TableArgs;
import com.pulumi.aws.dynamodb.inputs.TableAttributeArgs;
import com.pulumi.aws.dynamodb.inputs.TableReplicaArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Table("example", TableArgs.builder()        
            .attributes(TableAttributeArgs.builder()
                .name("TestTableHashKey")
                .type("S")
                .build())
            .billingMode("PAY_PER_REQUEST")
            .hashKey("TestTableHashKey")
            .replicas(            
                TableReplicaArgs.builder()
                    .regionName("us-east-2")
                    .build(),
                TableReplicaArgs.builder()
                    .regionName("us-west-2")
                    .build())
            .streamEnabled(true)
            .streamViewType("NEW_AND_OLD_IMAGES")
            .build());

    }
}
import pulumi
import pulumi_aws as aws

example = aws.dynamodb.Table("example",
    attributes=[aws.dynamodb.TableAttributeArgs(
        name="TestTableHashKey",
        type="S",
    )],
    billing_mode="PAY_PER_REQUEST",
    hash_key="TestTableHashKey",
    replicas=[
        aws.dynamodb.TableReplicaArgs(
            region_name="us-east-2",
        ),
        aws.dynamodb.TableReplicaArgs(
            region_name="us-west-2",
        ),
    ],
    stream_enabled=True,
    stream_view_type="NEW_AND_OLD_IMAGES")
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.dynamodb.Table("example", {
    attributes: [{
        name: "TestTableHashKey",
        type: "S",
    }],
    billingMode: "PAY_PER_REQUEST",
    hashKey: "TestTableHashKey",
    replicas: [
        {
            regionName: "us-east-2",
        },
        {
            regionName: "us-west-2",
        },
    ],
    streamEnabled: true,
    streamViewType: "NEW_AND_OLD_IMAGES",
});
resources:
  example:
    type: aws:dynamodb:Table
    properties:
      attributes:
        - name: TestTableHashKey
          type: S
      billingMode: PAY_PER_REQUEST
      hashKey: TestTableHashKey
      replicas:
        - regionName: us-east-2
        - regionName: us-west-2
      streamEnabled: true
      streamViewType: NEW_AND_OLD_IMAGES

Create Table Resource

new Table(name: string, args?: TableArgs, opts?: CustomResourceOptions);
@overload
def Table(resource_name: str,
          opts: Optional[ResourceOptions] = None,
          attributes: Optional[Sequence[TableAttributeArgs]] = None,
          billing_mode: Optional[str] = None,
          global_secondary_indexes: Optional[Sequence[TableGlobalSecondaryIndexArgs]] = None,
          hash_key: Optional[str] = None,
          local_secondary_indexes: Optional[Sequence[TableLocalSecondaryIndexArgs]] = None,
          name: Optional[str] = None,
          point_in_time_recovery: Optional[TablePointInTimeRecoveryArgs] = None,
          range_key: Optional[str] = None,
          read_capacity: Optional[int] = None,
          replicas: Optional[Sequence[TableReplicaArgs]] = None,
          restore_date_time: Optional[str] = None,
          restore_source_name: Optional[str] = None,
          restore_to_latest_time: Optional[bool] = None,
          server_side_encryption: Optional[TableServerSideEncryptionArgs] = None,
          stream_enabled: Optional[bool] = None,
          stream_view_type: Optional[str] = None,
          table_class: Optional[str] = None,
          tags: Optional[Mapping[str, str]] = None,
          ttl: Optional[TableTtlArgs] = None,
          write_capacity: Optional[int] = None)
@overload
def Table(resource_name: str,
          args: Optional[TableArgs] = None,
          opts: Optional[ResourceOptions] = None)
func NewTable(ctx *Context, name string, args *TableArgs, opts ...ResourceOption) (*Table, error)
public Table(string name, TableArgs? args = null, CustomResourceOptions? opts = null)
public Table(String name, TableArgs args)
public Table(String name, TableArgs args, CustomResourceOptions options)
type: aws:dynamodb:Table
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

name string
The unique name of the resource.
args TableArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name str
The unique name of the resource.
args TableArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name string
The unique name of the resource.
args TableArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args TableArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name String
The unique name of the resource.
args TableArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

Table Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

The Table resource accepts the following input properties:

Attributes List<TableAttributeArgs>

Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below.

BillingMode string

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.

GlobalSecondaryIndexes List<TableGlobalSecondaryIndexArgs>

Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.

HashKey string

Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.

LocalSecondaryIndexes List<TableLocalSecondaryIndexArgs>

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.

Name string

Unique within a region name of the table.

PointInTimeRecovery TablePointInTimeRecoveryArgs

Enable point-in-time recovery options. See below.

RangeKey string

Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.

ReadCapacity int

Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.

Replicas List<TableReplicaArgs>

Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.

RestoreDateTime string

Time of the point-in-time recovery point to restore.

RestoreSourceName string

Name of the table to restore. Must match the name of an existing table.

RestoreToLatestTime bool

If set, restores table to the most recent point-in-time recovery point.

ServerSideEncryption TableServerSideEncryptionArgs

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. See below.

StreamEnabled bool

Whether Streams are enabled.

StreamViewType string

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.

TableClass string

Storage class of the table. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS.

Tags Dictionary<string, string>

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.

Ttl TableTtlArgs

Configuration block for TTL. See below.

WriteCapacity int

Number of write units for this table. If the billing_mode is PROVISIONED, this field is required.

Attributes []TableAttributeArgs

Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below.

BillingMode string

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.

GlobalSecondaryIndexes []TableGlobalSecondaryIndexArgs

Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.

HashKey string

Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.

LocalSecondaryIndexes []TableLocalSecondaryIndexArgs

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.

Name string

Unique within a region name of the table.

PointInTimeRecovery TablePointInTimeRecoveryArgs

Enable point-in-time recovery options. See below.

RangeKey string

Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.

ReadCapacity int

Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.

Replicas []TableReplicaTypeArgs

Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.

RestoreDateTime string

Time of the point-in-time recovery point to restore.

RestoreSourceName string

Name of the table to restore. Must match the name of an existing table.

RestoreToLatestTime bool

If set, restores table to the most recent point-in-time recovery point.

ServerSideEncryption TableServerSideEncryptionArgs

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. See below.

StreamEnabled bool

Whether Streams are enabled.

StreamViewType string

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.

TableClass string

Storage class of the table. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS.

Tags map[string]string

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.

Ttl TableTtlArgs

Configuration block for TTL. See below.

WriteCapacity int

Number of write units for this table. If the billing_mode is PROVISIONED, this field is required.

attributes List<TableAttributeArgs>

Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below.

billingMode String

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.

globalSecondaryIndexes List<TableGlobalSecondaryIndexArgs>

Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.

hashKey String

Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.

localSecondaryIndexes List<TableLocalSecondaryIndexArgs>

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.

name String

Unique within a region name of the table.

pointInTimeRecovery TablePointInTimeRecoveryArgs

Enable point-in-time recovery options. See below.

rangeKey String

Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.

readCapacity Integer

Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.

replicas List<TableReplicaArgs>

Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.

restoreDateTime String

Time of the point-in-time recovery point to restore.

restoreSourceName String

Name of the table to restore. Must match the name of an existing table.

restoreToLatestTime Boolean

If set, restores table to the most recent point-in-time recovery point.

serverSideEncryption TableServerSideEncryptionArgs

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. See below.

streamEnabled Boolean

Whether Streams are enabled.

streamViewType String

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.

tableClass String

Storage class of the table. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS.

tags Map<String,String>

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.

ttl TableTtlArgs

Configuration block for TTL. See below.

writeCapacity Integer

Number of write units for this table. If the billing_mode is PROVISIONED, this field is required.

attributes TableAttributeArgs[]

Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below.

billingMode string

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.

globalSecondaryIndexes TableGlobalSecondaryIndexArgs[]

Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.

hashKey string

Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.

localSecondaryIndexes TableLocalSecondaryIndexArgs[]

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.

name string

Unique within a region name of the table.

pointInTimeRecovery TablePointInTimeRecoveryArgs

Enable point-in-time recovery options. See below.

rangeKey string

Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.

readCapacity number

Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.

replicas TableReplicaArgs[]

Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.

restoreDateTime string

Time of the point-in-time recovery point to restore.

restoreSourceName string

Name of the table to restore. Must match the name of an existing table.

restoreToLatestTime boolean

If set, restores table to the most recent point-in-time recovery point.

serverSideEncryption TableServerSideEncryptionArgs

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. See below.

streamEnabled boolean

Whether Streams are enabled.

streamViewType string

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.

tableClass string

Storage class of the table. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS.

tags {[key: string]: string}

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.

ttl TableTtlArgs

Configuration block for TTL. See below.

writeCapacity number

Number of write units for this table. If the billing_mode is PROVISIONED, this field is required.

attributes Sequence[TableAttributeArgs]

Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below.

billing_mode str

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.

global_secondary_indexes Sequence[TableGlobalSecondaryIndexArgs]

Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.

hash_key str

Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.

local_secondary_indexes Sequence[TableLocalSecondaryIndexArgs]

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.

name str

Unique within a region name of the table.

point_in_time_recovery TablePointInTimeRecoveryArgs

Enable point-in-time recovery options. See below.

range_key str

Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.

read_capacity int

Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.

replicas Sequence[TableReplicaArgs]

Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.

restore_date_time str

Time of the point-in-time recovery point to restore.

restore_source_name str

Name of the table to restore. Must match the name of an existing table.

restore_to_latest_time bool

If set, restores table to the most recent point-in-time recovery point.

server_side_encryption TableServerSideEncryptionArgs

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. See below.

stream_enabled bool

Whether Streams are enabled.

stream_view_type str

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.

table_class str

Storage class of the table. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS.

tags Mapping[str, str]

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.

ttl TableTtlArgs

Configuration block for TTL. See below.

write_capacity int

Number of write units for this table. If the billing_mode is PROVISIONED, this field is required.

attributes List<Property Map>

Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below.

billingMode String

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.

globalSecondaryIndexes List<Property Map>

Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.

hashKey String

Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.

localSecondaryIndexes List<Property Map>

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.

name String

Unique within a region name of the table.

pointInTimeRecovery Property Map

Enable point-in-time recovery options. See below.

rangeKey String

Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.

readCapacity Number

Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.

replicas List<Property Map>

Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.

restoreDateTime String

Time of the point-in-time recovery point to restore.

restoreSourceName String

Name of the table to restore. Must match the name of an existing table.

restoreToLatestTime Boolean

If set, restores table to the most recent point-in-time recovery point.

serverSideEncryption Property Map

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. See below.

streamEnabled Boolean

Whether Streams are enabled.

streamViewType String

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.

tableClass String

Storage class of the table. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS.

tags Map<String>

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.

ttl Property Map

Configuration block for TTL. See below.

writeCapacity Number

Number of write units for this table. If the billing_mode is PROVISIONED, this field is required.

Outputs

All input properties are implicitly available as output properties. Additionally, the Table resource produces the following output properties:

Arn string

ARN of the table

Id string

The provider-assigned unique ID for this managed resource.

StreamArn string

ARN of the Table Stream. Only available when stream_enabled = true

StreamLabel string

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

TagsAll Dictionary<string, string>

Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Arn string

ARN of the table

Id string

The provider-assigned unique ID for this managed resource.

StreamArn string

ARN of the Table Stream. Only available when stream_enabled = true

StreamLabel string

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

TagsAll map[string]string

Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

arn String

ARN of the table

id String

The provider-assigned unique ID for this managed resource.

streamArn String

ARN of the Table Stream. Only available when stream_enabled = true

streamLabel String

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

tagsAll Map<String,String>

Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

arn string

ARN of the table

id string

The provider-assigned unique ID for this managed resource.

streamArn string

ARN of the Table Stream. Only available when stream_enabled = true

streamLabel string

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

tagsAll {[key: string]: string}

Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

arn str

ARN of the table

id str

The provider-assigned unique ID for this managed resource.

stream_arn str

ARN of the Table Stream. Only available when stream_enabled = true

stream_label str

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

tags_all Mapping[str, str]

Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

arn String

ARN of the table

id String

The provider-assigned unique ID for this managed resource.

streamArn String

ARN of the Table Stream. Only available when stream_enabled = true

streamLabel String

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

tagsAll Map<String>

Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Look up Existing Table Resource

Get an existing Table resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: TableState, opts?: CustomResourceOptions): Table
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        arn: Optional[str] = None,
        attributes: Optional[Sequence[TableAttributeArgs]] = None,
        billing_mode: Optional[str] = None,
        global_secondary_indexes: Optional[Sequence[TableGlobalSecondaryIndexArgs]] = None,
        hash_key: Optional[str] = None,
        local_secondary_indexes: Optional[Sequence[TableLocalSecondaryIndexArgs]] = None,
        name: Optional[str] = None,
        point_in_time_recovery: Optional[TablePointInTimeRecoveryArgs] = None,
        range_key: Optional[str] = None,
        read_capacity: Optional[int] = None,
        replicas: Optional[Sequence[TableReplicaArgs]] = None,
        restore_date_time: Optional[str] = None,
        restore_source_name: Optional[str] = None,
        restore_to_latest_time: Optional[bool] = None,
        server_side_encryption: Optional[TableServerSideEncryptionArgs] = None,
        stream_arn: Optional[str] = None,
        stream_enabled: Optional[bool] = None,
        stream_label: Optional[str] = None,
        stream_view_type: Optional[str] = None,
        table_class: Optional[str] = None,
        tags: Optional[Mapping[str, str]] = None,
        tags_all: Optional[Mapping[str, str]] = None,
        ttl: Optional[TableTtlArgs] = None,
        write_capacity: Optional[int] = None) -> Table
func GetTable(ctx *Context, name string, id IDInput, state *TableState, opts ...ResourceOption) (*Table, error)
public static Table Get(string name, Input<string> id, TableState? state, CustomResourceOptions? opts = null)
public static Table get(String name, Output<String> id, TableState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
Arn string

ARN of the table

Attributes List<TableAttributeArgs>

Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below.

BillingMode string

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.

GlobalSecondaryIndexes List<TableGlobalSecondaryIndexArgs>

Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.

HashKey string

Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.

LocalSecondaryIndexes List<TableLocalSecondaryIndexArgs>

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.

Name string

Unique within a region name of the table.

PointInTimeRecovery TablePointInTimeRecoveryArgs

Enable point-in-time recovery options. See below.

RangeKey string

Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.

ReadCapacity int

Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.

Replicas List<TableReplicaArgs>

Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.

RestoreDateTime string

Time of the point-in-time recovery point to restore.

RestoreSourceName string

Name of the table to restore. Must match the name of an existing table.

RestoreToLatestTime bool

If set, restores table to the most recent point-in-time recovery point.

ServerSideEncryption TableServerSideEncryptionArgs

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. See below.

StreamArn string

ARN of the Table Stream. Only available when stream_enabled = true

StreamEnabled bool

Whether Streams are enabled.

StreamLabel string

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

StreamViewType string

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.

TableClass string

Storage class of the table. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS.

Tags Dictionary<string, string>

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.

TagsAll Dictionary<string, string>

Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Ttl TableTtlArgs

Configuration block for TTL. See below.

WriteCapacity int

Number of write units for this table. If the billing_mode is PROVISIONED, this field is required.

Arn string

ARN of the table

Attributes []TableAttributeArgs

Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below.

BillingMode string

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.

GlobalSecondaryIndexes []TableGlobalSecondaryIndexArgs

Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.

HashKey string

Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.

LocalSecondaryIndexes []TableLocalSecondaryIndexArgs

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.

Name string

Unique within a region name of the table.

PointInTimeRecovery TablePointInTimeRecoveryArgs

Enable point-in-time recovery options. See below.

RangeKey string

Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.

ReadCapacity int

Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.

Replicas []TableReplicaTypeArgs

Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.

RestoreDateTime string

Time of the point-in-time recovery point to restore.

RestoreSourceName string

Name of the table to restore. Must match the name of an existing table.

RestoreToLatestTime bool

If set, restores table to the most recent point-in-time recovery point.

ServerSideEncryption TableServerSideEncryptionArgs

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. See below.

StreamArn string

ARN of the Table Stream. Only available when stream_enabled = true

StreamEnabled bool

Whether Streams are enabled.

StreamLabel string

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

StreamViewType string

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.

TableClass string

Storage class of the table. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS.

Tags map[string]string

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.

TagsAll map[string]string

Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Ttl TableTtlArgs

Configuration block for TTL. See below.

WriteCapacity int

Number of write units for this table. If the billing_mode is PROVISIONED, this field is required.

arn String

ARN of the table

attributes List<TableAttributeArgs>

Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below.

billingMode String

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.

globalSecondaryIndexes List<TableGlobalSecondaryIndexArgs>

Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.

hashKey String

Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.

localSecondaryIndexes List<TableLocalSecondaryIndexArgs>

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.

name String

Unique within a region name of the table.

pointInTimeRecovery TablePointInTimeRecoveryArgs

Enable point-in-time recovery options. See below.

rangeKey String

Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.

readCapacity Integer

Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.

replicas List<TableReplicaArgs>

Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.

restoreDateTime String

Time of the point-in-time recovery point to restore.

restoreSourceName String

Name of the table to restore. Must match the name of an existing table.

restoreToLatestTime Boolean

If set, restores table to the most recent point-in-time recovery point.

serverSideEncryption TableServerSideEncryptionArgs

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. See below.

streamArn String

ARN of the Table Stream. Only available when stream_enabled = true

streamEnabled Boolean

Whether Streams are enabled.

streamLabel String

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

streamViewType String

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.

tableClass String

Storage class of the table. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS.

tags Map<String,String>

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.

tagsAll Map<String,String>

Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

ttl TableTtlArgs

Configuration block for TTL. See below.

writeCapacity Integer

Number of write units for this table. If the billing_mode is PROVISIONED, this field is required.

arn string

ARN of the table

attributes TableAttributeArgs[]

Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below.

billingMode string

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.

globalSecondaryIndexes TableGlobalSecondaryIndexArgs[]

Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.

hashKey string

Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.

localSecondaryIndexes TableLocalSecondaryIndexArgs[]

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.

name string

Unique within a region name of the table.

pointInTimeRecovery TablePointInTimeRecoveryArgs

Enable point-in-time recovery options. See below.

rangeKey string

Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.

readCapacity number

Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.

replicas TableReplicaArgs[]

Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.

restoreDateTime string

Time of the point-in-time recovery point to restore.

restoreSourceName string

Name of the table to restore. Must match the name of an existing table.

restoreToLatestTime boolean

If set, restores table to the most recent point-in-time recovery point.

serverSideEncryption TableServerSideEncryptionArgs

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. See below.

streamArn string

ARN of the Table Stream. Only available when stream_enabled = true

streamEnabled boolean

Whether Streams are enabled.

streamLabel string

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

streamViewType string

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.

tableClass string

Storage class of the table. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS.

tags {[key: string]: string}

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.

tagsAll {[key: string]: string}

Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

ttl TableTtlArgs

Configuration block for TTL. See below.

writeCapacity number

Number of write units for this table. If the billing_mode is PROVISIONED, this field is required.

arn str

ARN of the table

attributes Sequence[TableAttributeArgs]

Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below.

billing_mode str

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.

global_secondary_indexes Sequence[TableGlobalSecondaryIndexArgs]

Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.

hash_key str

Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.

local_secondary_indexes Sequence[TableLocalSecondaryIndexArgs]

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.

name str

Unique within a region name of the table.

point_in_time_recovery TablePointInTimeRecoveryArgs

Enable point-in-time recovery options. See below.

range_key str

Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.

read_capacity int

Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.

replicas Sequence[TableReplicaArgs]

Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.

restore_date_time str

Time of the point-in-time recovery point to restore.

restore_source_name str

Name of the table to restore. Must match the name of an existing table.

restore_to_latest_time bool

If set, restores table to the most recent point-in-time recovery point.

server_side_encryption TableServerSideEncryptionArgs

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. See below.

stream_arn str

ARN of the Table Stream. Only available when stream_enabled = true

stream_enabled bool

Whether Streams are enabled.

stream_label str

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

stream_view_type str

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.

table_class str

Storage class of the table. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS.

tags Mapping[str, str]

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.

tags_all Mapping[str, str]

Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

ttl TableTtlArgs

Configuration block for TTL. See below.

write_capacity int

Number of write units for this table. If the billing_mode is PROVISIONED, this field is required.

arn String

ARN of the table

attributes List<Property Map>

Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below.

billingMode String

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.

globalSecondaryIndexes List<Property Map>

Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.

hashKey String

Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.

localSecondaryIndexes List<Property Map>

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.

name String

Unique within a region name of the table.

pointInTimeRecovery Property Map

Enable point-in-time recovery options. See below.

rangeKey String

Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.

readCapacity Number

Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.

replicas List<Property Map>

Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.

restoreDateTime String

Time of the point-in-time recovery point to restore.

restoreSourceName String

Name of the table to restore. Must match the name of an existing table.

restoreToLatestTime Boolean

If set, restores table to the most recent point-in-time recovery point.

serverSideEncryption Property Map

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. See below.

streamArn String

ARN of the Table Stream. Only available when stream_enabled = true

streamEnabled Boolean

Whether Streams are enabled.

streamLabel String

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

streamViewType String

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.

tableClass String

Storage class of the table. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS.

tags Map<String>

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.

tagsAll Map<String>

Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

ttl Property Map

Configuration block for TTL. See below.

writeCapacity Number

Number of write units for this table. If the billing_mode is PROVISIONED, this field is required.

Supporting Types

TableAttribute

Name string

Name of the attribute

Type string

Attribute type. Valid values are S (string), N (number), B (binary).

Name string

Name of the attribute

Type string

Attribute type. Valid values are S (string), N (number), B (binary).

name String

Name of the attribute

type String

Attribute type. Valid values are S (string), N (number), B (binary).

name string

Name of the attribute

type string

Attribute type. Valid values are S (string), N (number), B (binary).

name str

Name of the attribute

type str

Attribute type. Valid values are S (string), N (number), B (binary).

name String

Name of the attribute

type String

Attribute type. Valid values are S (string), N (number), B (binary).

TableGlobalSecondaryIndex

HashKey string

Name of the hash key in the index; must be defined as an attribute in the resource.

Name string

Name of the index.

ProjectionType string

One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.

NonKeyAttributes List<string>

Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.

RangeKey string

Name of the range key; must be defined

ReadCapacity int

Number of read units for this index. Must be set if billing_mode is set to PROVISIONED.

WriteCapacity int

Number of write units for this index. Must be set if billing_mode is set to PROVISIONED.

HashKey string

Name of the hash key in the index; must be defined as an attribute in the resource.

Name string

Name of the index.

ProjectionType string

One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.

NonKeyAttributes []string

Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.

RangeKey string

Name of the range key; must be defined

ReadCapacity int

Number of read units for this index. Must be set if billing_mode is set to PROVISIONED.

WriteCapacity int

Number of write units for this index. Must be set if billing_mode is set to PROVISIONED.

hashKey String

Name of the hash key in the index; must be defined as an attribute in the resource.

name String

Name of the index.

projectionType String

One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.

nonKeyAttributes List<String>

Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.

rangeKey String

Name of the range key; must be defined

readCapacity Integer

Number of read units for this index. Must be set if billing_mode is set to PROVISIONED.

writeCapacity Integer

Number of write units for this index. Must be set if billing_mode is set to PROVISIONED.

hashKey string

Name of the hash key in the index; must be defined as an attribute in the resource.

name string

Name of the index.

projectionType string

One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.

nonKeyAttributes string[]

Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.

rangeKey string

Name of the range key; must be defined

readCapacity number

Number of read units for this index. Must be set if billing_mode is set to PROVISIONED.

writeCapacity number

Number of write units for this index. Must be set if billing_mode is set to PROVISIONED.

hash_key str

Name of the hash key in the index; must be defined as an attribute in the resource.

name str

Name of the index.

projection_type str

One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.

non_key_attributes Sequence[str]

Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.

range_key str

Name of the range key; must be defined

read_capacity int

Number of read units for this index. Must be set if billing_mode is set to PROVISIONED.

write_capacity int

Number of write units for this index. Must be set if billing_mode is set to PROVISIONED.

hashKey String

Name of the hash key in the index; must be defined as an attribute in the resource.

name String

Name of the index.

projectionType String

One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.

nonKeyAttributes List<String>

Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.

rangeKey String

Name of the range key; must be defined

readCapacity Number

Number of read units for this index. Must be set if billing_mode is set to PROVISIONED.

writeCapacity Number

Number of write units for this index. Must be set if billing_mode is set to PROVISIONED.

TableLocalSecondaryIndex

Name string

Name of the index

ProjectionType string

One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.

RangeKey string

Name of the range key.

NonKeyAttributes List<string>

Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.

Name string

Name of the index

ProjectionType string

One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.

RangeKey string

Name of the range key.

NonKeyAttributes []string

Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.

name String

Name of the index

projectionType String

One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.

rangeKey String

Name of the range key.

nonKeyAttributes List<String>

Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.

name string

Name of the index

projectionType string

One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.

rangeKey string

Name of the range key.

nonKeyAttributes string[]

Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.

name str

Name of the index

projection_type str

One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.

range_key str

Name of the range key.

non_key_attributes Sequence[str]

Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.

name String

Name of the index

projectionType String

One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.

rangeKey String

Name of the range key.

nonKeyAttributes List<String>

Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.

TablePointInTimeRecovery

Enabled bool

Whether to enable point-in-time recovery. It can take 10 minutes to enable for new tables. If the point_in_time_recovery block is not provided, this defaults to false.

Enabled bool

Whether to enable point-in-time recovery. It can take 10 minutes to enable for new tables. If the point_in_time_recovery block is not provided, this defaults to false.

enabled Boolean

Whether to enable point-in-time recovery. It can take 10 minutes to enable for new tables. If the point_in_time_recovery block is not provided, this defaults to false.

enabled boolean

Whether to enable point-in-time recovery. It can take 10 minutes to enable for new tables. If the point_in_time_recovery block is not provided, this defaults to false.

enabled bool

Whether to enable point-in-time recovery. It can take 10 minutes to enable for new tables. If the point_in_time_recovery block is not provided, this defaults to false.

enabled Boolean

Whether to enable point-in-time recovery. It can take 10 minutes to enable for new tables. If the point_in_time_recovery block is not provided, this defaults to false.

TableReplica

RegionName string

Region name of the replica.

KmsKeyArn string

ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.

PointInTimeRecovery bool

Whether to enable Point In Time Recovery for the replica. Default is false.

PropagateTags bool

Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted.

RegionName string

Region name of the replica.

KmsKeyArn string

ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.

PointInTimeRecovery bool

Whether to enable Point In Time Recovery for the replica. Default is false.

PropagateTags bool

Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted.

regionName String

Region name of the replica.

kmsKeyArn String

ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.

pointInTimeRecovery Boolean

Whether to enable Point In Time Recovery for the replica. Default is false.

propagateTags Boolean

Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted.

regionName string

Region name of the replica.

kmsKeyArn string

ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.

pointInTimeRecovery boolean

Whether to enable Point In Time Recovery for the replica. Default is false.

propagateTags boolean

Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted.

region_name str

Region name of the replica.

kms_key_arn str

ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.

point_in_time_recovery bool

Whether to enable Point In Time Recovery for the replica. Default is false.

propagate_tags bool

Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted.

regionName String

Region name of the replica.

kmsKeyArn String

ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.

pointInTimeRecovery Boolean

Whether to enable Point In Time Recovery for the replica. Default is false.

propagateTags Boolean

Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted.

TableServerSideEncryption

Enabled bool

Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys.

KmsKeyArn string

ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.

Enabled bool

Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys.

KmsKeyArn string

ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.

enabled Boolean

Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys.

kmsKeyArn String

ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.

enabled boolean

Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys.

kmsKeyArn string

ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.

enabled bool

Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys.

kms_key_arn str

ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.

enabled Boolean

Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys.

kmsKeyArn String

ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.

TableTtl

AttributeName string

Name of the table attribute to store the TTL timestamp in.

Enabled bool

Whether TTL is enabled.

AttributeName string

Name of the table attribute to store the TTL timestamp in.

Enabled bool

Whether TTL is enabled.

attributeName String

Name of the table attribute to store the TTL timestamp in.

enabled Boolean

Whether TTL is enabled.

attributeName string

Name of the table attribute to store the TTL timestamp in.

enabled boolean

Whether TTL is enabled.

attribute_name str

Name of the table attribute to store the TTL timestamp in.

enabled bool

Whether TTL is enabled.

attributeName String

Name of the table attribute to store the TTL timestamp in.

enabled Boolean

Whether TTL is enabled.

Import

DynamoDB tables can be imported using the name, e.g.,

 $ pulumi import aws:dynamodb/table:Table basic-dynamodb-table GameScores

Package Details

Repository
AWS Classic pulumi/pulumi-aws
License
Apache-2.0
Notes

This Pulumi package is based on the aws Terraform Provider.