import * as core from "@terrascript/core"; export interface FilterArgs extends core.SchemaArgs { name: string | core.StringOut; values: core.Array | core.ArrayOut; } export class Filter extends core.Schema { @core.attr(String) public name!: string | core.StringOut; @core.attr(String, { kind: "array" }) public values!: core.Array | core.ArrayOut; } export interface DsSecurityGroupsArgs { /** * (Optional) One or more name/value pairs to use as filters. There are several valid keys, for a full * reference, check out [describe-security-groups in the AWS CLI reference][1]. */ filter?: core.Array | core.ArrayOut; /** * (Optional) A map of tags, each pair of which must exactly match for desired security groups. */ tags?: core.Map | core.MapOut; } export class DsSecurityGroups extends core.Data { /** * ARNs of the matched security groups. */ @core.attr(String, { computed: true, kind: "array" }) public arns!: core.Array | core.ArrayOut; /** * (Optional) One or more name/value pairs to use as filters. There are several valid keys, for a full * reference, check out [describe-security-groups in the AWS CLI reference][1]. */ @core.attr(Filter, { kind: "array" }) public filter?: core.Array | core.ArrayOut; /** * AWS Region. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * IDs of the matches security groups. */ @core.attr(String, { computed: true, kind: "array" }) public ids!: core.Array | core.ArrayOut; /** * (Optional) A map of tags, each pair of which must exactly match for desired security groups. */ @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; /** * The VPC IDs of the matched security groups. The data source's tag or filter *will span VPCs* unless * the `vpc-id` filter is also used. */ @core.attr(String, { computed: true, kind: "array" }) public vpcIds!: core.Array | core.ArrayOut; constructor(name: string, args?: DsSecurityGroupsArgs) { super(name, "aws_security_groups", args); } public override getNamespace(): string { return "aws_vpc"; } }