1. Packages
  2. AWS
  3. API Docs
  4. dynamodb
  5. Table
AWS v6.54.0 published on Friday, Sep 27, 2024 by Pulumi

aws.dynamodb.Table

Explore with Pulumi AI

aws logo
AWS v6.54.0 published on Friday, Sep 27, 2024 by Pulumi

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

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

    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",
    });
    
    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")
    
    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, nil, nil)
    		if err != nil {
    			return err
    		}
    		alternate, err := aws.GetRegion(ctx, nil, nil)
    		if err != nil {
    			return err
    		}
    		third, err := aws.GetRegion(ctx, nil, 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
    	})
    }
    
    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",
        });
    
    });
    
    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());
    
        }
    }
    
    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: {}
    

    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,
              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 string
    The unique name of the resource.
    args TableArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args TableArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args TableArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args TableArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args TableArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    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",
                },
                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",
        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,
    });
    
    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"),
    			},
    			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"),
    	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),
    })
    
    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")
            .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")
        .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());
    
    table_resource = aws.dynamodb.Table("tableResource",
        attributes=[{
            "name": "string",
            "type": "string",
        }],
        billing_mode="string",
        deletion_protection_enabled=False,
        global_secondary_indexes=[{
            "hashKey": "string",
            "name": "string",
            "projectionType": "string",
            "nonKeyAttributes": ["string"],
            "rangeKey": "string",
            "readCapacity": 0,
            "writeCapacity": 0,
        }],
        hash_key="string",
        import_table={
            "inputFormat": "string",
            "s3BucketSource": {
                "bucket": "string",
                "bucketOwner": "string",
                "keyPrefix": "string",
            },
            "inputCompressionType": "string",
            "inputFormatOptions": {
                "csv": {
                    "delimiter": "string",
                    "headerLists": ["string"],
                },
            },
        },
        local_secondary_indexes=[{
            "name": "string",
            "projectionType": "string",
            "rangeKey": "string",
            "nonKeyAttributes": ["string"],
        }],
        name="string",
        point_in_time_recovery={
            "enabled": False,
        },
        range_key="string",
        read_capacity=0,
        replicas=[{
            "regionName": "string",
            "arn": "string",
            "kmsKeyArn": "string",
            "pointInTimeRecovery": False,
            "propagateTags": False,
            "streamArn": "string",
            "streamLabel": "string",
        }],
        restore_date_time="string",
        restore_source_name="string",
        restore_source_table_arn="string",
        restore_to_latest_time=False,
        server_side_encryption={
            "enabled": False,
            "kmsKeyArn": "string",
        },
        stream_enabled=False,
        stream_view_type="string",
        table_class="string",
        tags={
            "string": "string",
        },
        ttl={
            "attributeName": "string",
            "enabled": False,
        },
        write_capacity=0)
    
    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"],
            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",
        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,
    });
    
    type: aws:dynamodb:Table
    properties:
        attributes:
            - name: string
              type: string
        billingMode: string
        deletionProtectionEnabled: false
        globalSecondaryIndexes:
            - hashKey: string
              name: string
              nonKeyAttributes:
                - string
              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
        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
    

    Table Resource Properties

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

    Inputs

    The Table resource accepts the following input properties:

    Attributes List<Pulumi.Aws.DynamoDB.Inputs.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<Pulumi.Aws.DynamoDB.Inputs.TableGlobalSecondaryIndex>
    Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
    HashKey string
    Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.
    ImportTable Pulumi.Aws.DynamoDB.Inputs.TableImportTable
    Import Amazon S3 data into a new table. See below.
    LocalSecondaryIndexes List<Pulumi.Aws.DynamoDB.Inputs.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 string

    Unique within a region name of the table.

    Optional arguments:

    PointInTimeRecovery Pulumi.Aws.DynamoDB.Inputs.TablePointInTimeRecovery
    Enable point-in-time recovery options. See below.
    RangeKey string
    Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.
    ReadCapacity int
    Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.
    Replicas List<Pulumi.Aws.DynamoDB.Inputs.TableReplica>
    Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
    RestoreDateTime string
    Time of the point-in-time recovery point to restore.
    RestoreSourceName string
    Name of the table to restore. Must match the name of an existing table.
    RestoreSourceTableArn string
    ARN of the source table to restore. Must be supplied for cross-region restores.
    RestoreToLatestTime bool
    If set, restores table to the most recent point-in-time recovery point.
    ServerSideEncryption Pulumi.Aws.DynamoDB.Inputs.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 Pulumi.Aws.DynamoDB.Inputs.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 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 []TableLocalSecondaryIndexArgs
    Describe an LSI on the table; these can only be allocated at creation so you cannot change this definition after you have created the resource. See below.
    Name string

    Unique within a region name of the table.

    Optional arguments:

    PointInTimeRecovery TablePointInTimeRecoveryArgs
    Enable point-in-time recovery options. See below.
    RangeKey string
    Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.
    ReadCapacity int
    Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.
    Replicas []TableReplicaTypeArgs
    Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
    RestoreDateTime string
    Time of the point-in-time recovery point to restore.
    RestoreSourceName string
    Name of the table to restore. Must match the name of an existing table.
    RestoreSourceTableArn string
    ARN of the source table to restore. Must be supplied for cross-region restores.
    RestoreToLatestTime bool
    If set, restores table to the most recent point-in-time recovery point.
    ServerSideEncryption TableServerSideEncryptionArgs
    Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. 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 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 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 String

    Unique within a region name of the table.

    Optional arguments:

    pointInTimeRecovery TablePointInTimeRecovery
    Enable point-in-time recovery options. See below.
    rangeKey String
    Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.
    readCapacity Integer
    Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.
    replicas List<TableReplica>
    Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
    restoreDateTime String
    Time of the point-in-time recovery point to restore.
    restoreSourceName String
    Name of the table to restore. Must match the name of an existing table.
    restoreSourceTableArn String
    ARN of the source table to restore. Must be supplied for cross-region restores.
    restoreToLatestTime 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 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 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 string

    Unique within a region name of the table.

    Optional arguments:

    pointInTimeRecovery TablePointInTimeRecovery
    Enable point-in-time recovery options. See below.
    rangeKey string
    Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.
    readCapacity number
    Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.
    replicas TableReplica[]
    Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
    restoreDateTime string
    Time of the point-in-time recovery point to restore.
    restoreSourceName string
    Name of the table to restore. Must match the name of an existing table.
    restoreSourceTableArn string
    ARN of the source table to restore. Must be supplied for cross-region restores.
    restoreToLatestTime 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 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 Sequence[TableLocalSecondaryIndexArgs]
    Describe an LSI on the table; these can only be allocated at creation so you cannot change this definition after you have created the resource. See below.
    name str

    Unique within a region name of the table.

    Optional arguments:

    point_in_time_recovery TablePointInTimeRecoveryArgs
    Enable point-in-time recovery options. See below.
    range_key str
    Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.
    read_capacity int
    Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.
    replicas Sequence[TableReplicaArgs]
    Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
    restore_date_time str
    Time of the point-in-time recovery point to restore.
    restore_source_name str
    Name of the table to restore. Must match the name of an existing table.
    restore_source_table_arn str
    ARN of the source table to restore. Must be supplied for cross-region restores.
    restore_to_latest_time bool
    If set, restores table to the most recent point-in-time recovery point.
    server_side_encryption TableServerSideEncryptionArgs
    Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. 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 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 List<Property Map>
    Describe an LSI on the table; these can only be allocated at creation so you cannot change this definition after you have created the resource. See below.
    name String

    Unique within a region name of the table.

    Optional arguments:

    pointInTimeRecovery Property Map
    Enable point-in-time recovery options. See below.
    rangeKey String
    Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.
    readCapacity Number
    Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.
    replicas List<Property Map>
    Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
    restoreDateTime String
    Time of the point-in-time recovery point to restore.
    restoreSourceName String
    Name of the table to restore. Must match the name of an existing table.
    restoreSourceTableArn String
    ARN of the source table to restore. Must be supplied for cross-region restores.
    restoreToLatestTime Boolean
    If set, restores table to the most recent point-in-time recovery point.
    serverSideEncryption Property Map
    Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. 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,
            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)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Arn string
    ARN of the table
    Attributes List<Pulumi.Aws.DynamoDB.Inputs.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<Pulumi.Aws.DynamoDB.Inputs.TableGlobalSecondaryIndex>
    Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
    HashKey string
    Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below.
    ImportTable Pulumi.Aws.DynamoDB.Inputs.TableImportTable
    Import Amazon S3 data into a new table. See below.
    LocalSecondaryIndexes List<Pulumi.Aws.DynamoDB.Inputs.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 string

    Unique within a region name of the table.

    Optional arguments:

    PointInTimeRecovery Pulumi.Aws.DynamoDB.Inputs.TablePointInTimeRecovery
    Enable point-in-time recovery options. See below.
    RangeKey string
    Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.
    ReadCapacity int
    Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.
    Replicas List<Pulumi.Aws.DynamoDB.Inputs.TableReplica>
    Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
    RestoreDateTime string
    Time of the point-in-time recovery point to restore.
    RestoreSourceName string
    Name of the table to restore. Must match the name of an existing table.
    RestoreSourceTableArn string
    ARN of the source table to restore. Must be supplied for cross-region restores.
    RestoreToLatestTime bool
    If set, restores table to the most recent point-in-time recovery point.
    ServerSideEncryption Pulumi.Aws.DynamoDB.Inputs.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 Pulumi.Aws.DynamoDB.Inputs.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 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 []TableLocalSecondaryIndexArgs
    Describe an LSI on the table; these can only be allocated at creation so you cannot change this definition after you have created the resource. See below.
    Name string

    Unique within a region name of the table.

    Optional arguments:

    PointInTimeRecovery TablePointInTimeRecoveryArgs
    Enable point-in-time recovery options. See below.
    RangeKey string
    Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.
    ReadCapacity int
    Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.
    Replicas []TableReplicaTypeArgs
    Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
    RestoreDateTime string
    Time of the point-in-time recovery point to restore.
    RestoreSourceName string
    Name of the table to restore. Must match the name of an existing table.
    RestoreSourceTableArn string
    ARN of the source table to restore. Must be supplied for cross-region restores.
    RestoreToLatestTime bool
    If set, restores table to the most recent point-in-time recovery point.
    ServerSideEncryption TableServerSideEncryptionArgs
    Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. 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 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 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 String

    Unique within a region name of the table.

    Optional arguments:

    pointInTimeRecovery TablePointInTimeRecovery
    Enable point-in-time recovery options. See below.
    rangeKey String
    Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.
    readCapacity Integer
    Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.
    replicas List<TableReplica>
    Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
    restoreDateTime String
    Time of the point-in-time recovery point to restore.
    restoreSourceName String
    Name of the table to restore. Must match the name of an existing table.
    restoreSourceTableArn String
    ARN of the source table to restore. Must be supplied for cross-region restores.
    restoreToLatestTime 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 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 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 string

    Unique within a region name of the table.

    Optional arguments:

    pointInTimeRecovery TablePointInTimeRecovery
    Enable point-in-time recovery options. See below.
    rangeKey string
    Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.
    readCapacity number
    Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.
    replicas TableReplica[]
    Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
    restoreDateTime string
    Time of the point-in-time recovery point to restore.
    restoreSourceName string
    Name of the table to restore. Must match the name of an existing table.
    restoreSourceTableArn string
    ARN of the source table to restore. Must be supplied for cross-region restores.
    restoreToLatestTime 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 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 Sequence[TableLocalSecondaryIndexArgs]
    Describe an LSI on the table; these can only be allocated at creation so you cannot change this definition after you have created the resource. See below.
    name str

    Unique within a region name of the table.

    Optional arguments:

    point_in_time_recovery TablePointInTimeRecoveryArgs
    Enable point-in-time recovery options. See below.
    range_key str
    Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.
    read_capacity int
    Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.
    replicas Sequence[TableReplicaArgs]
    Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
    restore_date_time str
    Time of the point-in-time recovery point to restore.
    restore_source_name str
    Name of the table to restore. Must match the name of an existing table.
    restore_source_table_arn str
    ARN of the source table to restore. Must be supplied for cross-region restores.
    restore_to_latest_time bool
    If set, restores table to the most recent point-in-time recovery point.
    server_side_encryption TableServerSideEncryptionArgs
    Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. 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 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 List<Property Map>
    Describe an LSI on the table; these can only be allocated at creation so you cannot change this definition after you have created the resource. See below.
    name String

    Unique within a region name of the table.

    Optional arguments:

    pointInTimeRecovery Property Map
    Enable point-in-time recovery options. See below.
    rangeKey String
    Attribute to use as the range (sort) key. Must also be defined as an attribute, see below.
    readCapacity Number
    Number of read units for this table. If the billing_mode is PROVISIONED, this field is required.
    replicas List<Property Map>
    Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below.
    restoreDateTime String
    Time of the point-in-time recovery point to restore.
    restoreSourceName String
    Name of the table to restore. Must match the name of an existing table.
    restoreSourceTableArn String
    ARN of the source table to restore. Must be supplied for cross-region restores.
    restoreToLatestTime Boolean
    If set, restores table to the most recent point-in-time recovery point.
    serverSideEncryption Property Map
    Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. 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 string
    Name of the attribute
    Type string
    Attribute type. Valid values are S (string), N (number), B (binary).
    Name string
    Name of the attribute
    Type string
    Attribute type. Valid values are S (string), N (number), B (binary).
    name String
    Name of the attribute
    type String
    Attribute type. Valid values are S (string), N (number), B (binary).
    name string
    Name of the attribute
    type string
    Attribute type. Valid values are S (string), N (number), B (binary).
    name str
    Name of the attribute
    type str
    Attribute type. Valid values are S (string), N (number), B (binary).
    name String
    Name of the attribute
    type String
    Attribute type. Valid values are S (string), N (number), B (binary).

    TableGlobalSecondaryIndex, TableGlobalSecondaryIndexArgs

    HashKey string
    Name of the hash key in the index; must be defined as an attribute in the resource.
    Name string
    Name of the index.
    ProjectionType string
    One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.
    NonKeyAttributes List<string>
    Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.
    RangeKey string
    Name of the range key; must be defined
    ReadCapacity int
    Number of read units for this index. Must be set if billing_mode is set to PROVISIONED.
    WriteCapacity int
    Number of write units for this index. Must be set if billing_mode is set to PROVISIONED.
    HashKey string
    Name of the hash key in the index; must be defined as an attribute in the resource.
    Name string
    Name of the index.
    ProjectionType string
    One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.
    NonKeyAttributes []string
    Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.
    RangeKey string
    Name of the range key; must be defined
    ReadCapacity int
    Number of read units for this index. Must be set if billing_mode is set to PROVISIONED.
    WriteCapacity int
    Number of write units for this index. Must be set if billing_mode is set to PROVISIONED.
    hashKey String
    Name of the hash key in the index; must be defined as an attribute in the resource.
    name String
    Name of the index.
    projectionType String
    One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.
    nonKeyAttributes List<String>
    Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.
    rangeKey String
    Name of the range key; must be defined
    readCapacity Integer
    Number of read units for this index. Must be set if billing_mode is set to PROVISIONED.
    writeCapacity Integer
    Number of write units for this index. Must be set if billing_mode is set to PROVISIONED.
    hashKey string
    Name of the hash key in the index; must be defined as an attribute in the resource.
    name string
    Name of the index.
    projectionType string
    One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.
    nonKeyAttributes string[]
    Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.
    rangeKey string
    Name of the range key; must be defined
    readCapacity number
    Number of read units for this index. Must be set if billing_mode is set to PROVISIONED.
    writeCapacity number
    Number of write units for this index. Must be set if billing_mode is set to PROVISIONED.
    hash_key str
    Name of the hash key in the index; must be defined as an attribute in the resource.
    name str
    Name of the index.
    projection_type str
    One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.
    non_key_attributes Sequence[str]
    Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.
    range_key str
    Name of the range key; must be defined
    read_capacity int
    Number of read units for this index. Must be set if billing_mode is set to PROVISIONED.
    write_capacity int
    Number of write units for this index. Must be set if billing_mode is set to PROVISIONED.
    hashKey String
    Name of the hash key in the index; must be defined as an attribute in the resource.
    name String
    Name of the index.
    projectionType String
    One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.
    nonKeyAttributes List<String>
    Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.
    rangeKey String
    Name of the range key; must be defined
    readCapacity Number
    Number of read units for this index. Must be set if billing_mode is set to PROVISIONED.
    writeCapacity Number
    Number of write units for this index. Must be set if billing_mode is set to PROVISIONED.

    TableImportTable, TableImportTableArgs

    InputFormat string
    The format of the source data. Valid values are CSV, DYNAMODB_JSON, and ION.
    S3BucketSource Pulumi.Aws.DynamoDB.Inputs.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 Pulumi.Aws.DynamoDB.Inputs.TableImportTableInputFormatOptions
    Describe the format options for the data that was imported into the target table. There is one value, csv. See below.
    InputFormat string
    The format of the source data. Valid values are CSV, DYNAMODB_JSON, and ION.
    S3BucketSource 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 String
    The format of the source data. Valid values are CSV, DYNAMODB_JSON, and ION.
    s3BucketSource 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 string
    The format of the source data. Valid values are CSV, DYNAMODB_JSON, and ION.
    s3BucketSource 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 str
    The format of the source data. Valid values are CSV, DYNAMODB_JSON, and ION.
    s3_bucket_source 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 String
    The format of the source data. Valid values are CSV, DYNAMODB_JSON, and ION.
    s3BucketSource 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 Pulumi.Aws.DynamoDB.Inputs.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 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 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 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 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 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 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 string
    Name of the index
    ProjectionType string
    One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.
    RangeKey string
    Name of the range key.
    NonKeyAttributes List<string>
    Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.
    Name string
    Name of the index
    ProjectionType string
    One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.
    RangeKey string
    Name of the range key.
    NonKeyAttributes []string
    Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.
    name String
    Name of the index
    projectionType String
    One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.
    rangeKey String
    Name of the range key.
    nonKeyAttributes List<String>
    Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.
    name string
    Name of the index
    projectionType string
    One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.
    rangeKey string
    Name of the range key.
    nonKeyAttributes string[]
    Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.
    name str
    Name of the index
    projection_type str
    One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.
    range_key str
    Name of the range key.
    non_key_attributes Sequence[str]
    Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.
    name String
    Name of the index
    projectionType String
    One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project.
    rangeKey String
    Name of the range key.
    nonKeyAttributes List<String>
    Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table.

    TablePointInTimeRecovery, TablePointInTimeRecoveryArgs

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

    TableReplica, TableReplicaArgs

    RegionName 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.
    PointInTimeRecovery bool
    Whether to enable Point In Time Recovery for the replica. Default is false.
    PropagateTags bool
    Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted.
    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 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.
    PointInTimeRecovery bool
    Whether to enable Point In Time Recovery for the replica. Default is false.
    PropagateTags bool
    Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted.
    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 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.
    pointInTimeRecovery Boolean
    Whether to enable Point In Time Recovery for the replica. Default is false.
    propagateTags Boolean
    Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted.
    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 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.
    pointInTimeRecovery boolean
    Whether to enable Point In Time Recovery for the replica. Default is false.
    propagateTags boolean
    Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted.
    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 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.
    point_in_time_recovery bool
    Whether to enable Point In Time Recovery for the replica. Default is false.
    propagate_tags bool
    Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted.
    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 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.
    pointInTimeRecovery Boolean
    Whether to enable Point In Time Recovery for the replica. Default is false.
    propagateTags Boolean
    Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted.
    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 bool
    Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys.
    KmsKeyArn string
    ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.
    Enabled bool
    Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys.
    KmsKeyArn string
    ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.
    enabled Boolean
    Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys.
    kmsKeyArn String
    ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.
    enabled boolean
    Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys.
    kmsKeyArn string
    ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.
    enabled bool
    Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys.
    kms_key_arn str
    ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.
    enabled Boolean
    Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys.
    kmsKeyArn String
    ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.

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

    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.
    aws logo
    AWS v6.54.0 published on Friday, Sep 27, 2024 by Pulumi