import * as core from "@terrascript/core"; export interface GlobalSecondaryIndexArgs extends core.SchemaArgs { hashKey: string | core.StringOut; name: string | core.StringOut; nonKeyAttributes: core.Array | core.ArrayOut; projectionType: string | core.StringOut; rangeKey: string | core.StringOut; readCapacity: number | core.NumberOut; writeCapacity: number | core.NumberOut; } export class GlobalSecondaryIndex extends core.Schema { @core.attr(String, { computed: true }) public hashKey!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public nonKeyAttributes!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public projectionType!: string | core.StringOut; @core.attr(String, { computed: true }) public rangeKey!: string | core.StringOut; @core.attr(Number, { computed: true }) public readCapacity!: number | core.NumberOut; @core.attr(Number, { computed: true }) public writeCapacity!: number | core.NumberOut; } export interface TtlArgs extends core.SchemaArgs { attributeName: string | core.StringOut; enabled: boolean | core.BooleanOut; } export class Ttl extends core.Schema { @core.attr(String, { computed: true }) public attributeName!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public enabled!: boolean | core.BooleanOut; } export interface AttributeArgs extends core.SchemaArgs { name: string | core.StringOut; type: string | core.StringOut; } export class Attribute extends core.Schema { @core.attr(String, { computed: true }) public name!: string | core.StringOut; @core.attr(String, { computed: true }) public type!: string | core.StringOut; } export interface LocalSecondaryIndexArgs extends core.SchemaArgs { name: string | core.StringOut; nonKeyAttributes: core.Array | core.ArrayOut; projectionType: string | core.StringOut; rangeKey: string | core.StringOut; } export class LocalSecondaryIndex extends core.Schema { @core.attr(String, { computed: true }) public name!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public nonKeyAttributes!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public projectionType!: string | core.StringOut; @core.attr(String, { computed: true }) public rangeKey!: string | core.StringOut; } export interface ReplicaArgs extends core.SchemaArgs { kmsKeyArn: string | core.StringOut; regionName: string | core.StringOut; } export class Replica extends core.Schema { @core.attr(String, { computed: true }) public kmsKeyArn!: string | core.StringOut; @core.attr(String, { computed: true }) public regionName!: string | core.StringOut; } export interface ServerSideEncryptionArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; kmsKeyArn: string | core.StringOut; } export class ServerSideEncryption extends core.Schema { @core.attr(Boolean, { computed: true }) public enabled!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public kmsKeyArn!: string | core.StringOut; } export interface PointInTimeRecoveryArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; } export class PointInTimeRecovery extends core.Schema { @core.attr(Boolean, { computed: true }) public enabled!: boolean | core.BooleanOut; } export interface DsTableArgs { /** * (Required) The name of the DynamoDB table. */ name: string | core.StringOut; serverSideEncryption?: ServerSideEncryption; tags?: core.Map | core.MapOut; } export class DsTable extends core.Data { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(Attribute, { computed: true, kind: "array" }) public attribute!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public billingMode!: string | core.StringOut; @core.attr(GlobalSecondaryIndex, { computed: true, kind: "array" }) public globalSecondaryIndex!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public hashKey!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(LocalSecondaryIndex, { computed: true, kind: "array" }) public localSecondaryIndex!: | core.Array | core.ArrayOut; /** * (Required) The name of the DynamoDB table. */ @core.attr(String) public name!: string | core.StringOut; @core.attr(PointInTimeRecovery, { computed: true, kind: "array" }) public pointInTimeRecovery!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public rangeKey!: string | core.StringOut; @core.attr(Number, { computed: true }) public readCapacity!: number | core.NumberOut; @core.attr(Replica, { computed: true, kind: "array" }) public replica!: core.Array | core.ArrayOut; @core.attr(ServerSideEncryption, { computed: true }) public serverSideEncryption?: ServerSideEncryption; @core.attr(String, { computed: true }) public streamArn!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public streamEnabled!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public streamLabel!: string | core.StringOut; @core.attr(String, { computed: true }) public streamViewType!: string | core.StringOut; @core.attr(String, { computed: true }) public tableClass!: string | core.StringOut; @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; @core.attr(Ttl, { computed: true, kind: "array" }) public ttl!: core.Array | core.ArrayOut; @core.attr(Number, { computed: true }) public writeCapacity!: number | core.NumberOut; constructor(name: string, args?: DsTableArgs) { super(name, "aws_dynamodb_table", args); } public override getNamespace(): string { return "aws_dynamodb"; } }