1. Packages
  2. AWS
  3. API Docs
  4. dynamodb
  5. Table
AWS v6.76.0 published on Tuesday, Apr 8, 2025 by Pulumi

aws.dynamodb.Table

Explore with Pulumi AI

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

The following dynamodb table description models the table and GSI shown in the AWS SDK example documentation

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

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

basic_dynamodb_table = aws.dynamodb.Table("basic-dynamodb-table",
    name="GameScores",
    billing_mode="PROVISIONED",
    read_capacity=20,
    write_capacity=20,
    hash_key="UserId",
    range_key="GameTitle",
    attributes=[
        {
            "name": "UserId",
            "type": "S",
        },
        {
            "name": "GameTitle",
            "type": "S",
        },
        {
            "name": "TopScore",
            "type": "N",
        },
    ],
    ttl={
        "attribute_name": "TimeToExist",
        "enabled": True,
    },
    global_secondary_indexes=[{
        "name": "GameTitleIndex",
        "hash_key": "GameTitle",
        "range_key": "TopScore",
        "write_capacity": 10,
        "read_capacity": 10,
        "projection_type": "INCLUDE",
        "non_key_attributes": ["UserId"],
    }],
    tags={
        "Name": "dynamodb-table-1",
        "Environment": "production",
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/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{
			Name:          pulumi.String("GameScores"),
			BillingMode:   pulumi.String("PROVISIONED"),
			ReadCapacity:  pulumi.Int(20),
			WriteCapacity: pulumi.Int(20),
			HashKey:       pulumi.String("UserId"),
			RangeKey:      pulumi.String("GameTitle"),
			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"),
				},
			},
			Ttl: &dynamodb.TableTtlArgs{
				AttributeName: pulumi.String("TimeToExist"),
				Enabled:       pulumi.Bool(true),
			},
			GlobalSecondaryIndexes: dynamodb.TableGlobalSecondaryIndexArray{
				&dynamodb.TableGlobalSecondaryIndexArgs{
					Name:           pulumi.String("GameTitleIndex"),
					HashKey:        pulumi.String("GameTitle"),
					RangeKey:       pulumi.String("TopScore"),
					WriteCapacity:  pulumi.Int(10),
					ReadCapacity:   pulumi.Int(10),
					ProjectionType: pulumi.String("INCLUDE"),
					NonKeyAttributes: pulumi.StringArray{
						pulumi.String("UserId"),
					},
				},
			},
			Tags: pulumi.StringMap{
				"Name":        pulumi.String("dynamodb-table-1"),
				"Environment": pulumi.String("production"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var basic_dynamodb_table = new Aws.DynamoDB.Table("basic-dynamodb-table", new()
    {
        Name = "GameScores",
        BillingMode = "PROVISIONED",
        ReadCapacity = 20,
        WriteCapacity = 20,
        HashKey = "UserId",
        RangeKey = "GameTitle",
        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",
            },
        },
        Ttl = new Aws.DynamoDB.Inputs.TableTtlArgs
        {
            AttributeName = "TimeToExist",
            Enabled = true,
        },
        GlobalSecondaryIndexes = new[]
        {
            new Aws.DynamoDB.Inputs.TableGlobalSecondaryIndexArgs
            {
                Name = "GameTitleIndex",
                HashKey = "GameTitle",
                RangeKey = "TopScore",
                WriteCapacity = 10,
                ReadCapacity = 10,
                ProjectionType = "INCLUDE",
                NonKeyAttributes = new[]
                {
                    "UserId",
                },
            },
        },
        Tags = 
        {
            { "Name", "dynamodb-table-1" },
            { "Environment", "production" },
        },
    });

});
Copy
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.TableTtlArgs;
import com.pulumi.aws.dynamodb.inputs.TableGlobalSecondaryIndexArgs;
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()
            .name("GameScores")
            .billingMode("PROVISIONED")
            .readCapacity(20)
            .writeCapacity(20)
            .hashKey("UserId")
            .rangeKey("GameTitle")
            .attributes(            
                TableAttributeArgs.builder()
                    .name("UserId")
                    .type("S")
                    .build(),
                TableAttributeArgs.builder()
                    .name("GameTitle")
                    .type("S")
                    .build(),
                TableAttributeArgs.builder()
                    .name("TopScore")
                    .type("N")
                    .build())
            .ttl(TableTtlArgs.builder()
                .attributeName("TimeToExist")
                .enabled(true)
                .build())
            .globalSecondaryIndexes(TableGlobalSecondaryIndexArgs.builder()
                .name("GameTitleIndex")
                .hashKey("GameTitle")
                .rangeKey("TopScore")
                .writeCapacity(10)
                .readCapacity(10)
                .projectionType("INCLUDE")
                .nonKeyAttributes("UserId")
                .build())
            .tags(Map.ofEntries(
                Map.entry("Name", "dynamodb-table-1"),
                Map.entry("Environment", "production")
            ))
            .build());

    }
}
Copy
resources:
  basic-dynamodb-table:
    type: aws:dynamodb:Table
    properties:
      name: GameScores
      billingMode: PROVISIONED
      readCapacity: 20
      writeCapacity: 20
      hashKey: UserId
      rangeKey: GameTitle
      attributes:
        - name: UserId
          type: S
        - name: GameTitle
          type: S
        - name: TopScore
          type: N
      ttl:
        attributeName: TimeToExist
        enabled: true
      globalSecondaryIndexes:
        - name: GameTitleIndex
          hashKey: GameTitle
          rangeKey: TopScore
          writeCapacity: 10
          readCapacity: 10
          projectionType: INCLUDE
          nonKeyAttributes:
            - UserId
      tags:
        Name: dynamodb-table-1
        Environment: production
Copy

Global Tables

This resource implements support for DynamoDB Global Tables V2 (version 2019.11.21) via replica configuration blocks. For working with DynamoDB Global Tables V1 (version 2017.11.29), see the aws.dynamodb.GlobalTable resource.

Note: aws.dynamodb.TableReplica is an alternate way of configuring Global Tables. Do not use replica configuration blocks of aws.dynamodb.Table together with aws_dynamodb_table_replica.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

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

example = aws.dynamodb.Table("example",
    name="example",
    hash_key="TestTableHashKey",
    billing_mode="PAY_PER_REQUEST",
    stream_enabled=True,
    stream_view_type="NEW_AND_OLD_IMAGES",
    attributes=[{
        "name": "TestTableHashKey",
        "type": "S",
    }],
    replicas=[
        {
            "region_name": "us-east-2",
        },
        {
            "region_name": "us-west-2",
        },
    ])
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/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{
			Name:           pulumi.String("example"),
			HashKey:        pulumi.String("TestTableHashKey"),
			BillingMode:    pulumi.String("PAY_PER_REQUEST"),
			StreamEnabled:  pulumi.Bool(true),
			StreamViewType: pulumi.String("NEW_AND_OLD_IMAGES"),
			Attributes: dynamodb.TableAttributeArray{
				&dynamodb.TableAttributeArgs{
					Name: pulumi.String("TestTableHashKey"),
					Type: pulumi.String("S"),
				},
			},
			Replicas: dynamodb.TableReplicaTypeArray{
				&dynamodb.TableReplicaTypeArgs{
					RegionName: pulumi.String("us-east-2"),
				},
				&dynamodb.TableReplicaTypeArgs{
					RegionName: pulumi.String("us-west-2"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

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

});
Copy
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()
            .name("example")
            .hashKey("TestTableHashKey")
            .billingMode("PAY_PER_REQUEST")
            .streamEnabled(true)
            .streamViewType("NEW_AND_OLD_IMAGES")
            .attributes(TableAttributeArgs.builder()
                .name("TestTableHashKey")
                .type("S")
                .build())
            .replicas(            
                TableReplicaArgs.builder()
                    .regionName("us-east-2")
                    .build(),
                TableReplicaArgs.builder()
                    .regionName("us-west-2")
                    .build())
            .build());

    }
}
Copy
resources:
  example:
    type: aws:dynamodb:Table
    properties:
      name: example
      hashKey: TestTableHashKey
      billingMode: PAY_PER_REQUEST
      streamEnabled: true
      streamViewType: NEW_AND_OLD_IMAGES
      attributes:
        - name: TestTableHashKey
          type: S
      replicas:
        - regionName: us-east-2
        - regionName: us-west-2
