import * as core from "@terrascript/core"; export interface DatabaseArgs extends core.ResourceArgs { databaseName: string | core.StringOut; /** * (Optional) The ARN (not Alias ARN) of the KMS key to be used to encrypt the data stored in the datab * ase. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS k * ey located in your account. Refer to [AWS managed KMS keys](https://docs.aws.amazon.com/kms/latest/d * eveloperguide/concepts.html#aws-managed-cmk) for more info. */ kmsKeyId?: 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 Database extends core.Resource { /** * The ARN that uniquely identifies this database. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String) public databaseName!: string | core.StringOut; /** * The name of the Timestream database. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The ARN (not Alias ARN) of the KMS key to be used to encrypt the data stored in the datab * ase. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS k * ey located in your account. Refer to [AWS managed KMS keys](https://docs.aws.amazon.com/kms/latest/d * eveloperguide/concepts.html#aws-managed-cmk) for more info. */ @core.attr(String, { computed: true }) public kmsKeyId?: string | core.StringOut; /** * The total number of tables found within the Timestream database. */ @core.attr(Number, { computed: true }) public tableCount!: number | core.NumberOut; /** * (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?: DatabaseArgs) { super(name, "aws_timestreamwrite_database", args); } public override getNamespace(): string { return "aws_timestreamwrite"; } }