Class VpcPeeringConnectionAccepter


  • public class VpcPeeringConnectionAccepter
    extends com.pulumi.resources.CustomResource
    Provides a resource to manage the accepter's side of a VPC Peering Connection. When a cross-account (requester's AWS account differs from the accepter's AWS account) or an inter-region VPC Peering Connection is created, a VPC Peering Connection resource is automatically created in the accepter's account. The requester can use the `aws.ec2.VpcPeeringConnection` resource to manage its side of the connection and the accepter can use the `aws.ec2.VpcPeeringConnectionAccepter` resource to "adopt" its side of the connection into management. > **Note:** AWS allows a cross-account VPC Peering Connection to be deleted from either the requester's or accepter's side. However, this provider only allows the VPC Peering Connection to be deleted from the requester's side by removing the corresponding `aws.ec2.VpcPeeringConnection` resource from your configuration. Removing a `aws.ec2.VpcPeeringConnectionAccepter` resource from your configuration will remove it from your statefile and management, **but will not destroy the VPC Peering Connection.** ## Example Usage ### Cross-Account Peering Or Cross-Region Peering AWS Provider v6 (and below)
     
     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.AwsFunctions;
     import com.pulumi.aws.inputs.GetCallerIdentityArgs;
     import com.pulumi.aws.ec2.VpcPeeringConnection;
     import com.pulumi.aws.ec2.VpcPeeringConnectionArgs;
     import com.pulumi.aws.ec2.VpcPeeringConnectionAccepter;
     import com.pulumi.aws.ec2.VpcPeeringConnectionAccepterArgs;
     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 main = new Vpc("main", VpcArgs.builder()
                 .cidrBlock("10.0.0.0/16")
                 .build());
     
             var peerVpc = new Vpc("peerVpc", VpcArgs.builder()
                 .cidrBlock("10.1.0.0/16")
                 .build());
     
             final var peer = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder()
                 .build());
     
             // Requester's side of the connection.
             var peerVpcPeeringConnection = new VpcPeeringConnection("peerVpcPeeringConnection", VpcPeeringConnectionArgs.builder()
                 .vpcId(main.id())
                 .peerVpcId(peerVpc.id())
                 .peerOwnerId(peer.accountId())
                 .peerRegion("us-west-2")
                 .autoAccept(false)
                 .tags(Map.of("Side", "Requester"))
                 .build());
     
             // Accepter's side of the connection.
             var peerVpcPeeringConnectionAccepter = new VpcPeeringConnectionAccepter("peerVpcPeeringConnectionAccepter", VpcPeeringConnectionAccepterArgs.builder()
                 .vpcPeeringConnectionId(peerVpcPeeringConnection.id())
                 .autoAccept(true)
                 .tags(Map.of("Side", "Accepter"))
                 .build());
     
         }
     }
     
     
    ### Cross-Region Peering (Same Account) AWS Provider v7 (and above)
     
     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.VpcPeeringConnection;
     import com.pulumi.aws.ec2.VpcPeeringConnectionArgs;
     import com.pulumi.aws.ec2.VpcPeeringConnectionAccepter;
     import com.pulumi.aws.ec2.VpcPeeringConnectionAccepterArgs;
     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 main = new Vpc("main", VpcArgs.builder()
                 .cidrBlock("10.0.0.0/16")
                 .build());
     
             var peer = new Vpc("peer", VpcArgs.builder()
                 .region("us-west-2")
                 .cidrBlock("10.1.0.0/16")
                 .build());
     
             // Requester's side of the connection.
             var peerVpcPeeringConnection = new VpcPeeringConnection("peerVpcPeeringConnection", VpcPeeringConnectionArgs.builder()
                 .vpcId(main.id())
                 .peerVpcId(peer.id())
                 .peerRegion("us-west-2")
                 .autoAccept(false)
                 .tags(Map.of("Side", "Requester"))
                 .build());
     
             // Accepter's side of the connection.
             var peerVpcPeeringConnectionAccepter = new VpcPeeringConnectionAccepter("peerVpcPeeringConnectionAccepter", VpcPeeringConnectionAccepterArgs.builder()
                 .region("us-west-2")
                 .vpcPeeringConnectionId(peerVpcPeeringConnection.id())
                 .autoAccept(true)
                 .tags(Map.of("Side", "Accepter"))
                 .build());
     
         }
     }
     
     
    ## Import Using `pulumi import`, import VPC Peering Connection Accepters using the Peering Connection ID. For example: ```sh $ pulumi import aws:ec2/vpcPeeringConnectionAccepter:VpcPeeringConnectionAccepter example pcx-12345678 ``` Certain resource arguments, like `autoAccept`, do not have an EC2 API method for reading the information after peering connection creation. If the argument is set in the Pulumi program on an imported resource, Pulumi will always show a difference. To workaround this behavior, either omit the argument from the Pulumi program or use `ignoreChanges` to hide the difference. For example:
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.ec2.VpcPeeringConnectionAccepter;
     import com.pulumi.aws.ec2.VpcPeeringConnectionAccepterArgs;
     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 example = new VpcPeeringConnectionAccepter("example", VpcPeeringConnectionAccepterArgs.Empty, CustomResourceOptions.builder()
                 .ignoreChanges("autoAccept")
                 .build());
     
         }
     }
     
     
    • 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
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.pulumi.core.Output<VpcPeeringConnectionAccepterAccepter> accepter()  
      com.pulumi.core.Output<java.lang.String> acceptStatus()  
      com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> autoAccept()  
      static VpcPeeringConnectionAccepter get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, VpcPeeringConnectionAccepterState 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> peerOwnerId()  
      com.pulumi.core.Output<java.lang.String> peerRegion()  
      com.pulumi.core.Output<java.lang.String> peerVpcId()  
      com.pulumi.core.Output<java.lang.String> region()  
      com.pulumi.core.Output<VpcPeeringConnectionAccepterRequester> requester()  
      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()  
      com.pulumi.core.Output<java.lang.String> vpcId()  
      com.pulumi.core.Output<java.lang.String> vpcPeeringConnectionId()  
      • 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

      • VpcPeeringConnectionAccepter

        public VpcPeeringConnectionAccepter​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • VpcPeeringConnectionAccepter

        public VpcPeeringConnectionAccepter​(java.lang.String name,
                                            VpcPeeringConnectionAccepterArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • VpcPeeringConnectionAccepter

        public VpcPeeringConnectionAccepter​(java.lang.String name,
                                            VpcPeeringConnectionAccepterArgs 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

      • acceptStatus

        public com.pulumi.core.Output<java.lang.String> acceptStatus()
        Returns:
        Status of the VPC Peering Connection request.
      • accepter

        public com.pulumi.core.Output<VpcPeeringConnectionAccepterAccepter> accepter()
        Returns:
        Configuration block for [VPC Peering Connection](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options to set for the VPC that accepts the peering connection (a maximum of one). See `accepter` Block below.
      • autoAccept

        public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> autoAccept()
        Returns:
        Whether or not to accept the peering request. Defaults to `false`.
      • peerOwnerId

        public com.pulumi.core.Output<java.lang.String> peerOwnerId()
        Returns:
        AWS account ID of the owner of the requester VPC.
      • peerRegion

        public com.pulumi.core.Output<java.lang.String> peerRegion()
        Returns:
        Region of the accepter VPC.
      • peerVpcId

        public com.pulumi.core.Output<java.lang.String> peerVpcId()
        Returns:
        ID of the requester VPC.
      • 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.
      • requester

        public com.pulumi.core.Output<VpcPeeringConnectionAccepterRequester> requester()
        Returns:
        Configuration block for [VPC Peering Connection](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options to set for the VPC that requests the peering connection (a maximum of one). See `requester` Block below.
      • 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. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
        Returns:
        Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
      • vpcId

        public com.pulumi.core.Output<java.lang.String> vpcId()
        Returns:
        ID of the accepter VPC.
      • vpcPeeringConnectionId

        public com.pulumi.core.Output<java.lang.String> vpcPeeringConnectionId()
        Returns:
        VPC Peering Connection ID to manage.
      • get

        public static VpcPeeringConnectionAccepter get​(java.lang.String name,
                                                       com.pulumi.core.Output<java.lang.String> id,
                                                       @Nullable
                                                       VpcPeeringConnectionAccepterState 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.