github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/getVpcPeeringConnection.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package ec2
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // The VPC Peering Connection data source provides details about
    15  // a specific VPC peering connection.
    16  //
    17  // ## Example Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    26  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    27  //
    28  // )
    29  //
    30  //	func main() {
    31  //		pulumi.Run(func(ctx *pulumi.Context) error {
    32  //			// Declare the data source
    33  //			pc, err := ec2.LookupVpcPeeringConnection(ctx, &ec2.LookupVpcPeeringConnectionArgs{
    34  //				VpcId:         pulumi.StringRef(foo.Id),
    35  //				PeerCidrBlock: pulumi.StringRef("10.0.1.0/22"),
    36  //			}, nil)
    37  //			if err != nil {
    38  //				return err
    39  //			}
    40  //			// Create a route table
    41  //			rt, err := ec2.NewRouteTable(ctx, "rt", &ec2.RouteTableArgs{
    42  //				VpcId: pulumi.Any(foo.Id),
    43  //			})
    44  //			if err != nil {
    45  //				return err
    46  //			}
    47  //			// Create a route
    48  //			_, err = ec2.NewRoute(ctx, "r", &ec2.RouteArgs{
    49  //				RouteTableId:           rt.ID(),
    50  //				DestinationCidrBlock:   pulumi.String(pc.PeerCidrBlock),
    51  //				VpcPeeringConnectionId: pulumi.String(pc.Id),
    52  //			})
    53  //			if err != nil {
    54  //				return err
    55  //			}
    56  //			return nil
    57  //		})
    58  //	}
    59  //
    60  // ```
    61  // <!--End PulumiCodeChooser -->
    62  func LookupVpcPeeringConnection(ctx *pulumi.Context, args *LookupVpcPeeringConnectionArgs, opts ...pulumi.InvokeOption) (*LookupVpcPeeringConnectionResult, error) {
    63  	opts = internal.PkgInvokeDefaultOpts(opts)
    64  	var rv LookupVpcPeeringConnectionResult
    65  	err := ctx.Invoke("aws:ec2/getVpcPeeringConnection:getVpcPeeringConnection", args, &rv, opts...)
    66  	if err != nil {
    67  		return nil, err
    68  	}
    69  	return &rv, nil
    70  }
    71  
    72  // A collection of arguments for invoking getVpcPeeringConnection.
    73  type LookupVpcPeeringConnectionArgs struct {
    74  	// Primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve.
    75  	CidrBlock *string `pulumi:"cidrBlock"`
    76  	// Custom filter block as described below.
    77  	Filters []GetVpcPeeringConnectionFilter `pulumi:"filters"`
    78  	// ID of the specific VPC Peering Connection to retrieve.
    79  	Id *string `pulumi:"id"`
    80  	// AWS account ID of the owner of the requester VPC of the specific VPC Peering Connection to retrieve.
    81  	OwnerId *string `pulumi:"ownerId"`
    82  	// Primary CIDR block of the accepter VPC of the specific VPC Peering Connection to retrieve.
    83  	PeerCidrBlock *string `pulumi:"peerCidrBlock"`
    84  	// AWS account ID of the owner of the accepter VPC of the specific VPC Peering Connection to retrieve.
    85  	PeerOwnerId *string `pulumi:"peerOwnerId"`
    86  	// Region of the accepter VPC of the specific VPC Peering Connection to retrieve.
    87  	PeerRegion *string `pulumi:"peerRegion"`
    88  	// ID of the accepter VPC of the specific VPC Peering Connection to retrieve.
    89  	PeerVpcId *string `pulumi:"peerVpcId"`
    90  	// Region of the requester VPC of the specific VPC Peering Connection to retrieve.
    91  	Region *string `pulumi:"region"`
    92  	// Status of the specific VPC Peering Connection to retrieve.
    93  	Status *string `pulumi:"status"`
    94  	// Map of tags, each pair of which must exactly match
    95  	// a pair on the desired VPC Peering Connection.
    96  	//
    97  	// More complex filters can be expressed using one or more `filter` sub-blocks,
    98  	// which take the following arguments:
    99  	Tags map[string]string `pulumi:"tags"`
   100  	// ID of the requester VPC of the specific VPC Peering Connection to retrieve.
   101  	VpcId *string `pulumi:"vpcId"`
   102  }
   103  
   104  // A collection of values returned by getVpcPeeringConnection.
   105  type LookupVpcPeeringConnectionResult struct {
   106  	// Configuration block that describes [VPC Peering Connection]
   107  	// (https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options set for the accepter VPC.
   108  	Accepter map[string]bool `pulumi:"accepter"`
   109  	// CIDR block associated to the VPC of the specific VPC Peering Connection.
   110  	CidrBlock string `pulumi:"cidrBlock"`
   111  	// List of objects with IPv4 CIDR blocks of the requester VPC.
   112  	CidrBlockSets []GetVpcPeeringConnectionCidrBlockSet `pulumi:"cidrBlockSets"`
   113  	Filters       []GetVpcPeeringConnectionFilter       `pulumi:"filters"`
   114  	Id            string                                `pulumi:"id"`
   115  	// List of objects with IPv6 CIDR blocks of the requester VPC.
   116  	Ipv6CidrBlockSets []GetVpcPeeringConnectionIpv6CidrBlockSet `pulumi:"ipv6CidrBlockSets"`
   117  	OwnerId           string                                    `pulumi:"ownerId"`
   118  	PeerCidrBlock     string                                    `pulumi:"peerCidrBlock"`
   119  	// List of objects with IPv4 CIDR blocks of the accepter VPC.
   120  	PeerCidrBlockSets []GetVpcPeeringConnectionPeerCidrBlockSet `pulumi:"peerCidrBlockSets"`
   121  	// List of objects with IPv6 CIDR blocks of the accepter VPC.
   122  	PeerIpv6CidrBlockSets []GetVpcPeeringConnectionPeerIpv6CidrBlockSet `pulumi:"peerIpv6CidrBlockSets"`
   123  	PeerOwnerId           string                                        `pulumi:"peerOwnerId"`
   124  	PeerRegion            string                                        `pulumi:"peerRegion"`
   125  	PeerVpcId             string                                        `pulumi:"peerVpcId"`
   126  	Region                string                                        `pulumi:"region"`
   127  	// Configuration block that describes [VPC Peering Connection]
   128  	// (https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options set for the requester VPC.
   129  	Requester map[string]bool   `pulumi:"requester"`
   130  	Status    string            `pulumi:"status"`
   131  	Tags      map[string]string `pulumi:"tags"`
   132  	VpcId     string            `pulumi:"vpcId"`
   133  }
   134  
   135  func LookupVpcPeeringConnectionOutput(ctx *pulumi.Context, args LookupVpcPeeringConnectionOutputArgs, opts ...pulumi.InvokeOption) LookupVpcPeeringConnectionResultOutput {
   136  	return pulumi.ToOutputWithContext(context.Background(), args).
   137  		ApplyT(func(v interface{}) (LookupVpcPeeringConnectionResult, error) {
   138  			args := v.(LookupVpcPeeringConnectionArgs)
   139  			r, err := LookupVpcPeeringConnection(ctx, &args, opts...)
   140  			var s LookupVpcPeeringConnectionResult
   141  			if r != nil {
   142  				s = *r
   143  			}
   144  			return s, err
   145  		}).(LookupVpcPeeringConnectionResultOutput)
   146  }
   147  
   148  // A collection of arguments for invoking getVpcPeeringConnection.
   149  type LookupVpcPeeringConnectionOutputArgs struct {
   150  	// Primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve.
   151  	CidrBlock pulumi.StringPtrInput `pulumi:"cidrBlock"`
   152  	// Custom filter block as described below.
   153  	Filters GetVpcPeeringConnectionFilterArrayInput `pulumi:"filters"`
   154  	// ID of the specific VPC Peering Connection to retrieve.
   155  	Id pulumi.StringPtrInput `pulumi:"id"`
   156  	// AWS account ID of the owner of the requester VPC of the specific VPC Peering Connection to retrieve.
   157  	OwnerId pulumi.StringPtrInput `pulumi:"ownerId"`
   158  	// Primary CIDR block of the accepter VPC of the specific VPC Peering Connection to retrieve.
   159  	PeerCidrBlock pulumi.StringPtrInput `pulumi:"peerCidrBlock"`
   160  	// AWS account ID of the owner of the accepter VPC of the specific VPC Peering Connection to retrieve.
   161  	PeerOwnerId pulumi.StringPtrInput `pulumi:"peerOwnerId"`
   162  	// Region of the accepter VPC of the specific VPC Peering Connection to retrieve.
   163  	PeerRegion pulumi.StringPtrInput `pulumi:"peerRegion"`
   164  	// ID of the accepter VPC of the specific VPC Peering Connection to retrieve.
   165  	PeerVpcId pulumi.StringPtrInput `pulumi:"peerVpcId"`
   166  	// Region of the requester VPC of the specific VPC Peering Connection to retrieve.
   167  	Region pulumi.StringPtrInput `pulumi:"region"`
   168  	// Status of the specific VPC Peering Connection to retrieve.
   169  	Status pulumi.StringPtrInput `pulumi:"status"`
   170  	// Map of tags, each pair of which must exactly match
   171  	// a pair on the desired VPC Peering Connection.
   172  	//
   173  	// More complex filters can be expressed using one or more `filter` sub-blocks,
   174  	// which take the following arguments:
   175  	Tags pulumi.StringMapInput `pulumi:"tags"`
   176  	// ID of the requester VPC of the specific VPC Peering Connection to retrieve.
   177  	VpcId pulumi.StringPtrInput `pulumi:"vpcId"`
   178  }
   179  
   180  func (LookupVpcPeeringConnectionOutputArgs) ElementType() reflect.Type {
   181  	return reflect.TypeOf((*LookupVpcPeeringConnectionArgs)(nil)).Elem()
   182  }
   183  
   184  // A collection of values returned by getVpcPeeringConnection.
   185  type LookupVpcPeeringConnectionResultOutput struct{ *pulumi.OutputState }
   186  
   187  func (LookupVpcPeeringConnectionResultOutput) ElementType() reflect.Type {
   188  	return reflect.TypeOf((*LookupVpcPeeringConnectionResult)(nil)).Elem()
   189  }
   190  
   191  func (o LookupVpcPeeringConnectionResultOutput) ToLookupVpcPeeringConnectionResultOutput() LookupVpcPeeringConnectionResultOutput {
   192  	return o
   193  }
   194  
   195  func (o LookupVpcPeeringConnectionResultOutput) ToLookupVpcPeeringConnectionResultOutputWithContext(ctx context.Context) LookupVpcPeeringConnectionResultOutput {
   196  	return o
   197  }
   198  
   199  // Configuration block that describes [VPC Peering Connection]
   200  // (https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options set for the accepter VPC.
   201  func (o LookupVpcPeeringConnectionResultOutput) Accepter() pulumi.BoolMapOutput {
   202  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) map[string]bool { return v.Accepter }).(pulumi.BoolMapOutput)
   203  }
   204  
   205  // CIDR block associated to the VPC of the specific VPC Peering Connection.
   206  func (o LookupVpcPeeringConnectionResultOutput) CidrBlock() pulumi.StringOutput {
   207  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) string { return v.CidrBlock }).(pulumi.StringOutput)
   208  }
   209  
   210  // List of objects with IPv4 CIDR blocks of the requester VPC.
   211  func (o LookupVpcPeeringConnectionResultOutput) CidrBlockSets() GetVpcPeeringConnectionCidrBlockSetArrayOutput {
   212  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) []GetVpcPeeringConnectionCidrBlockSet { return v.CidrBlockSets }).(GetVpcPeeringConnectionCidrBlockSetArrayOutput)
   213  }
   214  
   215  func (o LookupVpcPeeringConnectionResultOutput) Filters() GetVpcPeeringConnectionFilterArrayOutput {
   216  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) []GetVpcPeeringConnectionFilter { return v.Filters }).(GetVpcPeeringConnectionFilterArrayOutput)
   217  }
   218  
   219  func (o LookupVpcPeeringConnectionResultOutput) Id() pulumi.StringOutput {
   220  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) string { return v.Id }).(pulumi.StringOutput)
   221  }
   222  
   223  // List of objects with IPv6 CIDR blocks of the requester VPC.
   224  func (o LookupVpcPeeringConnectionResultOutput) Ipv6CidrBlockSets() GetVpcPeeringConnectionIpv6CidrBlockSetArrayOutput {
   225  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) []GetVpcPeeringConnectionIpv6CidrBlockSet {
   226  		return v.Ipv6CidrBlockSets
   227  	}).(GetVpcPeeringConnectionIpv6CidrBlockSetArrayOutput)
   228  }
   229  
   230  func (o LookupVpcPeeringConnectionResultOutput) OwnerId() pulumi.StringOutput {
   231  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) string { return v.OwnerId }).(pulumi.StringOutput)
   232  }
   233  
   234  func (o LookupVpcPeeringConnectionResultOutput) PeerCidrBlock() pulumi.StringOutput {
   235  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) string { return v.PeerCidrBlock }).(pulumi.StringOutput)
   236  }
   237  
   238  // List of objects with IPv4 CIDR blocks of the accepter VPC.
   239  func (o LookupVpcPeeringConnectionResultOutput) PeerCidrBlockSets() GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput {
   240  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) []GetVpcPeeringConnectionPeerCidrBlockSet {
   241  		return v.PeerCidrBlockSets
   242  	}).(GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput)
   243  }
   244  
   245  // List of objects with IPv6 CIDR blocks of the accepter VPC.
   246  func (o LookupVpcPeeringConnectionResultOutput) PeerIpv6CidrBlockSets() GetVpcPeeringConnectionPeerIpv6CidrBlockSetArrayOutput {
   247  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) []GetVpcPeeringConnectionPeerIpv6CidrBlockSet {
   248  		return v.PeerIpv6CidrBlockSets
   249  	}).(GetVpcPeeringConnectionPeerIpv6CidrBlockSetArrayOutput)
   250  }
   251  
   252  func (o LookupVpcPeeringConnectionResultOutput) PeerOwnerId() pulumi.StringOutput {
   253  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) string { return v.PeerOwnerId }).(pulumi.StringOutput)
   254  }
   255  
   256  func (o LookupVpcPeeringConnectionResultOutput) PeerRegion() pulumi.StringOutput {
   257  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) string { return v.PeerRegion }).(pulumi.StringOutput)
   258  }
   259  
   260  func (o LookupVpcPeeringConnectionResultOutput) PeerVpcId() pulumi.StringOutput {
   261  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) string { return v.PeerVpcId }).(pulumi.StringOutput)
   262  }
   263  
   264  func (o LookupVpcPeeringConnectionResultOutput) Region() pulumi.StringOutput {
   265  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) string { return v.Region }).(pulumi.StringOutput)
   266  }
   267  
   268  // Configuration block that describes [VPC Peering Connection]
   269  // (https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options set for the requester VPC.
   270  func (o LookupVpcPeeringConnectionResultOutput) Requester() pulumi.BoolMapOutput {
   271  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) map[string]bool { return v.Requester }).(pulumi.BoolMapOutput)
   272  }
   273  
   274  func (o LookupVpcPeeringConnectionResultOutput) Status() pulumi.StringOutput {
   275  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) string { return v.Status }).(pulumi.StringOutput)
   276  }
   277  
   278  func (o LookupVpcPeeringConnectionResultOutput) Tags() pulumi.StringMapOutput {
   279  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput)
   280  }
   281  
   282  func (o LookupVpcPeeringConnectionResultOutput) VpcId() pulumi.StringOutput {
   283  	return o.ApplyT(func(v LookupVpcPeeringConnectionResult) string { return v.VpcId }).(pulumi.StringOutput)
   284  }
   285  
   286  func init() {
   287  	pulumi.RegisterOutputType(LookupVpcPeeringConnectionResultOutput{})
   288  }