import * as core from "@terrascript/core"; export interface VpcConfigArgs extends core.SchemaArgs { securityGroupIds?: core.Array | core.ArrayOut; subnetIds: core.Array | core.ArrayOut; } export class VpcConfig extends core.Schema { @core.attr(String, { kind: "array" }) public securityGroupIds?: core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public subnetIds!: core.Array | core.ArrayOut; } export interface IamArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; } export class Iam extends core.Schema { @core.attr(Boolean) public enabled!: boolean | core.BooleanOut; } export interface SaslArgs extends core.SchemaArgs { iam: Iam; } export class Sasl extends core.Schema { @core.attr(Iam) public iam!: Iam; } export interface ClientAuthenticationArgs extends core.SchemaArgs { sasl: Sasl; } export class ClientAuthentication extends core.Schema { @core.attr(Sasl) public sasl!: Sasl; } export interface MskServerlessClusterArgs extends core.ResourceArgs { /** * (Required) Specifies client authentication information for the serverless cluster. See below. */ clientAuthentication: ClientAuthentication; /** * (Required) The name of the serverless cluster. */ clusterName: string | core.StringOut; /** * (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) VPC configuration information. See below. */ vpcConfig: core.Array | core.ArrayOut; } export class MskServerlessCluster extends core.Resource { /** * The ARN of the serverless cluster. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Required) Specifies client authentication information for the serverless cluster. See below. */ @core.attr(ClientAuthentication) public clientAuthentication!: ClientAuthentication; /** * (Required) The name of the serverless cluster. */ @core.attr(String) public clusterName!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (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; /** * (Required) VPC configuration information. See below. */ @core.attr(VpcConfig, { kind: "array" }) public vpcConfig!: core.Array | core.ArrayOut; constructor(name: string, args?: MskServerlessClusterArgs) { super(name, "aws_msk_serverless_cluster", args); } public override getNamespace(): string { return "aws_managed_streaming_for_kafka"; } }