import * as core from "@terrascript/core"; export interface S3ConfigurationArgs extends core.SchemaArgs { bucketName?: string | core.StringOut; encryptionOption?: string | core.StringOut; kmsKeyId?: string | core.StringOut; objectKeyPrefix?: string | core.StringOut; } export class S3Configuration extends core.Schema { @core.attr(String) public bucketName?: string | core.StringOut; @core.attr(String) public encryptionOption?: string | core.StringOut; @core.attr(String) public kmsKeyId?: string | core.StringOut; @core.attr(String) public objectKeyPrefix?: string | core.StringOut; } export interface MagneticStoreRejectedDataLocationArgs extends core.SchemaArgs { s3Configuration?: S3Configuration; } export class MagneticStoreRejectedDataLocation extends core.Schema { @core.attr(S3Configuration) public s3Configuration?: S3Configuration; } export interface MagneticStoreWritePropertiesArgs extends core.SchemaArgs { enableMagneticStoreWrites?: boolean | core.BooleanOut; magneticStoreRejectedDataLocation?: MagneticStoreRejectedDataLocation; } export class MagneticStoreWriteProperties extends core.Schema { @core.attr(Boolean) public enableMagneticStoreWrites?: boolean | core.BooleanOut; @core.attr(MagneticStoreRejectedDataLocation) public magneticStoreRejectedDataLocation?: MagneticStoreRejectedDataLocation; } export interface RetentionPropertiesArgs extends core.SchemaArgs { magneticStoreRetentionPeriodInDays: number | core.NumberOut; memoryStoreRetentionPeriodInHours: number | core.NumberOut; } export class RetentionProperties extends core.Schema { @core.attr(Number) public magneticStoreRetentionPeriodInDays!: number | core.NumberOut; @core.attr(Number) public memoryStoreRetentionPeriodInHours!: number | core.NumberOut; } export interface TableArgs extends core.ResourceArgs { databaseName: string | core.StringOut; /** * (Optional) Contains properties to set on the table when enabling magnetic store writes. See [Magneti * c Store Write Properties](#magnetic-store-write-properties) below for more details. */ magneticStoreWriteProperties?: MagneticStoreWriteProperties; /** * (Optional) The retention duration for the memory store and magnetic store. See [Retention Properties * ](#retention-properties) below for more details. If not provided, `magnetic_store_retention_period_i * n_days` default to 73000 and `memory_store_retention_period_in_hours` defaults to 6. */ retentionProperties?: RetentionProperties; /** * (Required) The name of the Timestream table. */ tableName: string | core.StringOut; /** * (Optional) Map of tags to assign to this resource. If configured with a provider [`default_tags` con * figuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-con * figuration-block) present, tags with matching keys will overwrite those defined at the provider-leve * l. */ 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; } export class Table extends core.Resource { /** * The ARN that uniquely identifies this table. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String) public databaseName!: string | core.StringOut; /** * The `table_name` and `database_name` separated by a colon (`:`). */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Contains properties to set on the table when enabling magnetic store writes. See [Magneti * c Store Write Properties](#magnetic-store-write-properties) below for more details. */ @core.attr(MagneticStoreWriteProperties, { computed: true }) public magneticStoreWriteProperties?: MagneticStoreWriteProperties; /** * (Optional) The retention duration for the memory store and magnetic store. See [Retention Properties * ](#retention-properties) below for more details. If not provided, `magnetic_store_retention_period_i * n_days` default to 73000 and `memory_store_retention_period_in_hours` defaults to 6. */ @core.attr(RetentionProperties, { computed: true }) public retentionProperties?: RetentionProperties; /** * (Required) The name of the Timestream table. */ @core.attr(String) public tableName!: string | core.StringOut; /** * (Optional) Map of tags to assign to this resource. If configured with a provider [`default_tags` con * figuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-con * figuration-block) present, tags with matching keys will overwrite those defined at the provider-leve * l. */ @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; constructor(name: string, args?: TableArgs) { super(name, "aws_timestreamwrite_table", args); } public override getNamespace(): string { return "aws_timestreamwrite"; } }