Copy

Replica Tagging

You can manage global table replicas’ tags in various ways. This example shows using replica.*.propagate_tags for the first replica and the aws.dynamodb.Tag resource for the other.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as std from "@pulumi/std";

const current = aws.getRegion({});
const alternate = aws.getRegion({});
const third = aws.getRegion({});
const example = new aws.dynamodb.Table("example", {
    billingMode: "PAY_PER_REQUEST",
    hashKey: "TestTableHashKey",
    name: "example-13281",
    streamEnabled: true,
    streamViewType: "NEW_AND_OLD_IMAGES",
    attributes: [{
        name: "TestTableHashKey",
        type: "S",
    }],
    replicas: [
        {
            regionName: alternate.then(alternate => alternate.name),
        },
        {
            regionName: third.then(third => third.name),
            propagateTags: true,
        },
    ],
    tags: {
        Architect: "Eleanor",
        Zone: "SW",
    },
});
const exampleTag = new aws.dynamodb.Tag("example", {
    resourceArn: pulumi.all([example.arn, current, alternate]).apply(([arn, current, alternate]) => std.replaceOutput({
        text: arn,
        search: current.name,
        replace: alternate.name,
    })).apply(invoke => invoke.result),
    key: "Architect",
    value: "Gigi",
});
Copy
import pulumi
import pulumi_aws as aws
import pulumi_std as std

current = aws.get_region()
alternate = aws.get_region()
third = aws.get_region()
example = aws.dynamodb.Table("example",
    billing_mode="PAY_PER_REQUEST",
    hash_key="TestTableHashKey",
    name="example-13281",
    stream_enabled=True,
    stream_view_type="NEW_AND_OLD_IMAGES",
    attributes=[{
        "name": "TestTableHashKey",
        "type": "S",
    }],
    replicas=[
        {
            "region_name": alternate.name,
        },
        {
            "region_name": third.name,
            "propagate_tags": True,
        },
    ],
    tags={
        "Architect": "Eleanor",
        "Zone": "SW",
    })
example_tag = aws.dynamodb.Tag("example",
    resource_arn=example.arn.apply(lambda arn: std.replace_output(text=arn,
        search=current.name,
        replace=alternate.name)).apply(lambda invoke: invoke.result),
    key="Architect",
    value="Gigi")
