import * as core from "@terrascript/core"; export interface EngineVersionArgs extends core.SchemaArgs { effectiveEngineVersion: string | core.StringOut; selectedEngineVersion?: string | core.StringOut; } export class EngineVersion extends core.Schema { @core.attr(String, { computed: true }) public effectiveEngineVersion!: string | core.StringOut; @core.attr(String) public selectedEngineVersion?: 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 EncryptionConfigurationArgs extends core.SchemaArgs { encryptionOption?: string | core.StringOut; kmsKeyArn?: string | core.StringOut; } export class EncryptionConfiguration extends core.Schema { @core.attr(String) public encryptionOption?: string | core.StringOut; @core.attr(String) public kmsKeyArn?: string | core.StringOut; } export interface ResultConfigurationArgs extends core.SchemaArgs { aclConfiguration?: AclConfiguration; encryptionConfiguration?: EncryptionConfiguration; expectedBucketOwner?: string | core.StringOut; outputLocation?: string | core.StringOut; } export class ResultConfiguration extends core.Schema { @core.attr(AclConfiguration) public aclConfiguration?: AclConfiguration; @core.attr(EncryptionConfiguration) public encryptionConfiguration?: EncryptionConfiguration; @core.attr(String) public expectedBucketOwner?: string | core.StringOut; @core.attr(String) public outputLocation?: string | core.StringOut; } export interface ConfigurationArgs extends core.SchemaArgs { bytesScannedCutoffPerQuery?: number | core.NumberOut; enforceWorkgroupConfiguration?: boolean | core.BooleanOut; engineVersion?: EngineVersion; publishCloudwatchMetricsEnabled?: boolean | core.BooleanOut; requesterPaysEnabled?: boolean | core.BooleanOut; resultConfiguration?: ResultConfiguration; } export class Configuration extends core.Schema { @core.attr(Number) public bytesScannedCutoffPerQuery?: number | core.NumberOut; @core.attr(Boolean) public enforceWorkgroupConfiguration?: boolean | core.BooleanOut; @core.attr(EngineVersion) public engineVersion?: EngineVersion; @core.attr(Boolean) public publishCloudwatchMetricsEnabled?: boolean | core.BooleanOut; @core.attr(Boolean) public requesterPaysEnabled?: boolean | core.BooleanOut; @core.attr(ResultConfiguration) public resultConfiguration?: ResultConfiguration; } export interface WorkgroupArgs extends core.ResourceArgs { /** * (Optional) Configuration block with various settings for the workgroup. Documented below. */ configuration?: Configuration; /** * (Optional) Description of the workgroup. */ description?: string | core.StringOut; /** * (Optional) The option to delete the workgroup and its contents even if the workgroup contains any na * med queries. */ forceDestroy?: boolean | core.BooleanOut; /** * (Required) Name of the workgroup. */ name: string | core.StringOut; /** * (Optional) State of the workgroup. Valid values are `DISABLED` or `ENABLED`. Defaults to `ENABLED`. */ state?: string | core.StringOut; /** * (Optional) Key-value map of resource tags for the workgroup. If configured with a provider [`default * _tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#defaul * t_tags-configuration-block) present, tags with matching keys will overwrite those defined at the pro * vider-level. */ 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 Workgroup extends core.Resource { /** * Amazon Resource Name (ARN) of the workgroup */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) Configuration block with various settings for the workgroup. Documented below. */ @core.attr(Configuration) public configuration?: Configuration; /** * (Optional) Description of the workgroup. */ @core.attr(String) public description?: string | core.StringOut; /** * (Optional) The option to delete the workgroup and its contents even if the workgroup contains any na * med queries. */ @core.attr(Boolean) public forceDestroy?: boolean | core.BooleanOut; /** * The workgroup name */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Name of the workgroup. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) State of the workgroup. Valid values are `DISABLED` or `ENABLED`. Defaults to `ENABLED`. */ @core.attr(String) public state?: string | core.StringOut; /** * (Optional) Key-value map of resource tags for the workgroup. If configured with a provider [`default * _tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#defaul * t_tags-configuration-block) present, tags with matching keys will overwrite those defined at the pro * vider-level. */ @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?: WorkgroupArgs) { super(name, "aws_athena_workgroup", args); } public override getNamespace(): string { return "aws_athena"; } }