import * as core from "@terrascript/core"; export interface ConfigParameterArgs extends core.SchemaArgs { parameterKey: string | core.StringOut; parameterValue: string | core.StringOut; } export class ConfigParameter extends core.Schema { @core.attr(String) public parameterKey!: string | core.StringOut; @core.attr(String) public parameterValue!: string | core.StringOut; } export interface WorkgroupArgs extends core.ResourceArgs { /** * (Optional) The base data warehouse capacity of the workgroup in Redshift Processing Units (RPUs). */ baseCapacity?: number | core.NumberOut; /** * (Optional) An array of parameters to set for more control over a serverless database. See `Config Pa * rameter` below. */ configParameter?: | core.Array | core.ArrayOut; /** * (Optional) The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, * which forces Amazon Redshift Serverless to route traffic through your VPC instead of over the inter * net. */ enhancedVpcRouting?: boolean | core.BooleanOut; namespaceName: string | core.StringOut; /** * (Optional) A value that specifies whether the workgroup can be accessed from a public network. */ publiclyAccessible?: boolean | core.BooleanOut; /** * (Optional) An array of security group IDs to associate with the workgroup. */ securityGroupIds?: core.Array | core.ArrayOut; /** * (Optional) An array of VPC subnet IDs to associate with the workgroup. */ subnetIds?: core.Array | core.ArrayOut; /** * (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; /** * (Required) The name of the workgroup. */ workgroupName: string | core.StringOut; } export class Workgroup extends core.Resource { /** * Amazon Resource Name (ARN) of the Redshift Serverless Workgroup. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) The base data warehouse capacity of the workgroup in Redshift Processing Units (RPUs). */ @core.attr(Number, { computed: true }) public baseCapacity?: number | core.NumberOut; /** * (Optional) An array of parameters to set for more control over a serverless database. See `Config Pa * rameter` below. */ @core.attr(ConfigParameter, { computed: true, kind: "array" }) public configParameter?: | core.Array | core.ArrayOut; /** * (Optional) The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, * which forces Amazon Redshift Serverless to route traffic through your VPC instead of over the inter * net. */ @core.attr(Boolean) public enhancedVpcRouting?: boolean | core.BooleanOut; /** * The Redshift Workgroup Name. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String) public namespaceName!: string | core.StringOut; /** * (Optional) A value that specifies whether the workgroup can be accessed from a public network. */ @core.attr(Boolean) public publiclyAccessible?: boolean | core.BooleanOut; /** * (Optional) An array of security group IDs to associate with the workgroup. */ @core.attr(String, { computed: true, kind: "array" }) public securityGroupIds?: core.Array | core.ArrayOut; /** * (Optional) An array of VPC subnet IDs to associate with the workgroup. */ @core.attr(String, { computed: true, kind: "array" }) public subnetIds?: core.Array | core.ArrayOut; /** * (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; /** * The Redshift Workgroup ID. */ @core.attr(String, { computed: true }) public workgroupId!: string | core.StringOut; /** * (Required) The name of the workgroup. */ @core.attr(String) public workgroupName!: string | core.StringOut; constructor(name: string, args?: WorkgroupArgs) { super(name, "aws_redshiftserverless_workgroup", args); } public override getNamespace(): string { return "aws_redshiftserverless"; } }