import * as core from "@terrascript/core"; export interface EncryptionConfigurationArgs extends core.SchemaArgs { encryptionOption: string | core.StringOut; kmsKey?: string | core.StringOut; } export class EncryptionConfiguration extends core.Schema { @core.attr(String) public encryptionOption!: string | core.StringOut; @core.attr(String) public kmsKey?: string | core.StringOut; } export interface AclConfigurationArgs extends core.SchemaArgs { s3AclOption: string | core.StringOut; } export class AclConfiguration extends core.Schema { @core.attr(String) public s3AclOption!: string | core.StringOut; } export interface DatabaseArgs extends core.ResourceArgs { /** * (Optional) Indicates that an Amazon S3 canned ACL should be set to control ownership of stored query * results. See [ACL Configuration](#acl-configuration) below. */ aclConfiguration?: AclConfiguration; /** * (Required) Name of S3 bucket to save the results of the query execution. */ bucket?: string | core.StringOut; /** * (Optional) Description of the database. */ comment?: string | core.StringOut; /** * (Optional) The encryption key block AWS Athena uses to decrypt the data in S3, such as an AWS Key Ma * nagement Service (AWS KMS) key. See [Encryption Configuration](#encryption-configuration) below. */ encryptionConfiguration?: EncryptionConfiguration; /** * (Optional) The AWS account ID that you expect to be the owner of the Amazon S3 bucket. */ expectedBucketOwner?: string | core.StringOut; /** * (Optional, Default: false) A boolean that indicates all tables should be deleted from the database s * o that the database can be destroyed without error. The tables are *not* recoverable. */ forceDestroy?: boolean | core.BooleanOut; /** * (Required) Name of the database to create. */ name: string | core.StringOut; /** * (Optional) A key-value map of custom metadata properties for the database definition. */ properties?: core.Map | core.MapOut; } export class Database extends core.Resource { /** * (Optional) Indicates that an Amazon S3 canned ACL should be set to control ownership of stored query * results. See [ACL Configuration](#acl-configuration) below. */ @core.attr(AclConfiguration) public aclConfiguration?: AclConfiguration; /** * (Required) Name of S3 bucket to save the results of the query execution. */ @core.attr(String) public bucket?: string | core.StringOut; /** * (Optional) Description of the database. */ @core.attr(String) public comment?: string | core.StringOut; /** * (Optional) The encryption key block AWS Athena uses to decrypt the data in S3, such as an AWS Key Ma * nagement Service (AWS KMS) key. See [Encryption Configuration](#encryption-configuration) below. */ @core.attr(EncryptionConfiguration) public encryptionConfiguration?: EncryptionConfiguration; /** * (Optional) The AWS account ID that you expect to be the owner of the Amazon S3 bucket. */ @core.attr(String) public expectedBucketOwner?: string | core.StringOut; /** * (Optional, Default: false) A boolean that indicates all tables should be deleted from the database s * o that the database can be destroyed without error. The tables are *not* recoverable. */ @core.attr(Boolean) public forceDestroy?: boolean | core.BooleanOut; /** * The database name */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Name of the database to create. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) A key-value map of custom metadata properties for the database definition. */ @core.attr(String, { kind: "map" }) public properties?: core.Map | core.MapOut; constructor(name: string, args?: DatabaseArgs) { super(name, "aws_athena_database", args); } public override getNamespace(): string { return "aws_athena"; } }