import * as core from "@terrascript/core"; export interface TtlArgs extends core.SchemaArgs { status: string | core.StringOut; } export class Ttl extends core.Schema { @core.attr(String) public status!: string | core.StringOut; } export interface CommentArgs extends core.SchemaArgs { message?: string | core.StringOut; } export class Comment extends core.Schema { @core.attr(String, { computed: true }) public message?: string | core.StringOut; } export interface CapacitySpecificationArgs extends core.SchemaArgs { readCapacityUnits?: number | core.NumberOut; throughputMode?: string | core.StringOut; writeCapacityUnits?: number | core.NumberOut; } export class CapacitySpecification extends core.Schema { @core.attr(Number) public readCapacityUnits?: number | core.NumberOut; @core.attr(String, { computed: true }) public throughputMode?: string | core.StringOut; @core.attr(Number) public writeCapacityUnits?: number | core.NumberOut; } export interface ClusteringKeyArgs extends core.SchemaArgs { name: string | core.StringOut; orderBy: string | core.StringOut; } export class ClusteringKey extends core.Schema { @core.attr(String) public name!: string | core.StringOut; @core.attr(String) public orderBy!: string | core.StringOut; } export interface ColumnArgs extends core.SchemaArgs { name: string | core.StringOut; type: string | core.StringOut; } export class Column extends core.Schema { @core.attr(String) public name!: string | core.StringOut; @core.attr(String) public type!: string | core.StringOut; } export interface PartitionKeyArgs extends core.SchemaArgs { name: string | core.StringOut; } export class PartitionKey extends core.Schema { @core.attr(String) public name!: string | core.StringOut; } export interface StaticColumnArgs extends core.SchemaArgs { name: string | core.StringOut; } export class StaticColumn extends core.Schema { @core.attr(String) public name!: string | core.StringOut; } export interface SchemaDefinitionArgs extends core.SchemaArgs { clusteringKey?: core.Array | core.ArrayOut; column: core.Array | core.ArrayOut; partitionKey: core.Array | core.ArrayOut; staticColumn?: core.Array | core.ArrayOut; } export class SchemaDefinition extends core.Schema { @core.attr(ClusteringKey, { kind: "array" }) public clusteringKey?: | core.Array | core.ArrayOut; @core.attr(Column, { kind: "array" }) public column!: core.Array | core.ArrayOut; @core.attr(PartitionKey, { kind: "array" }) public partitionKey!: core.Array | core.ArrayOut; @core.attr(StaticColumn, { kind: "array" }) public staticColumn?: core.Array | core.ArrayOut; } export interface PointInTimeRecoveryArgs extends core.SchemaArgs { status?: string | core.StringOut; } export class PointInTimeRecovery extends core.Schema { @core.attr(String, { computed: true }) public status?: string | core.StringOut; } export interface EncryptionSpecificationArgs extends core.SchemaArgs { kmsKeyIdentifier?: string | core.StringOut; type?: string | core.StringOut; } export class EncryptionSpecification extends core.Schema { @core.attr(String) public kmsKeyIdentifier?: string | core.StringOut; @core.attr(String, { computed: true }) public type?: string | core.StringOut; } export interface TableArgs extends core.ResourceArgs { /** * (Optional) Specifies the read/write throughput capacity mode for the table. */ capacitySpecification?: CapacitySpecification; /** * (Optional) A description of the table. */ comment?: Comment; /** * (Optional) The default Time to Live setting in seconds for the table. More information can be found * in the [Developer Guide](https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html * #ttl-howitworks_default_ttl). */ defaultTimeToLive?: number | core.NumberOut; /** * (Optional) Specifies how the encryption key for encryption at rest is managed for the table. More in * formation can be found in the [Developer Guide](https://docs.aws.amazon.com/keyspaces/latest/devguid * e/EncryptionAtRest.html). */ encryptionSpecification?: EncryptionSpecification; /** * (Required) The name of the keyspace that the table is going to be created in. */ keyspaceName: string | core.StringOut; /** * (Optional) Specifies if point-in-time recovery is enabled or disabled for the table. More informatio * n can be found in the [Developer Guide](https://docs.aws.amazon.com/keyspaces/latest/devguide/PointI * nTimeRecovery.html). */ pointInTimeRecovery?: PointInTimeRecovery; /** * (Optional) Describes the schema of the table. */ schemaDefinition: SchemaDefinition; /** * (Required) The name of the table. */ tableName: string | core.StringOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional) Enables Time to Live custom settings for the table. More information can be found in the * [Developer Guide](https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL.html). */ ttl?: Ttl; } export class Table extends core.Resource { /** * The ARN of the table. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) Specifies the read/write throughput capacity mode for the table. */ @core.attr(CapacitySpecification, { computed: true }) public capacitySpecification?: CapacitySpecification; /** * (Optional) A description of the table. */ @core.attr(Comment, { computed: true }) public comment?: Comment; /** * (Optional) The default Time to Live setting in seconds for the table. More information can be found * in the [Developer Guide](https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html * #ttl-howitworks_default_ttl). */ @core.attr(Number) public defaultTimeToLive?: number | core.NumberOut; /** * (Optional) Specifies how the encryption key for encryption at rest is managed for the table. More in * formation can be found in the [Developer Guide](https://docs.aws.amazon.com/keyspaces/latest/devguid * e/EncryptionAtRest.html). */ @core.attr(EncryptionSpecification, { computed: true }) public encryptionSpecification?: EncryptionSpecification; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) The name of the keyspace that the table is going to be created in. */ @core.attr(String) public keyspaceName!: string | core.StringOut; /** * (Optional) Specifies if point-in-time recovery is enabled or disabled for the table. More informatio * n can be found in the [Developer Guide](https://docs.aws.amazon.com/keyspaces/latest/devguide/PointI * nTimeRecovery.html). */ @core.attr(PointInTimeRecovery, { computed: true }) public pointInTimeRecovery?: PointInTimeRecovery; /** * (Optional) Describes the schema of the table. */ @core.attr(SchemaDefinition) public schemaDefinition!: SchemaDefinition; /** * (Required) The name of the table. */ @core.attr(String) public tableName!: string | core.StringOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Optional) Enables Time to Live custom settings for the table. More information can be found in the * [Developer Guide](https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL.html). */ @core.attr(Ttl) public ttl?: Ttl; constructor(name: string, args?: TableArgs) { super(name, "aws_keyspaces_table", args); } public override getNamespace(): string { return "aws_keyspaces"; } }