Copy
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		current, err := aws.GetRegion(ctx, &aws.GetRegionArgs{}, nil)
		if err != nil {
			return err
		}
		alternate, err := aws.GetRegion(ctx, &aws.GetRegionArgs{}, nil)
		if err != nil {
			return err
		}
		third, err := aws.GetRegion(ctx, &aws.GetRegionArgs{}, nil)
		if err != nil {
			return err
		}
		example, err := dynamodb.NewTable(ctx, "example", &dynamodb.TableArgs{
			BillingMode:    pulumi.String("PAY_PER_REQUEST"),
			HashKey:        pulumi.String("TestTableHashKey"),
			Name:           pulumi.String("example-13281"),
			StreamEnabled:  pulumi.Bool(true),
			StreamViewType: pulumi.String("NEW_AND_OLD_IMAGES"),
			Attributes: dynamodb.TableAttributeArray{
				&dynamodb.TableAttributeArgs{
					Name: pulumi.String("TestTableHashKey"),
					Type: pulumi.String("S"),
				},
			},
			Replicas: dynamodb.TableReplicaTypeArray{
				&dynamodb.TableReplicaTypeArgs{
					RegionName: pulumi.String(alternate.Name),
				},
				&dynamodb.TableReplicaTypeArgs{
					RegionName:    pulumi.String(third.Name),
					PropagateTags: pulumi.Bool(true),
				},
			},
			Tags: pulumi.StringMap{
				"Architect": pulumi.String("Eleanor"),
				"Zone":      pulumi.String("SW"),
			},
		})
		if err != nil {
			return err
		}
		_, err = dynamodb.NewTag(ctx, "example", &dynamodb.TagArgs{
			ResourceArn: pulumi.String(example.Arn.ApplyT(func(arn string) (std.ReplaceResult, error) {
				return std.ReplaceResult(interface{}(std.ReplaceOutput(ctx, std.ReplaceOutputArgs{
					Text:    arn,
					Search:  current.Name,
					Replace: alternate.Name,
				}, nil))), nil
			}).(std.ReplaceResultOutput).ApplyT(func(invoke std.ReplaceResult) (*string, error) {
				return invoke.Result, nil
			}).(pulumi.StringPtrOutput)),
			Key:   pulumi.String("Architect"),
			Value: pulumi.String("Gigi"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
using Std = Pulumi.Std;

return await Deployment.RunAsync(() => 
{
    var current = Aws.GetRegion.Invoke();

    var alternate = Aws.GetRegion.Invoke();

    var third = Aws.GetRegion.Invoke();

    var example = new Aws.DynamoDB.Table("example", new()
    {
        BillingMode = "PAY_PER_REQUEST",
        HashKey = "TestTableHashKey",
        Name = "example-13281",
        StreamEnabled = true,
        StreamViewType = "NEW_AND_OLD_IMAGES",
        Attributes = new[]
        {
            new Aws.DynamoDB.Inputs.TableAttributeArgs
            {
                Name = "TestTableHashKey",
                Type = "S",
            },
        },
        Replicas = new[]
        {
            new Aws.DynamoDB.Inputs.TableReplicaArgs
            {
                RegionName = alternate.Apply(getRegionResult => getRegionResult.Name),
            },
            new Aws.DynamoDB.Inputs.TableReplicaArgs
            {
                RegionName = third.Apply(getRegionResult => getRegionResult.Name),
                PropagateTags = true,
            },
        },
        Tags = 
        {
            { "Architect", "Eleanor" },
            { "Zone", "SW" },
        },
    });

    var exampleTag = new Aws.DynamoDB.Tag("example", new()
    {
        ResourceArn = Output.Tuple(example.Arn, current, alternate).Apply(values =>
        {
            var arn = values.Item1;
            var current = values.Item2;
            var alternate = values.Item3;
            return Std.Replace.Invoke(new()
            {
                Text = arn,
                Search = current.Apply(getRegionResult => getRegionResult.Name),
                Replace = alternate.Apply(getRegionResult => getRegionResult.Name),
            });
        }).Apply(invoke => invoke.Result),
        Key = "Architect",
        Value = "Gigi",
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.AwsFunctions;
import com.pulumi.aws.inputs.GetRegionArgs;
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 com.pulumi.aws.dynamodb.Tag;
import com.pulumi.aws.dynamodb.TagArgs;
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) {
        final var current = AwsFunctions.getRegion();

        final var alternate = AwsFunctions.getRegion();

        final var third = AwsFunctions.getRegion();

        var example = new Table("example", TableArgs.builder()
            .billingMode("PAY_PER_REQUEST")
            .hashKey("TestTableHashKey")
            .name("example-13281")
            .streamEnabled(true)
            .streamViewType("NEW_AND_OLD_IMAGES")
            .attributes(TableAttributeArgs.builder()
                .name("TestTableHashKey")
                .type("S")
                .build())
            .replicas(            
                TableReplicaArgs.builder()
                    .regionName(alternate.applyValue(getRegionResult -> getRegionResult.name()))
                    .build(),
                TableReplicaArgs.builder()
                    .regionName(third.applyValue(getRegionResult -> getRegionResult.name()))
                    .propagateTags(true)
                    .build())
            .tags(Map.ofEntries(
                Map.entry("Architect", "Eleanor"),
                Map.entry("Zone", "SW")
            ))
            .build());

        var exampleTag = new Tag("exampleTag", TagArgs.builder()
            .resourceArn(example.arn().applyValue(arn -> StdFunctions.replace()).applyValue(invoke -> invoke.result()))
            .key("Architect")
            .value("Gigi")
            .build());

    }
}
Copy
resources:
  example:
    type: aws:dynamodb:Table
    properties:
      billingMode: PAY_PER_REQUEST
      hashKey: TestTableHashKey
      name: example-13281
      streamEnabled: true
      streamViewType: NEW_AND_OLD_IMAGES
      attributes:
        - name: TestTableHashKey
          type: S
      replicas:
        - regionName: ${alternate.name}
        - regionName: ${third.name}
          propagateTags: true
      tags:
        Architect: Eleanor
        Zone: SW
  exampleTag:
    type: aws:dynamodb:Tag
    name: example
    properties:
      resourceArn:
        fn::invoke:
          function: std:replace
          arguments:
            text: ${example.arn}
            search: ${current.name}
            replace: ${alternate.name}
          return: result
      key: Architect
      value: Gigi
variables:
  current:
    fn::invoke:
      function: aws:getRegion
      arguments: {}
  alternate:
    fn::invoke:
      function: aws:getRegion
      arguments: {}
  third:
    fn::invoke:
      function: aws:getRegion
      arguments: {}
Copy

Create Table Resource

Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

Constructor syntax

new Table(name: string, args?: TableArgs, opts?: CustomResourceOptions);
@overload
def Table(resource_name: str,
          args: Optional[TableArgs] = None,
          opts: Optional[ResourceOptions] = None)

@overload
def Table(resource_name: str,
          opts: Optional[ResourceOptions] = None,
          attributes: Optional[Sequence[TableAttributeArgs]] = None,
          billing_mode: Optional[str] = None,
          deletion_protection_enabled: Optional[bool] = None,
          global_secondary_indexes: Optional[Sequence[TableGlobalSecondaryIndexArgs]] = None,
          hash_key: Optional[str] = None,
          import_table: Optional[TableImportTableArgs] = None,
          local_secondary_indexes: Optional[Sequence[TableLocalSecondaryIndexArgs]] = None,
          name: Optional[str] = None,
          on_demand_throughput: Optional[TableOnDemandThroughputArgs] = 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_source_table_arn: 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)
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.

Parameters

name This property is required. 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 This property is required. 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 This property is required. 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 This property is required. 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 This property is required. String
The unique name of the resource.
args This property is required. TableArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

Constructor example

The following reference example uses placeholder values for all input properties.

var tableResource = new Aws.DynamoDB.Table("tableResource", new()
{
    Attributes = new[]
    {
        new Aws.DynamoDB.Inputs.TableAttributeArgs
        {
            Name = "string",
            Type = "string",
        },
    },
    BillingMode = "string",
    DeletionProtectionEnabled = false,
    GlobalSecondaryIndexes = new[]
    {
        new Aws.DynamoDB.Inputs.TableGlobalSecondaryIndexArgs
        {
            HashKey = "string",
            Name = "string",
            ProjectionType = "string",
            NonKeyAttributes = new[]
            {
                "string",
            },
            OnDemandThroughput = new Aws.DynamoDB.Inputs.TableGlobalSecondaryIndexOnDemandThroughputArgs
            {
                MaxReadRequestUnits = 0,
                MaxWriteRequestUnits = 0,
            },
            RangeKey = "string",
            ReadCapacity = 0,
            WriteCapacity = 0,
        },
    },
    HashKey = "string",
    ImportTable = new Aws.DynamoDB.Inputs.TableImportTableArgs
    {
        InputFormat = "string",
        S3BucketSource = new Aws.DynamoDB.Inputs.TableImportTableS3BucketSourceArgs
        {
            Bucket = "string",
            BucketOwner = "string",
            KeyPrefix = "string",
        },
        InputCompressionType = "string",
        InputFormatOptions = new Aws.DynamoDB.Inputs.TableImportTableInputFormatOptionsArgs
        {
            Csv = new Aws.DynamoDB.Inputs.TableImportTableInputFormatOptionsCsvArgs
            {
                Delimiter = "string",
                HeaderLists = new[]
                {
                    "string",
                },
            },
        },
    },
    LocalSecondaryIndexes = new[]
    {
        new Aws.DynamoDB.Inputs.TableLocalSecondaryIndexArgs
        {
            Name = "string",
            ProjectionType = "string",
            RangeKey = "string",
            NonKeyAttributes = new[]
            {
                "string",
            },
        },
    },
    Name = "string",
    OnDemandThroughput = new Aws.DynamoDB.Inputs.TableOnDemandThroughputArgs
    {
        MaxReadRequestUnits = 0,
        MaxWriteRequestUnits = 0,
    },
    PointInTimeRecovery = new Aws.DynamoDB.Inputs.TablePointInTimeRecoveryArgs
    {
        Enabled = false,
    },
    RangeKey = "string",
    ReadCapacity = 0,
    Replicas = new[]
    {
        new Aws.DynamoDB.Inputs.TableReplicaArgs
        {
            RegionName = "string",
            Arn = "string",
            KmsKeyArn = "string",
            PointInTimeRecovery = false,
            PropagateTags = false,
            StreamArn = "string",
            StreamLabel = "string",
        },
    },
    RestoreDateTime = "string",
    RestoreSourceName = "string",
    RestoreSourceTableArn = "string",
    RestoreToLatestTime = false,
    ServerSideEncryption = new Aws.DynamoDB.Inputs.TableServerSideEncryptionArgs
    {
        Enabled = false,
        KmsKeyArn = "string",
    },
    StreamEnabled = false,
    StreamViewType = "string",
    TableClass = "string",
    Tags = 
    {
        { "string", "string" },
    },
    Ttl = new Aws.DynamoDB.Inputs.TableTtlArgs
    {
        AttributeName = "string",
        Enabled = false,
    },
    WriteCapacity = 0,
});
Copy
example, err := dynamodb.NewTable(ctx, "tableResource", &dynamodb.TableArgs{
	Attributes: dynamodb.TableAttributeArray{
		&dynamodb.TableAttributeArgs{
			Name: pulumi.String("string"),
			Type: pulumi.String("string"),
		},
	},
	BillingMode:               pulumi.String("string"),
	DeletionProtectionEnabled: pulumi.Bool(false),
	GlobalSecondaryIndexes: dynamodb.TableGlobalSecondaryIndexArray{
		&dynamodb.TableGlobalSecondaryIndexArgs{
			HashKey:        pulumi.String("string"),
			Name:           pulumi.String("string"),
			ProjectionType: pulumi.String("string"),
			NonKeyAttributes: pulumi.StringArray{
				pulumi.String("string"),
			},
			OnDemandThroughput: &dynamodb.TableGlobalSecondaryIndexOnDemandThroughputArgs{
				MaxReadRequestUnits:  pulumi.Int(0),
				MaxWriteRequestUnits: pulumi.Int(0),
			},
			RangeKey:      pulumi.String("string"),
			ReadCapacity:  pulumi.Int(0),
			WriteCapacity: pulumi.Int(0),
		},
	},
	HashKey: pulumi.String("string"),
	ImportTable: &dynamodb.TableImportTableArgs{
		InputFormat: pulumi.String("string"),
		S3BucketSource: &dynamodb.TableImportTableS3BucketSourceArgs{
			Bucket:      pulumi.String("string"),
			BucketOwner: pulumi.String("string"),
			KeyPrefix:   pulumi.String("string"),
		},
		InputCompressionType: pulumi.String("string"),
		InputFormatOptions: &dynamodb.TableImportTableInputFormatOptionsArgs{
			Csv: &dynamodb.TableImportTableInputFormatOptionsCsvArgs{
				Delimiter: pulumi.String("string"),
				HeaderLists: pulumi.StringArray{
					pulumi.String("string"),
				},
			},
		},
	},
	LocalSecondaryIndexes: dynamodb.TableLocalSecondaryIndexArray{
		&dynamodb.TableLocalSecondaryIndexArgs{
			Name:           pulumi.String("string"),
			ProjectionType: pulumi.String("string"),
			RangeKey:       pulumi.String("string"),
			NonKeyAttributes: pulumi.StringArray{
				pulumi.String("string"),
			},
		},
	},
	Name: pulumi.String("string"),
	OnDemandThroughput: &dynamodb.TableOnDemandThroughputArgs{
		MaxReadRequestUnits:  pulumi.Int(0),
		MaxWriteRequestUnits: pulumi.Int(0),
	},
	PointInTimeRecovery: &dynamodb.TablePointInTimeRecoveryArgs{
		Enabled: pulumi.Bool(false),
	},
	RangeKey:     pulumi.String("string"),
	ReadCapacity: pulumi.Int(0),
	Replicas: dynamodb.TableReplicaTypeArray{
		&dynamodb.TableReplicaTypeArgs{
			RegionName:          pulumi.String("string"),
			Arn:                 pulumi.String("string"),
			KmsKeyArn:           pulumi.String("string"),
			PointInTimeRecovery: pulumi.Bool(false),
			PropagateTags:       pulumi.Bool(false),
			StreamArn:           pulumi.String("string"),
			StreamLabel:         pulumi.String("string"),
		},
	},
	RestoreDateTime:       pulumi.String("string"),
	RestoreSourceName:     pulumi.String("string"),
	RestoreSourceTableArn: pulumi.String("string"),
	RestoreToLatestTime:   pulumi.Bool(false),
	ServerSideEncryption: &dynamodb.TableServerSideEncryptionArgs{
		Enabled:   pulumi.Bool(false),
		KmsKeyArn: pulumi.String("string"),
	},
	StreamEnabled:  pulumi.Bool(false),
	StreamViewType: pulumi.String("string"),
	TableClass:     pulumi.String("string"),
	Tags: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	Ttl: &dynamodb.TableTtlArgs{
		AttributeName: pulumi.String("string"),
		Enabled:       pulumi.Bool(false),
	},
	WriteCapacity: pulumi.Int(0),
})
Copy
var tableResource = new Table("tableResource", TableArgs.builder()
    .attributes(TableAttributeArgs.builder()
        .name("string")
        .type("string")
        .build())
    .billingMode("string")
    .deletionProtectionEnabled(false)
    .globalSecondaryIndexes(TableGlobalSecondaryIndexArgs.builder()
        .hashKey("string")
        .name("string")
        .projectionType("string")
        .nonKeyAttributes("string")
        .onDemandThroughput(TableGlobalSecondaryIndexOnDemandThroughputArgs.builder()
            .maxReadRequestUnits(0)
            .maxWriteRequestUnits(0)
            .build())
        .rangeKey("string")
        .readCapacity(0)
        .writeCapacity(0)
        .build())
    .hashKey("string")
    .importTable(TableImportTableArgs.builder()
        .inputFormat("string")
        .s3BucketSource(TableImportTableS3BucketSourceArgs.builder()
            .bucket("string")
            .bucketOwner("string")
            .keyPrefix("string")
            .build())
        .inputCompressionType("string")
        .inputFormatOptions(TableImportTableInputFormatOptionsArgs.builder()
            .csv(TableImportTableInputFormatOptionsCsvArgs.builder()
                .delimiter("string")
                .headerLists("string")
                .build())
            .build())
        .build())
    .localSecondaryIndexes(TableLocalSecondaryIndexArgs.builder()
        .name("string")
        .projectionType("string")
        .rangeKey("string")
        .nonKeyAttributes("string")
        .build())
    .name("string")
    .onDemandThroughput(TableOnDemandThroughputArgs.builder()
        .maxReadRequestUnits(0)
        .maxWriteRequestUnits(0)
        .build())
    .pointInTimeRecovery(TablePointInTimeRecoveryArgs.builder()
        .enabled(false)
        .build())
    .rangeKey("string")
    .readCapacity(0)
    .replicas(TableReplicaArgs.builder()
        .regionName("string")
        .arn("string")
        .kmsKeyArn("string")
        .pointInTimeRecovery(false)
        .propagateTags(false)
        .streamArn("string")
        .streamLabel("string")
        .build())
    .restoreDateTime("string")
    .restoreSourceName("string")
    .restoreSourceTableArn("string")
    .restoreToLatestTime(false)
    .serverSideEncryption(TableServerSideEncryptionArgs.builder()
        .enabled(false)
        .kmsKeyArn("string")
        .build())
    .streamEnabled(false)
    .streamViewType("string")
    .tableClass("string")
    .tags(Map.of("string", "string"))
    .ttl(TableTtlArgs.builder()
        .attributeName("string")
        .enabled(false)
        .build())
    .writeCapacity(0)
    .build());
Copy
table_resource = aws.dynamodb.Table("tableResource",
    attributes=[{
        "name": "string",
        "type": "string",
    }],
    billing_mode="string",
    deletion_protection_enabled=False,
    global_secondary_indexes=[{
        "hash_key": "string",
        "name": "string",
        "projection_type": "string",
        "non_key_attributes": ["string"],
        "on_demand_throughput": {
            "max_read_request_units": 0,
            "max_write_request_units": 0,
        },
        "range_key": "string",
        "read_capacity": 0,
        "write_capacity": 0,
    }],
    hash_key="string",
    import_table={
        "input_format": "string",
        "s3_bucket_source": {
            "bucket": "string",
            "bucket_owner": "string",
            "key_prefix": "string",
        },
        "input_compression_type": "string",
        "input_format_options": {
            "csv": {
                "delimiter": "string",
                "header_lists": ["string"],
            },
        },
    },
    local_secondary_indexes=[{
        "name": "string",
        "projection_type": "string",
        "range_key": "string",
        "non_key_attributes": ["string"],
    }],
    name="string",
    on_demand_throughput={
        "max_read_request_units": 0,
        "max_write_request_units": 0,
    },
    point_in_time_recovery={
        "enabled": False,
    },
    range_key="string",
    read_capacity=0,
    replicas=[{
        "region_name": "string",
        "arn": "string",
        "kms_key_arn": "string",
        "point_in_time_recovery": False,
        "propagate_tags": False,
        "stream_arn": "string",
        "stream_label": "string",
    }],
    restore_date_time="string",
    restore_source_name="string",
    restore_source_table_arn="string",
    restore_to_latest_time=False,
    server_side_encryption={
        "enabled": False,
        "kms_key_arn": "string",
    },
    stream_enabled=False,
    stream_view_type="string",
    table_class="string",
    tags={
        "string": "string",
    },
    ttl={
        "attribute_name": "string",
        "enabled": False,
    },
    write_capacity=0)
Copy
const tableResource = new aws.dynamodb.Table("tableResource", {
    attributes: [{
        name: "string",
        type: "string",
    }],
    billingMode: "string",
    deletionProtectionEnabled: false,
    globalSecondaryIndexes: [{
        hashKey: "string",
        name: "string",
        projectionType: "string",
        nonKeyAttributes: ["string"],
        onDemandThroughput: {
            maxReadRequestUnits: 0,
            maxWriteRequestUnits: 0,
        },
        rangeKey: "string",
        readCapacity: 0,
        writeCapacity: 0,
    }],
    hashKey: "string",
    importTable: {
        inputFormat: "string",
        s3BucketSource: {
            bucket: "string",
            bucketOwner: "string",
            keyPrefix: "string",
        },
        inputCompressionType: "string",
        inputFormatOptions: {
            csv: {
                delimiter: "string",
                headerLists: ["string"],
            },
        },
    },
    localSecondaryIndexes: [{
        name: "string",
        projectionType: "string",
        rangeKey: "string",
        nonKeyAttributes: ["string"],
    }],
    name: "string",
    onDemandThroughput: {
        maxReadRequestUnits: 0,
        maxWriteRequestUnits: 0,
    },
    pointInTimeRecovery: {
        enabled: false,
    },
    rangeKey: "string",
    readCapacity: 0,
    replicas: [{
        regionName: "string",
        arn: "string",
        kmsKeyArn: "string",
        pointInTimeRecovery: false,
        propagateTags: false,
        streamArn: "string",
        streamLabel: "string",
    }],
    restoreDateTime: "string",
    restoreSourceName: "string",
    restoreSourceTableArn: "string",
    restoreToLatestTime: false,
    serverSideEncryption: {
        enabled: false,
        kmsKeyArn: "string",
    },
    streamEnabled: false,
    streamViewType: "string",
    tableClass: "string",
    tags: {
        string: "string",
    },
    ttl: {
        attributeName: "string",
        enabled: false,
    },
    writeCapacity: 0,
});
Copy
type: aws:dynamodb:Table
properties:
    attributes:
        - name: string
          type: string
    billingMode: string
    deletionProtectionEnabled: false
    globalSecondaryIndexes:
        - hashKey: string
          name: string
          nonKeyAttributes:
            - string
          onDemandThroughput:
            maxReadRequestUnits: 0
            maxWriteRequestUnits: 0
          projectionType: string
          rangeKey: string
          readCapacity: 0
          writeCapacity: 0
    hashKey: string
    importTable:
        inputCompressionType: string
        inputFormat: string
        inputFormatOptions:
            csv:
                delimiter: string
                headerLists:
                    - string
        s3BucketSource:
            bucket: string
            bucketOwner: string
            keyPrefix: string
    localSecondaryIndexes:
        - name: string
          nonKeyAttributes:
            - string
          projectionType: string
          rangeKey: string
    name: string
    onDemandThroughput:
        maxReadRequestUnits: 0
        maxWriteRequestUnits: 0
    pointInTimeRecovery:
        enabled: false
    rangeKey: string
    readCapacity: 0
    replicas:
        - arn: string
          kmsKeyArn: string
          pointInTimeRecovery: false
          propagateTags: false
          regionName: string
          streamArn: string
          streamLabel: string
    restoreDateTime: string
    restoreSourceName: string
    restoreSourceTableArn: string
    restoreToLatestTime: false
    serverSideEncryption:
        enabled: false
        kmsKeyArn: string
    streamEnabled: false
    streamViewType: string
    tableClass: string
    tags:
        string: string
    ttl:
        attributeName: string
        enabled: false
    writeCapacity: 0
Copy

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

In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

The Table resource accepts the following input properties:

Attributes List<TableAttribute>
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.
DeletionProtectionEnabled bool
Enables deletion protection for table. Defaults to false.
GlobalSecondaryIndexes List<TableGlobalSecondaryIndex>
Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
HashKey Changes to this property will trigger replacement. string
Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.
ImportTable TableImportTable
Import Amazon S3 data into a new table. See below.
LocalSecondaryIndexes Changes to this property will trigger replacement. List<TableLocalSecondaryIndex>
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 Changes to this property will trigger replacement. string

Unique within a region name of the table.

Optional arguments:

OnDemandThroughput TableOnDemandThroughput
Sets the maximum number of read and write units for the specified on-demand table. See below.
PointInTimeRecovery TablePointInTimeRecovery
Enable point-in-time recovery options. See below.
RangeKey Changes to this property will trigger replacement. 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<TableReplica>
Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
RestoreDateTime Changes to this property will trigger replacement. 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.
RestoreSourceTableArn string
ARN of the source table to restore. Must be supplied for cross-region restores.
RestoreToLatestTime Changes to this property will trigger replacement. bool
If set, restores table to the most recent point-in-time recovery point.
ServerSideEncryption TableServerSideEncryption
Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. Must be supplied for cross-region restores. See below.
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. Default value is STANDARD.
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 TableTtl
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.
DeletionProtectionEnabled bool
Enables deletion protection for table. Defaults to false.
GlobalSecondaryIndexes []TableGlobalSecondaryIndexArgs
Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
HashKey Changes to this property will trigger replacement. string
Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.
ImportTable TableImportTableArgs
Import Amazon S3 data into a new table. See below.
LocalSecondaryIndexes Changes to this property will trigger replacement. []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 Changes to this property will trigger replacement. string

Unique within a region name of the table.

Optional arguments:

OnDemandThroughput TableOnDemandThroughputArgs
Sets the maximum number of read and write units for the specified on-demand table. See below.
PointInTimeRecovery TablePointInTimeRecoveryArgs
Enable point-in-time recovery options. See below.
RangeKey Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. 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.
RestoreSourceTableArn string
ARN of the source table to restore. Must be supplied for cross-region restores.
RestoreToLatestTime Changes to this property will trigger replacement. 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. Must be supplied for cross-region restores. 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. Default value is STANDARD.
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<TableAttribute>
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.
deletionProtectionEnabled Boolean
Enables deletion protection for table. Defaults to false.
globalSecondaryIndexes List<TableGlobalSecondaryIndex>
Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
hashKey Changes to this property will trigger replacement. String
Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.
importTable TableImportTable
Import Amazon S3 data into a new table. See below.
localSecondaryIndexes Changes to this property will trigger replacement. List<TableLocalSecondaryIndex>
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 Changes to this property will trigger replacement. String

Unique within a region name of the table.

Optional arguments:

onDemandThroughput TableOnDemandThroughput
Sets the maximum number of read and write units for the specified on-demand table. See below.
pointInTimeRecovery TablePointInTimeRecovery
Enable point-in-time recovery options. See below.
rangeKey Changes to this property will trigger replacement. 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<TableReplica>
Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
restoreDateTime Changes to this property will trigger replacement. 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.
restoreSourceTableArn String
ARN of the source table to restore. Must be supplied for cross-region restores.
restoreToLatestTime Changes to this property will trigger replacement. Boolean
If set, restores table to the most recent point-in-time recovery point.
serverSideEncryption TableServerSideEncryption
Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. Must be supplied for cross-region restores. See below.
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. Default value is STANDARD.
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 TableTtl
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 TableAttribute[]
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.
deletionProtectionEnabled boolean
Enables deletion protection for table. Defaults to false.
globalSecondaryIndexes TableGlobalSecondaryIndex[]
Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
hashKey Changes to this property will trigger replacement. string
Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.
importTable TableImportTable
Import Amazon S3 data into a new table. See below.
localSecondaryIndexes Changes to this property will trigger replacement. TableLocalSecondaryIndex[]
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 Changes to this property will trigger replacement. string

Unique within a region name of the table.

Optional arguments:

onDemandThroughput TableOnDemandThroughput
Sets the maximum number of read and write units for the specified on-demand table. See below.
pointInTimeRecovery TablePointInTimeRecovery
Enable point-in-time recovery options. See below.
rangeKey Changes to this property will trigger replacement. 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 TableReplica[]
Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
restoreDateTime Changes to this property will trigger replacement. 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.
restoreSourceTableArn string
ARN of the source table to restore. Must be supplied for cross-region restores.
restoreToLatestTime Changes to this property will trigger replacement. boolean
If set, restores table to the most recent point-in-time recovery point.
serverSideEncryption TableServerSideEncryption
Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. Must be supplied for cross-region restores. See below.
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. Default value is STANDARD.
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 TableTtl
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.
deletion_protection_enabled bool
Enables deletion protection for table. Defaults to false.
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 Changes to this property will trigger replacement. str
Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.
import_table TableImportTableArgs
Import Amazon S3 data into a new table. See below.
local_secondary_indexes Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. str

Unique within a region name of the table.

Optional arguments:

on_demand_throughput TableOnDemandThroughputArgs
Sets the maximum number of read and write units for the specified on-demand table. See below.
point_in_time_recovery TablePointInTimeRecoveryArgs
Enable point-in-time recovery options. See below.
range_key Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. 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_source_table_arn str
ARN of the source table to restore. Must be supplied for cross-region restores.
restore_to_latest_time Changes to this property will trigger replacement. 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. Must be supplied for cross-region restores. 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. Default value is STANDARD.
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.
deletionProtectionEnabled Boolean
Enables deletion protection for table. Defaults to false.
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 Changes to this property will trigger replacement. String
Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.
importTable Property Map
Import Amazon S3 data into a new table. See below.
localSecondaryIndexes Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. String

Unique within a region name of the table.

Optional arguments:

onDemandThroughput Property Map
Sets the maximum number of read and write units for the specified on-demand table. See below.
pointInTimeRecovery Property Map
Enable point-in-time recovery options. See below.
rangeKey Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. 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.
restoreSourceTableArn String
ARN of the source table to restore. Must be supplied for cross-region restores.
restoreToLatestTime Changes to this property will trigger replacement. 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. Must be supplied for cross-region restores. 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. Default value is STANDARD.
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.

Deprecated: Please use tags instead.

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.

Deprecated: Please use tags instead.

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.

Deprecated: Please use tags instead.

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.

Deprecated: Please use tags instead.

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.

Deprecated: Please use tags instead.

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.

Deprecated: Please use tags instead.

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,
        deletion_protection_enabled: Optional[bool] = None,
        global_secondary_indexes: Optional[Sequence[TableGlobalSecondaryIndexArgs]] = None,
        hash_key: Optional[str] = None,
        import_table: Optional[TableImportTableArgs] = None,
        local_secondary_indexes: Optional[Sequence[TableLocalSecondaryIndexArgs]] = None,
        name: Optional[str] = None,
        on_demand_throughput: Optional[TableOnDemandThroughputArgs] = 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_source_table_arn: 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)
resources:  _:    type: aws:dynamodb:Table    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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<TableAttribute>
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.
DeletionProtectionEnabled bool
Enables deletion protection for table. Defaults to false.
GlobalSecondaryIndexes List<TableGlobalSecondaryIndex>
Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
HashKey Changes to this property will trigger replacement. string
Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.
ImportTable TableImportTable
Import Amazon S3 data into a new table. See below.
LocalSecondaryIndexes Changes to this property will trigger replacement. List<TableLocalSecondaryIndex>
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 Changes to this property will trigger replacement. string

Unique within a region name of the table.

Optional arguments:

OnDemandThroughput TableOnDemandThroughput
Sets the maximum number of read and write units for the specified on-demand table. See below.
PointInTimeRecovery TablePointInTimeRecovery
Enable point-in-time recovery options. See below.
RangeKey Changes to this property will trigger replacement. 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<TableReplica>
Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
RestoreDateTime Changes to this property will trigger replacement. 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.
RestoreSourceTableArn string
ARN of the source table to restore. Must be supplied for cross-region restores.
RestoreToLatestTime Changes to this property will trigger replacement. bool
If set, restores table to the most recent point-in-time recovery point.
ServerSideEncryption TableServerSideEncryption
Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. Must be supplied for cross-region restores. See below.
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. Default value is STANDARD.
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.

Deprecated: Please use tags instead.

Ttl TableTtl
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.
DeletionProtectionEnabled bool
Enables deletion protection for table. Defaults to false.
GlobalSecondaryIndexes []TableGlobalSecondaryIndexArgs
Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
HashKey Changes to this property will trigger replacement. string
Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.
ImportTable TableImportTableArgs
Import Amazon S3 data into a new table. See below.
LocalSecondaryIndexes Changes to this property will trigger replacement. []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 Changes to this property will trigger replacement. string

Unique within a region name of the table.

Optional arguments:

OnDemandThroughput TableOnDemandThroughputArgs
Sets the maximum number of read and write units for the specified on-demand table. See below.
PointInTimeRecovery TablePointInTimeRecoveryArgs
Enable point-in-time recovery options. See below.
RangeKey Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. 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.
RestoreSourceTableArn string
ARN of the source table to restore. Must be supplied for cross-region restores.
RestoreToLatestTime Changes to this property will trigger replacement. 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. Must be supplied for cross-region restores. 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. Default value is STANDARD.
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.

Deprecated: Please use tags instead.

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<TableAttribute>
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.
deletionProtectionEnabled Boolean
Enables deletion protection for table. Defaults to false.
globalSecondaryIndexes List<TableGlobalSecondaryIndex>
Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
hashKey Changes to this property will trigger replacement. String
Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.
importTable TableImportTable
Import Amazon S3 data into a new table. See below.
localSecondaryIndexes Changes to this property will trigger replacement. List<TableLocalSecondaryIndex>
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 Changes to this property will trigger replacement. String

Unique within a region name of the table.

Optional arguments:

onDemandThroughput TableOnDemandThroughput
Sets the maximum number of read and write units for the specified on-demand table. See below.
pointInTimeRecovery TablePointInTimeRecovery
Enable point-in-time recovery options. See below.
rangeKey Changes to this property will trigger replacement. 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<TableReplica>
Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
restoreDateTime Changes to this property will trigger replacement. 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.
restoreSourceTableArn String
ARN of the source table to restore. Must be supplied for cross-region restores.
restoreToLatestTime Changes to this property will trigger replacement. Boolean
If set, restores table to the most recent point-in-time recovery point.
serverSideEncryption TableServerSideEncryption
Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. Must be supplied for cross-region restores. See below.
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. Default value is STANDARD.
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.

Deprecated: Please use tags instead.

ttl TableTtl
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 TableAttribute[]
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.
deletionProtectionEnabled boolean
Enables deletion protection for table. Defaults to false.
globalSecondaryIndexes TableGlobalSecondaryIndex[]
Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
hashKey Changes to this property will trigger replacement. string
Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.
importTable TableImportTable
Import Amazon S3 data into a new table. See below.
localSecondaryIndexes Changes to this property will trigger replacement. TableLocalSecondaryIndex[]
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 Changes to this property will trigger replacement. string

Unique within a region name of the table.

Optional arguments:

onDemandThroughput TableOnDemandThroughput
Sets the maximum number of read and write units for the specified on-demand table. See below.
pointInTimeRecovery TablePointInTimeRecovery
Enable point-in-time recovery options. See below.
rangeKey Changes to this property will trigger replacement. 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 TableReplica[]
Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
restoreDateTime Changes to this property will trigger replacement. 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.
restoreSourceTableArn string
ARN of the source table to restore. Must be supplied for cross-region restores.
restoreToLatestTime Changes to this property will trigger replacement. boolean
If set, restores table to the most recent point-in-time recovery point.
serverSideEncryption TableServerSideEncryption
Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. Must be supplied for cross-region restores. See below.
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. Default value is STANDARD.
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.

Deprecated: Please use tags instead.

ttl TableTtl
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.
deletion_protection_enabled bool
Enables deletion protection for table. Defaults to false.
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 Changes to this property will trigger replacement. str
Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.
import_table TableImportTableArgs
Import Amazon S3 data into a new table. See below.
local_secondary_indexes Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. str

Unique within a region name of the table.

Optional arguments:

on_demand_throughput TableOnDemandThroughputArgs
Sets the maximum number of read and write units for the specified on-demand table. See below.
point_in_time_recovery TablePointInTimeRecoveryArgs
Enable point-in-time recovery options. See below.
range_key Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. 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_source_table_arn str
ARN of the source table to restore. Must be supplied for cross-region restores.
restore_to_latest_time Changes to this property will trigger replacement. 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. Must be supplied for cross-region restores. 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. Default value is STANDARD.
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.

Deprecated: Please use tags instead.

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.
deletionProtectionEnabled Boolean
Enables deletion protection for table. Defaults to false.
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 Changes to this property will trigger replacement. String
Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.
importTable Property Map
Import Amazon S3 data into a new table. See below.
localSecondaryIndexes Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. String

Unique within a region name of the table.

Optional arguments:

onDemandThroughput Property Map
Sets the maximum number of read and write units for the specified on-demand table. See below.
pointInTimeRecovery Property Map
Enable point-in-time recovery options. See below.
rangeKey Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. 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.
restoreSourceTableArn String
ARN of the source table to restore. Must be supplied for cross-region restores.
restoreToLatestTime Changes to this property will trigger replacement. 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. Must be supplied for cross-region restores. 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. Default value is STANDARD.
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.

Deprecated: Please use tags instead.

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
, TableAttributeArgs

Name This property is required. string
Name of the attribute
Type This property is required. string
Attribute type. Valid values are S (string), N (number), B (binary).
Name This property is required. string
Name of the attribute
Type This property is required. string
Attribute type. Valid values are S (string), N (number), B (binary).
name This property is required. String
Name of the attribute
type This property is required. String
Attribute type. Valid values are S (string), N (number), B (binary).
name This property is required. string
Name of the attribute
type This property is required. string
Attribute type. Valid values are S (string), N (number), B (binary).
name This property is required. str
Name of the attribute
type This property is required. str
Attribute type. Valid values are S (string), N (number), B (binary).
name This property is required. String
Name of the attribute
type This property is required. String
Attribute type. Valid values are S (string), N (number), B (binary).

TableGlobalSecondaryIndex
, TableGlobalSecondaryIndexArgs

HashKey This property is required. string
Name of the hash key in the index; must be defined as an attribute in the resource.
Name This property is required. string
Name of the index.
ProjectionType This property is required. 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.
OnDemandThroughput TableGlobalSecondaryIndexOnDemandThroughput
Sets the maximum number of read and write units for the specified on-demand table. See below.
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 This property is required. string
Name of the hash key in the index; must be defined as an attribute in the resource.
Name This property is required. string
Name of the index.
ProjectionType This property is required. 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.
OnDemandThroughput TableGlobalSecondaryIndexOnDemandThroughput
Sets the maximum number of read and write units for the specified on-demand table. See below.
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 This property is required. String
Name of the hash key in the index; must be defined as an attribute in the resource.
name This property is required. String
Name of the index.
projectionType This property is required. 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.
onDemandThroughput TableGlobalSecondaryIndexOnDemandThroughput
Sets the maximum number of read and write units for the specified on-demand table. See below.
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 This property is required. string
Name of the hash key in the index; must be defined as an attribute in the resource.
name This property is required. string
Name of the index.
projectionType This property is required. 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.
onDemandThroughput TableGlobalSecondaryIndexOnDemandThroughput
Sets the maximum number of read and write units for the specified on-demand table. See below.
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 This property is required. str
Name of the hash key in the index; must be defined as an attribute in the resource.
name This property is required. str
Name of the index.
projection_type This property is required. 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.
on_demand_throughput TableGlobalSecondaryIndexOnDemandThroughput
Sets the maximum number of read and write units for the specified on-demand table. See below.
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 This property is required. String
Name of the hash key in the index; must be defined as an attribute in the resource.
name This property is required. String
Name of the index.
projectionType This property is required. 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.
onDemandThroughput Property Map
Sets the maximum number of read and write units for the specified on-demand table. See below.
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.

TableGlobalSecondaryIndexOnDemandThroughput
, TableGlobalSecondaryIndexOnDemandThroughputArgs

MaxReadRequestUnits int
Maximum number of read request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
MaxWriteRequestUnits int
Maximum number of write request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
MaxReadRequestUnits int
Maximum number of read request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
MaxWriteRequestUnits int
Maximum number of write request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
maxReadRequestUnits Integer
Maximum number of read request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
maxWriteRequestUnits Integer
Maximum number of write request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
maxReadRequestUnits number
Maximum number of read request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
maxWriteRequestUnits number
Maximum number of write request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
max_read_request_units int
Maximum number of read request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
max_write_request_units int
Maximum number of write request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
maxReadRequestUnits Number
Maximum number of read request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
maxWriteRequestUnits Number
Maximum number of write request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.

TableImportTable
, TableImportTableArgs

InputFormat This property is required. string
The format of the source data. Valid values are CSV, DYNAMODB_JSON, and ION.
S3BucketSource
This property is required.
Changes to this property will trigger replacement.
TableImportTableS3BucketSource
Values for the S3 bucket the source file is imported from. See below.
InputCompressionType string
Type of compression to be used on the input coming from the imported table. Valid values are GZIP, ZSTD and NONE.
InputFormatOptions TableImportTableInputFormatOptions
Describe the format options for the data that was imported into the target table. There is one value, csv. See below.
InputFormat This property is required. string
The format of the source data. Valid values are CSV, DYNAMODB_JSON, and ION.
S3BucketSource
This property is required.
Changes to this property will trigger replacement.
TableImportTableS3BucketSource
Values for the S3 bucket the source file is imported from. See below.
InputCompressionType string
Type of compression to be used on the input coming from the imported table. Valid values are GZIP, ZSTD and NONE.
InputFormatOptions TableImportTableInputFormatOptions
Describe the format options for the data that was imported into the target table. There is one value, csv. See below.
inputFormat This property is required. String
The format of the source data. Valid values are CSV, DYNAMODB_JSON, and ION.
s3BucketSource
This property is required.
Changes to this property will trigger replacement.
TableImportTableS3BucketSource
Values for the S3 bucket the source file is imported from. See below.
inputCompressionType String
Type of compression to be used on the input coming from the imported table. Valid values are GZIP, ZSTD and NONE.
inputFormatOptions TableImportTableInputFormatOptions
Describe the format options for the data that was imported into the target table. There is one value, csv. See below.
inputFormat This property is required. string
The format of the source data. Valid values are CSV, DYNAMODB_JSON, and ION.
s3BucketSource
This property is required.
Changes to this property will trigger replacement.
TableImportTableS3BucketSource
Values for the S3 bucket the source file is imported from. See below.
inputCompressionType string
Type of compression to be used on the input coming from the imported table. Valid values are GZIP, ZSTD and NONE.
inputFormatOptions TableImportTableInputFormatOptions
Describe the format options for the data that was imported into the target table. There is one value, csv. See below.
input_format This property is required. str
The format of the source data. Valid values are CSV, DYNAMODB_JSON, and ION.
s3_bucket_source
This property is required.
Changes to this property will trigger replacement.
TableImportTableS3BucketSource
Values for the S3 bucket the source file is imported from. See below.
input_compression_type str
Type of compression to be used on the input coming from the imported table. Valid values are GZIP, ZSTD and NONE.
input_format_options TableImportTableInputFormatOptions
Describe the format options for the data that was imported into the target table. There is one value, csv. See below.
inputFormat This property is required. String
The format of the source data. Valid values are CSV, DYNAMODB_JSON, and ION.
s3BucketSource
This property is required.
Changes to this property will trigger replacement.
Property Map
Values for the S3 bucket the source file is imported from. See below.
inputCompressionType String
Type of compression to be used on the input coming from the imported table. Valid values are GZIP, ZSTD and NONE.
inputFormatOptions Property Map
Describe the format options for the data that was imported into the target table. There is one value, csv. See below.

TableImportTableInputFormatOptions
, TableImportTableInputFormatOptionsArgs

Csv TableImportTableInputFormatOptionsCsv
This block contains the processing options for the CSV file being imported:
Csv TableImportTableInputFormatOptionsCsv
This block contains the processing options for the CSV file being imported:
csv TableImportTableInputFormatOptionsCsv
This block contains the processing options for the CSV file being imported:
csv TableImportTableInputFormatOptionsCsv
This block contains the processing options for the CSV file being imported:
csv TableImportTableInputFormatOptionsCsv
This block contains the processing options for the CSV file being imported:
csv Property Map
This block contains the processing options for the CSV file being imported:

TableImportTableInputFormatOptionsCsv
, TableImportTableInputFormatOptionsCsvArgs

Delimiter string
The delimiter used for separating items in the CSV file being imported.
HeaderLists List<string>
List of the headers used to specify a common header for all source CSV files being imported.
Delimiter string
The delimiter used for separating items in the CSV file being imported.
HeaderLists []string
List of the headers used to specify a common header for all source CSV files being imported.
delimiter String
The delimiter used for separating items in the CSV file being imported.
headerLists List<String>
List of the headers used to specify a common header for all source CSV files being imported.
delimiter string
The delimiter used for separating items in the CSV file being imported.
headerLists string[]
List of the headers used to specify a common header for all source CSV files being imported.
delimiter str
The delimiter used for separating items in the CSV file being imported.
header_lists Sequence[str]
List of the headers used to specify a common header for all source CSV files being imported.
delimiter String
The delimiter used for separating items in the CSV file being imported.
headerLists List<String>
List of the headers used to specify a common header for all source CSV files being imported.

TableImportTableS3BucketSource
, TableImportTableS3BucketSourceArgs

Bucket This property is required. string
The S3 bucket that is being imported from.
BucketOwner string
The account number of the S3 bucket that is being imported from.
KeyPrefix string
The key prefix shared by all S3 Objects that are being imported.
Bucket This property is required. string
The S3 bucket that is being imported from.
BucketOwner string
The account number of the S3 bucket that is being imported from.
KeyPrefix string
The key prefix shared by all S3 Objects that are being imported.
bucket This property is required. String
The S3 bucket that is being imported from.
bucketOwner String
The account number of the S3 bucket that is being imported from.
keyPrefix String
The key prefix shared by all S3 Objects that are being imported.
bucket This property is required. string
The S3 bucket that is being imported from.
bucketOwner string
The account number of the S3 bucket that is being imported from.
keyPrefix string
The key prefix shared by all S3 Objects that are being imported.
bucket This property is required. str
The S3 bucket that is being imported from.
bucket_owner str
The account number of the S3 bucket that is being imported from.
key_prefix str
The key prefix shared by all S3 Objects that are being imported.
bucket This property is required. String
The S3 bucket that is being imported from.
bucketOwner String
The account number of the S3 bucket that is being imported from.
keyPrefix String
The key prefix shared by all S3 Objects that are being imported.

TableLocalSecondaryIndex
, TableLocalSecondaryIndexArgs

Name
This property is required.
Changes to this property will trigger replacement.
string
Name of the index
ProjectionType
This property is required.
Changes to this property will trigger replacement.
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
This property is required.
Changes to this property will trigger replacement.
string
Name of the range key.
NonKeyAttributes Changes to this property will trigger replacement. 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
This property is required.
Changes to this property will trigger replacement.
string
Name of the index
ProjectionType
This property is required.
Changes to this property will trigger replacement.
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
This property is required.
Changes to this property will trigger replacement.
string
Name of the range key.
NonKeyAttributes Changes to this property will trigger replacement. []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
This property is required.
Changes to this property will trigger replacement.
String
Name of the index
projectionType
This property is required.
Changes to this property will trigger replacement.
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
This property is required.
Changes to this property will trigger replacement.
String
Name of the range key.
nonKeyAttributes Changes to this property will trigger replacement. 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
This property is required.
Changes to this property will trigger replacement.
string
Name of the index
projectionType
This property is required.
Changes to this property will trigger replacement.
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
This property is required.
Changes to this property will trigger replacement.
string
Name of the range key.
nonKeyAttributes Changes to this property will trigger replacement. 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
This property is required.
Changes to this property will trigger replacement.
str
Name of the index
projection_type
This property is required.
Changes to this property will trigger replacement.
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
This property is required.
Changes to this property will trigger replacement.
str
Name of the range key.
non_key_attributes Changes to this property will trigger replacement. 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
This property is required.
Changes to this property will trigger replacement.
String
Name of the index
projectionType
This property is required.
Changes to this property will trigger replacement.
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
This property is required.
Changes to this property will trigger replacement.
String
Name of the range key.
nonKeyAttributes Changes to this property will trigger replacement. 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.

TableOnDemandThroughput
, TableOnDemandThroughputArgs

MaxReadRequestUnits int
Maximum number of read request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
MaxWriteRequestUnits int
Maximum number of write request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
MaxReadRequestUnits int
Maximum number of read request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
MaxWriteRequestUnits int
Maximum number of write request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
maxReadRequestUnits Integer
Maximum number of read request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
maxWriteRequestUnits Integer
Maximum number of write request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
maxReadRequestUnits number
Maximum number of read request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
maxWriteRequestUnits number
Maximum number of write request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
max_read_request_units int
Maximum number of read request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
max_write_request_units int
Maximum number of write request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
maxReadRequestUnits Number
Maximum number of read request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.
maxWriteRequestUnits Number
Maximum number of write request units for the specified table. To specify set the value greater than or equal to 1. To remove set the value to -1.

TablePointInTimeRecovery
, TablePointInTimeRecoveryArgs

Enabled This property is required. 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 This property is required. 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 This property is required. 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 This property is required. 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 This property is required. 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 This property is required. 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
, TableReplicaArgs

RegionName This property is required. string
Region name of the replica.
Arn string
ARN of the table
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. Note: Changing this value will recreate the replica.
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. Tag drift on a replica will not trigger an update. Tag changes on the global table are propagated to replicas. Changing from true to false on a subsequent apply leaves replica tags as-is and no longer manages them.
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.
RegionName This property is required. string
Region name of the replica.
Arn string
ARN of the table
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. Note: Changing this value will recreate the replica.
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. Tag drift on a replica will not trigger an update. Tag changes on the global table are propagated to replicas. Changing from true to false on a subsequent apply leaves replica tags as-is and no longer manages them.
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.
regionName This property is required. String
Region name of the replica.
arn String
ARN of the table
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. Note: Changing this value will recreate the replica.
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. Tag drift on a replica will not trigger an update. Tag changes on the global table are propagated to replicas. Changing from true to false on a subsequent apply leaves replica tags as-is and no longer manages them.
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.
regionName This property is required. string
Region name of the replica.
arn string
ARN of the table
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. Note: Changing this value will recreate the replica.
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. Tag drift on a replica will not trigger an update. Tag changes on the global table are propagated to replicas. Changing from true to false on a subsequent apply leaves replica tags as-is and no longer manages them.
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.
region_name This property is required. str
Region name of the replica.
arn str
ARN of the table
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. Note: Changing this value will recreate the replica.
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. Tag drift on a replica will not trigger an update. Tag changes on the global table are propagated to replicas. Changing from true to false on a subsequent apply leaves replica tags as-is and no longer manages them.
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.
regionName This property is required. String
Region name of the replica.
arn String
ARN of the table
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. Note: Changing this value will recreate the replica.
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. Tag drift on a replica will not trigger an update. Tag changes on the global table are propagated to replicas. Changing from true to false on a subsequent apply leaves replica tags as-is and no longer manages them.
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.

TableServerSideEncryption
, TableServerSideEncryptionArgs

Enabled This property is required. 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 This property is required. 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 This property is required. 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 This property is required. 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 This property is required. 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 This property is required. 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
, TableTtlArgs

AttributeName string
Name of the table attribute to store the TTL timestamp in. Required if enabled is true, must not be set otherwise.
Enabled bool
Whether TTL is enabled. Default value is false.
AttributeName string
Name of the table attribute to store the TTL timestamp in. Required if enabled is true, must not be set otherwise.
Enabled bool
Whether TTL is enabled. Default value is false.
attributeName String
Name of the table attribute to store the TTL timestamp in. Required if enabled is true, must not be set otherwise.
enabled Boolean
Whether TTL is enabled. Default value is false.
attributeName string
Name of the table attribute to store the TTL timestamp in. Required if enabled is true, must not be set otherwise.
enabled boolean
Whether TTL is enabled. Default value is false.
attribute_name str
Name of the table attribute to store the TTL timestamp in. Required if enabled is true, must not be set otherwise.
enabled bool
Whether TTL is enabled. Default value is false.
attributeName String
Name of the table attribute to store the TTL timestamp in. Required if enabled is true, must not be set otherwise.
enabled Boolean
Whether TTL is enabled. Default value is false.

Import

Using pulumi import, import DynamoDB tables using the name. For example:

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

To learn more about importing existing cloud resources, see Importing resources.

Package Details

Repository
AWS Classic pulumi/pulumi-aws
License
Apache-2.0
Notes
This Pulumi package is based on the aws Terraform Provider.