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 DnsEntryArgs extends core.SchemaArgs { dnsName: string | core.StringOut; hostedZoneId: string | core.StringOut; } export class DnsEntry extends core.Schema { @core.attr(String, { computed: true }) public dnsName!: string | core.StringOut; @core.attr(String, { computed: true }) public hostedZoneId!: string | core.StringOut; } export interface DnsOptionsArgs extends core.SchemaArgs { dnsRecordIpType: string | core.StringOut; } export class DnsOptions extends core.Schema { @core.attr(String, { computed: true }) public dnsRecordIpType!: string | core.StringOut; } export interface DsEndpointArgs { /** * (Optional) Custom filter block as described below. */ filter?: core.Array | core.ArrayOut; /** * (Optional) The ID of the specific VPC Endpoint to retrieve. */ id?: string | core.StringOut; /** * (Optional) The service name of the specific VPC Endpoint to retrieve. For AWS services the service n * ame is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an * exception to this rule, the service name is in the form `aws.sagemaker..notebook`). */ serviceName?: string | core.StringOut; /** * (Optional) The state of the specific VPC Endpoint to retrieve. */ state?: string | core.StringOut; /** * (Optional) A map of tags, each pair of which must exactly match */ tags?: core.Map | core.MapOut; /** * (Optional) The ID of the VPC in which the specific VPC Endpoint is used. */ vpcId?: string | core.StringOut; } export class DsEndpoint extends core.Data { /** * The Amazon Resource Name (ARN) of the VPC endpoint. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * The list of CIDR blocks for the exposed AWS service. Applicable for endpoints of type `Gateway`. */ @core.attr(String, { computed: true, kind: "array" }) public cidrBlocks!: core.Array | core.ArrayOut; /** * The DNS entries for the VPC Endpoint. Applicable for endpoints of type `Interface`. DNS blocks are d * ocumented below. */ @core.attr(DnsEntry, { computed: true, kind: "array" }) public dnsEntry!: core.Array | core.ArrayOut; @core.attr(DnsOptions, { computed: true, kind: "array" }) public dnsOptions!: core.Array | core.ArrayOut; /** * (Optional) Custom filter block as described below. */ @core.attr(Filter, { kind: "array" }) public filter?: core.Array | core.ArrayOut; /** * (Optional) The ID of the specific VPC Endpoint to retrieve. */ @core.attr(String, { computed: true }) public id?: string | core.StringOut; @core.attr(String, { computed: true }) public ipAddressType!: string | core.StringOut; /** * One or more network interfaces for the VPC Endpoint. Applicable for endpoints of type `Interface`. */ @core.attr(String, { computed: true, kind: "array" }) public networkInterfaceIds!: | core.Array | core.ArrayOut; /** * The ID of the AWS account that owns the VPC endpoint. */ @core.attr(String, { computed: true }) public ownerId!: string | core.StringOut; /** * The policy document associated with the VPC Endpoint. Applicable for endpoints of type `Gateway`. */ @core.attr(String, { computed: true }) public policy!: string | core.StringOut; /** * The prefix list ID of the exposed AWS service. Applicable for endpoints of type `Gateway`. */ @core.attr(String, { computed: true }) public prefixListId!: string | core.StringOut; /** * Whether or not the VPC is associated with a private hosted zone - `true` or `false`. Applicable for * endpoints of type `Interface`. */ @core.attr(Boolean, { computed: true }) public privateDnsEnabled!: boolean | core.BooleanOut; /** * Whether or not the VPC Endpoint is being managed by its service - `true` or `false`. */ @core.attr(Boolean, { computed: true }) public requesterManaged!: boolean | core.BooleanOut; /** * One or more route tables associated with the VPC Endpoint. Applicable for endpoints of type `Gateway * . */ @core.attr(String, { computed: true, kind: "array" }) public routeTableIds!: core.Array | core.ArrayOut; /** * One or more security groups associated with the network interfaces. Applicable for endpoints of type * Interface`. */ @core.attr(String, { computed: true, kind: "array" }) public securityGroupIds!: core.Array | core.ArrayOut; /** * (Optional) The service name of the specific VPC Endpoint to retrieve. For AWS services the service n * ame is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an * exception to this rule, the service name is in the form `aws.sagemaker..notebook`). */ @core.attr(String, { computed: true }) public serviceName?: string | core.StringOut; /** * (Optional) The state of the specific VPC Endpoint to retrieve. */ @core.attr(String, { computed: true }) public state?: string | core.StringOut; /** * One or more subnets in which the VPC Endpoint is located. Applicable for endpoints of type `Interfac * e`. */ @core.attr(String, { computed: true, kind: "array" }) public subnetIds!: core.Array | core.ArrayOut; /** * (Optional) A map of tags, each pair of which must exactly match */ @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; /** * The VPC Endpoint type, `Gateway` or `Interface`. */ @core.attr(String, { computed: true }) public vpcEndpointType!: string | core.StringOut; /** * (Optional) The ID of the VPC in which the specific VPC Endpoint is used. */ @core.attr(String, { computed: true }) public vpcId?: string | core.StringOut; constructor(name: string, args?: DsEndpointArgs) { super(name, "aws_vpc_endpoint", args); } public override getNamespace(): string { return "aws_vpc"; } }