Package com.pulumi.aws.ec2
Class Eip
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.ec2.Eip
-
public class Eip extends com.pulumi.resources.CustomResourceProvides an Elastic IP resource. > **Note:** EIP may require IGW to exist prior to association. Use `dependsOn` to set an explicit dependency on the IGW. > **Note:** Do not use `networkInterface` to associate the EIP to `aws.lb.LoadBalancer` or `aws.ec2.NatGateway` resources. Instead use the `allocationId` available in those resources to allow AWS to manage the association, otherwise you will see `AuthFailure` errors. ## Example Usage ### Single EIP associated with an instance
### Multiple EIPs associated with a single network interfacepackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.ec2.Eip; import com.pulumi.aws.ec2.EipArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var lb = new Eip("lb", EipArgs.builder() .instance(web.id()) .domain("vpc") .build()); } }
### Attaching an EIP to an Instance with a pre-assigned private IP (VPC Only)package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.ec2.NetworkInterface; import com.pulumi.aws.ec2.NetworkInterfaceArgs; import com.pulumi.aws.ec2.Eip; import com.pulumi.aws.ec2.EipArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var multi_ip = new NetworkInterface("multi-ip", NetworkInterfaceArgs.builder() .subnetId(main.id()) .privateIps( "10.0.0.10", "10.0.0.11") .build()); var one = new Eip("one", EipArgs.builder() .domain("vpc") .networkInterface(multi_ip.id()) .associateWithPrivateIp("10.0.0.10") .build()); var two = new Eip("two", EipArgs.builder() .domain("vpc") .networkInterface(multi_ip.id()) .associateWithPrivateIp("10.0.0.11") .build()); } }
### Allocating EIP from the BYOIP poolpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.ec2.Vpc; import com.pulumi.aws.ec2.VpcArgs; import com.pulumi.aws.ec2.InternetGateway; import com.pulumi.aws.ec2.InternetGatewayArgs; import com.pulumi.aws.ec2.Subnet; import com.pulumi.aws.ec2.SubnetArgs; import com.pulumi.aws.ec2.Instance; import com.pulumi.aws.ec2.InstanceArgs; import com.pulumi.aws.ec2.Eip; import com.pulumi.aws.ec2.EipArgs; import com.pulumi.resources.CustomResourceOptions; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var default_ = new Vpc("default", VpcArgs.builder() .cidrBlock("10.0.0.0/16") .enableDnsHostnames(true) .build()); var gw = new InternetGateway("gw", InternetGatewayArgs.builder() .vpcId(default_.id()) .build()); var myTestSubnet = new Subnet("myTestSubnet", SubnetArgs.builder() .vpcId(default_.id()) .cidrBlock("10.0.0.0/24") .mapPublicIpOnLaunch(true) .build(), CustomResourceOptions.builder() .dependsOn(gw) .build()); var foo = new Instance("foo", InstanceArgs.builder() .ami("ami-5189a661") .instanceType("t2.micro") .privateIp("10.0.0.12") .subnetId(myTestSubnet.id()) .build()); var bar = new Eip("bar", EipArgs.builder() .domain("vpc") .instance(foo.id()) .associateWithPrivateIp("10.0.0.12") .build(), CustomResourceOptions.builder() .dependsOn(gw) .build()); } }
### Allocating EIP from the IPAM Poolpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.ec2.Eip; import com.pulumi.aws.ec2.EipArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var byoip_ip = new Eip("byoip-ip", EipArgs.builder() .domain("vpc") .publicIpv4Pool("ipv4pool-ec2-012345") .build()); } }
## Import ### Identity Schema #### Required * `id` (String) Allocation ID that identifies the Elastic IP. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import EIPs in a VPC using their Allocation ID. For example: ```sh $ pulumi import aws:ec2/eip:Eip example eipalloc-00a10e96 ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.ec2.Eip; import com.pulumi.aws.ec2.EipArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var ipam_ip = new Eip("ipam-ip", EipArgs.builder() .domain("vpc") .ipamPoolId("ipam-pool-07ccc86aa41bef7ce") .build()); } }
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.util.Optional<java.lang.String>>address()com.pulumi.core.Output<java.lang.String>allocationId()com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.util.Optional<java.lang.String>>associateWithPrivateIp()com.pulumi.core.Output<java.lang.String>associationId()com.pulumi.core.Output<java.lang.String>carrierIp()com.pulumi.core.Output<java.lang.String>customerOwnedIp()com.pulumi.core.Output<java.util.Optional<java.lang.String>>customerOwnedIpv4Pool()com.pulumi.core.Output<java.lang.String>domain()static Eipget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, EipState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>instance()com.pulumi.core.Output<java.lang.String>ipamPoolId()com.pulumi.core.Output<java.lang.String>networkBorderGroup()com.pulumi.core.Output<java.lang.String>networkInterface()com.pulumi.core.Output<java.lang.String>privateDns()com.pulumi.core.Output<java.lang.String>privateIp()com.pulumi.core.Output<java.lang.String>ptrRecord()com.pulumi.core.Output<java.lang.String>publicDns()com.pulumi.core.Output<java.lang.String>publicIp()com.pulumi.core.Output<java.lang.String>publicIpv4Pool()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>tags()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>tagsAll()
-
-
-
Constructor Detail
-
Eip
public Eip(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
Eip
public Eip(java.lang.String name, @Nullable EipArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
Eip
public Eip(java.lang.String name, @Nullable EipArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
address
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> address()
- Returns:
- IP address from an EC2 BYOIP pool. This option is only available for VPC EIPs.
-
allocationId
public com.pulumi.core.Output<java.lang.String> allocationId()
- Returns:
- ID that AWS assigns to represent the allocation of the Elastic IP address for use with instances in a VPC.
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
-
associateWithPrivateIp
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> associateWithPrivateIp()
- Returns:
- User-specified primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.
-
associationId
public com.pulumi.core.Output<java.lang.String> associationId()
- Returns:
- ID representing the association of the address with an instance in a VPC.
-
carrierIp
public com.pulumi.core.Output<java.lang.String> carrierIp()
- Returns:
- Carrier IP address.
-
customerOwnedIp
public com.pulumi.core.Output<java.lang.String> customerOwnedIp()
- Returns:
- Customer owned IP.
-
customerOwnedIpv4Pool
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> customerOwnedIpv4Pool()
- Returns:
- 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-networking-components.html#ip-addressing).
-
domain
public com.pulumi.core.Output<java.lang.String> domain()
- Returns:
- Indicates if this EIP is for use in VPC (`vpc`).
-
instance
public com.pulumi.core.Output<java.lang.String> instance()
- Returns:
- EC2 instance ID.
-
ipamPoolId
public com.pulumi.core.Output<java.lang.String> ipamPoolId()
- Returns:
- The ID of an IPAM pool which has an Amazon-provided or BYOIP public IPv4 CIDR provisioned to it.
-
networkBorderGroup
public com.pulumi.core.Output<java.lang.String> networkBorderGroup()
- Returns:
- Location from which the IP address is advertised. Use this parameter to limit the address to this location.
-
networkInterface
public com.pulumi.core.Output<java.lang.String> networkInterface()
- Returns:
- Network interface ID to associate with.
-
privateDns
public com.pulumi.core.Output<java.lang.String> privateDns()
- Returns:
- The Private DNS associated with the Elastic IP address (if in VPC).
-
privateIp
public com.pulumi.core.Output<java.lang.String> privateIp()
- Returns:
- Contains the private IP address (if in VPC).
-
ptrRecord
public com.pulumi.core.Output<java.lang.String> ptrRecord()
- Returns:
- The DNS pointer (PTR) record for the IP address.
-
publicDns
public com.pulumi.core.Output<java.lang.String> publicDns()
- Returns:
- Public DNS associated with the Elastic IP address.
-
publicIp
public com.pulumi.core.Output<java.lang.String> publicIp()
- Returns:
- Contains the public IP address.
-
publicIpv4Pool
public com.pulumi.core.Output<java.lang.String> publicIpv4Pool()
- Returns:
- EC2 IPv4 address pool identifier or `amazon`. This option is only available for VPC EIPs.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- Map of tags to assign to the resource. Tags can only be applied to EIPs in a VPC. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. > **NOTE:** You can specify either the `instance` ID or the `networkInterface` ID, but not both. Including both will **not** return an error from the AWS API, but will have undefined behavior. See the relevant [AssociateAddress API Call](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateAddress.html) for more information. > **NOTE:** Specifying both `publicIpv4Pool` and `address` won't cause an error, however, only `address` will be used if both options are defined as the API only requires one of the two.
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
-
get
public static Eip get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable EipState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-