Class Eip


  • public class Eip
    extends com.pulumi.resources.CustomResource
    Provides 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
     
     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 lb = new Eip("lb", EipArgs.builder()
                 .instance(web.id())
                 .domain("vpc")
                 .build());
     
         }
     }
     
     
    ### Multiple EIPs associated with a single network interface
     
     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());
     
         }
     }
     
     
    ### 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.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 BYOIP pool
     
     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 byoip_ip = new Eip("byoip-ip", EipArgs.builder()
                 .domain("vpc")
                 .publicIpv4Pool("ipv4pool-ec2-012345")
                 .build());
     
         }
     }
     
     
    ### Allocating EIP from the IPAM Pool
     
     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());
     
         }
     }
     
     
    ## 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 ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Constructor Summary

      Constructors 
      Constructor Description
      Eip​(java.lang.String name)  
      Eip​(java.lang.String name, EipArgs args)  
      Eip​(java.lang.String name, EipArgs args, com.pulumi.resources.CustomResourceOptions options)  
    • 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 Eip get​(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()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, id, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn, pulumiChildResources, pulumiResourceName, pulumiResourceType, urn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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.