import * as core from "@terrascript/core"; export interface EipArgs extends core.ResourceArgs { /** * (Optional) IP address from an EC2 BYOIP pool. This option is only available for VPC EIPs. */ address?: string | core.StringOut; /** * (Optional) User-specified primary or secondary private IP address to associate with the Elastic IP a * ddress. If no private IP address is specified, the Elastic IP address is associated with the primary * private IP address. */ associateWithPrivateIp?: string | core.StringOut; /** * (Optional) ID of a customer-owned address pool. For more on customer owned IP addressed check out [ * Customer-owned IP addresses guide](https://docs.aws.amazon.com/outposts/latest/userguide/outposts-ne * tworking-components.html#ip-addressing). */ customerOwnedIpv4Pool?: string | core.StringOut; /** * (Optional) EC2 instance ID. */ instance?: string | core.StringOut; /** * (Optional) Location from which the IP address is advertised. Use this parameter to limit the address * to this location. */ networkBorderGroup?: string | core.StringOut; /** * (Optional) Network interface ID to associate with. */ networkInterface?: string | core.StringOut; /** * (Optional) EC2 IPv4 address pool identifier or `amazon`. This option is only available for VPC EIPs. */ publicIpv4Pool?: string | core.StringOut; /** * (Optional) Map of tags to assign to the resource. Tags can only be applied to EIPs in a VPC. If conf * igured with a provider [`default_tags` configuration block](https://registry.terraform.io/providers/ * hashicorp/aws/latest/docs#default_tags-configuration-block) present, tags with matching keys will ov * erwrite those defined at the provider-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; /** * (Optional) Boolean if the EIP is in a VPC or not. */ vpc?: boolean | core.BooleanOut; } export class Eip extends core.Resource { /** * (Optional) IP address from an EC2 BYOIP pool. This option is only available for VPC EIPs. */ @core.attr(String) public address?: string | core.StringOut; /** * ID that AWS assigns to represent the allocation of the Elastic IP address for use with instances in * a VPC. */ @core.attr(String, { computed: true }) public allocationId!: string | core.StringOut; /** * (Optional) User-specified primary or secondary private IP address to associate with the Elastic IP a * ddress. If no private IP address is specified, the Elastic IP address is associated with the primary * private IP address. */ @core.attr(String) public associateWithPrivateIp?: string | core.StringOut; /** * ID representing the association of the address with an instance in a VPC. */ @core.attr(String, { computed: true }) public associationId!: string | core.StringOut; /** * Carrier IP address. */ @core.attr(String, { computed: true }) public carrierIp!: string | core.StringOut; /** * Customer owned IP. */ @core.attr(String, { computed: true }) public customerOwnedIp!: string | core.StringOut; /** * (Optional) ID of a customer-owned address pool. For more on customer owned IP addressed check out [ * Customer-owned IP addresses guide](https://docs.aws.amazon.com/outposts/latest/userguide/outposts-ne * tworking-components.html#ip-addressing). */ @core.attr(String) public customerOwnedIpv4Pool?: string | core.StringOut; /** * Indicates if this EIP is for use in VPC (`vpc`) or EC2 Classic (`standard`). */ @core.attr(String, { computed: true }) public domain!: string | core.StringOut; /** * Contains the EIP allocation ID. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) EC2 instance ID. */ @core.attr(String, { computed: true }) public instance?: string | core.StringOut; /** * (Optional) Location from which the IP address is advertised. Use this parameter to limit the address * to this location. */ @core.attr(String, { computed: true }) public networkBorderGroup?: string | core.StringOut; /** * (Optional) Network interface ID to associate with. */ @core.attr(String, { computed: true }) public networkInterface?: string | core.StringOut; /** * The Private DNS associated with the Elastic IP address (if in VPC). */ @core.attr(String, { computed: true }) public privateDns!: string | core.StringOut; /** * Contains the private IP address (if in VPC). */ @core.attr(String, { computed: true }) public privateIp!: string | core.StringOut; /** * Public DNS associated with the Elastic IP address. */ @core.attr(String, { computed: true }) public publicDns!: string | core.StringOut; /** * Contains the public IP address. */ @core.attr(String, { computed: true }) public publicIp!: string | core.StringOut; /** * (Optional) EC2 IPv4 address pool identifier or `amazon`. This option is only available for VPC EIPs. */ @core.attr(String, { computed: true }) public publicIpv4Pool?: string | core.StringOut; /** * (Optional) Map of tags to assign to the resource. Tags can only be applied to EIPs in a VPC. If conf * igured with a provider [`default_tags` configuration block](https://registry.terraform.io/providers/ * hashicorp/aws/latest/docs#default_tags-configuration-block) present, tags with matching keys will ov * erwrite those defined at the provider-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; /** * (Optional) Boolean if the EIP is in a VPC or not. */ @core.attr(Boolean, { computed: true }) public vpc?: boolean | core.BooleanOut; constructor(name: string, args?: EipArgs) { super(name, "aws_eip", args); } public override getNamespace(): string { return "aws_ec2"; } }