getCustomerGateway

Get an existing AWS Customer Gateway.

Example Usage

using System.Collections.Generic;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var foo = Aws.Ec2.GetCustomerGateway.Invoke(new()
    {
        Filters = new[]
        {
            new Aws.Ec2.Inputs.GetCustomerGatewayFilterInputArgs
            {
                Name = "tag:Name",
                Values = new[]
                {
                    "foo-prod",
                },
            },
        },
    });

    var main = new Aws.Ec2.VpnGateway("main", new()
    {
        VpcId = aws_vpc.Main.Id,
        AmazonSideAsn = "7224",
    });

    var transit = new Aws.Ec2.VpnConnection("transit", new()
    {
        VpnGatewayId = main.Id,
        CustomerGatewayId = foo.Apply(getCustomerGatewayResult => getCustomerGatewayResult.Id),
        Type = foo.Apply(getCustomerGatewayResult => getCustomerGatewayResult.Type),
        StaticRoutesOnly = false,
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		foo, err := ec2.LookupCustomerGateway(ctx, &ec2.LookupCustomerGatewayArgs{
			Filters: []ec2.GetCustomerGatewayFilter{
				ec2.GetCustomerGatewayFilter{
					Name: "tag:Name",
					Values: []string{
						"foo-prod",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		main, err := ec2.NewVpnGateway(ctx, "main", &ec2.VpnGatewayArgs{
			VpcId:         pulumi.Any(aws_vpc.Main.Id),
			AmazonSideAsn: pulumi.String("7224"),
		})
		if err != nil {
			return err
		}
		_, err = ec2.NewVpnConnection(ctx, "transit", &ec2.VpnConnectionArgs{
			VpnGatewayId:      main.ID(),
			CustomerGatewayId: pulumi.String(foo.Id),
			Type:              pulumi.String(foo.Type),
			StaticRoutesOnly:  pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.Ec2Functions;
import com.pulumi.aws.ec2.inputs.GetCustomerGatewayArgs;
import com.pulumi.aws.ec2.VpnGateway;
import com.pulumi.aws.ec2.VpnGatewayArgs;
import com.pulumi.aws.ec2.VpnConnection;
import com.pulumi.aws.ec2.VpnConnectionArgs;
import java.util.List;
import java.util.ArrayList;
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) {
        final var foo = Ec2Functions.getCustomerGateway(GetCustomerGatewayArgs.builder()
            .filters(GetCustomerGatewayFilterArgs.builder()
                .name("tag:Name")
                .values("foo-prod")
                .build())
            .build());

        var main = new VpnGateway("main", VpnGatewayArgs.builder()        
            .vpcId(aws_vpc.main().id())
            .amazonSideAsn(7224)
            .build());

        var transit = new VpnConnection("transit", VpnConnectionArgs.builder()        
            .vpnGatewayId(main.id())
            .customerGatewayId(foo.applyValue(getCustomerGatewayResult -> getCustomerGatewayResult.id()))
            .type(foo.applyValue(getCustomerGatewayResult -> getCustomerGatewayResult.type()))
            .staticRoutesOnly(false)
            .build());

    }
}
import pulumi
import pulumi_aws as aws

foo = aws.ec2.get_customer_gateway(filters=[aws.ec2.GetCustomerGatewayFilterArgs(
    name="tag:Name",
    values=["foo-prod"],
)])
main = aws.ec2.VpnGateway("main",
    vpc_id=aws_vpc["main"]["id"],
    amazon_side_asn="7224")
transit = aws.ec2.VpnConnection("transit",
    vpn_gateway_id=main.id,
    customer_gateway_id=foo.id,
    type=foo.type,
    static_routes_only=False)
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const foo = aws.ec2.getCustomerGateway({
    filters: [{
        name: "tag:Name",
        values: ["foo-prod"],
    }],
});
const main = new aws.ec2.VpnGateway("main", {
    vpcId: aws_vpc.main.id,
    amazonSideAsn: "7224",
});
const transit = new aws.ec2.VpnConnection("transit", {
    vpnGatewayId: main.id,
    customerGatewayId: foo.then(foo => foo.id),
    type: foo.then(foo => foo.type),
    staticRoutesOnly: false,
});
resources:
  main:
    type: aws:ec2:VpnGateway
    properties:
      vpcId: ${aws_vpc.main.id}
      amazonSideAsn: 7224
  transit:
    type: aws:ec2:VpnConnection
    properties:
      vpnGatewayId: ${main.id}
      customerGatewayId: ${foo.id}
      type: ${foo.type}
      staticRoutesOnly: false
variables:
  foo:
    fn::invoke:
      Function: aws:ec2:getCustomerGateway
      Arguments:
        filters:
          - name: tag:Name
            values:
              - foo-prod

Using getCustomerGateway

Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

function getCustomerGateway(args: GetCustomerGatewayArgs, opts?: InvokeOptions): Promise<GetCustomerGatewayResult>
function getCustomerGatewayOutput(args: GetCustomerGatewayOutputArgs, opts?: InvokeOptions): Output<GetCustomerGatewayResult>
def get_customer_gateway(filters: Optional[Sequence[GetCustomerGatewayFilter]] = None,
                         id: Optional[str] = None,
                         tags: Optional[Mapping[str, str]] = None,
                         opts: Optional[InvokeOptions] = None) -> GetCustomerGatewayResult
def get_customer_gateway_output(filters: Optional[pulumi.Input[Sequence[pulumi.Input[GetCustomerGatewayFilterArgs]]]] = None,
                         id: Optional[pulumi.Input[str]] = None,
                         tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                         opts: Optional[InvokeOptions] = None) -> Output[GetCustomerGatewayResult]
func LookupCustomerGateway(ctx *Context, args *LookupCustomerGatewayArgs, opts ...InvokeOption) (*LookupCustomerGatewayResult, error)
func LookupCustomerGatewayOutput(ctx *Context, args *LookupCustomerGatewayOutputArgs, opts ...InvokeOption) LookupCustomerGatewayResultOutput

> Note: This function is named LookupCustomerGateway in the Go SDK.

public static class GetCustomerGateway 
{
    public static Task<GetCustomerGatewayResult> InvokeAsync(GetCustomerGatewayArgs args, InvokeOptions? opts = null)
    public static Output<GetCustomerGatewayResult> Invoke(GetCustomerGatewayInvokeArgs args, InvokeOptions? opts = null)
}
public static CompletableFuture<GetCustomerGatewayResult> getCustomerGateway(GetCustomerGatewayArgs args, InvokeOptions options)
// Output-based functions aren't available in Java yet
fn::invoke:
  function: aws:ec2/getCustomerGateway:getCustomerGateway
  arguments:
    # arguments dictionary

The following arguments are supported:

Filters List<Pulumi.Aws.Ec2.Inputs.GetCustomerGatewayFilter>

One or more [name-value pairs][dcg-filters] to filter by.

Id string

ID of the gateway.

Tags Dictionary<string, string>

Map of key-value pairs assigned to the gateway.

Filters []GetCustomerGatewayFilter

One or more [name-value pairs][dcg-filters] to filter by.

Id string

ID of the gateway.

Tags map[string]string

Map of key-value pairs assigned to the gateway.

filters List<GetCustomerGatewayFilter>

One or more [name-value pairs][dcg-filters] to filter by.

id String

ID of the gateway.

tags Map<String,String>

Map of key-value pairs assigned to the gateway.

filters GetCustomerGatewayFilter[]

One or more [name-value pairs][dcg-filters] to filter by.

id string

ID of the gateway.

tags {[key: string]: string}

Map of key-value pairs assigned to the gateway.

filters Sequence[GetCustomerGatewayFilter]

One or more [name-value pairs][dcg-filters] to filter by.

id str

ID of the gateway.

tags Mapping[str, str]

Map of key-value pairs assigned to the gateway.

filters List<Property Map>

One or more [name-value pairs][dcg-filters] to filter by.

id String

ID of the gateway.

tags Map<String>

Map of key-value pairs assigned to the gateway.

getCustomerGateway Result

The following output properties are available:

Arn string

ARN of the customer gateway.

BgpAsn int

Gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).

CertificateArn string

ARN for the customer gateway certificate.

DeviceName string

Name for the customer gateway device.

Id string
IpAddress string

IP address of the gateway's Internet-routable external interface.

Tags Dictionary<string, string>

Map of key-value pairs assigned to the gateway.

Type string

Type of customer gateway. The only type AWS supports at this time is "ipsec.1".

Filters List<Pulumi.Aws.Ec2.Outputs.GetCustomerGatewayFilter>
Arn string

ARN of the customer gateway.

BgpAsn int

Gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).

CertificateArn string

ARN for the customer gateway certificate.

DeviceName string

Name for the customer gateway device.

Id string
IpAddress string

IP address of the gateway's Internet-routable external interface.

Tags map[string]string

Map of key-value pairs assigned to the gateway.

Type string

Type of customer gateway. The only type AWS supports at this time is "ipsec.1".

Filters []GetCustomerGatewayFilter
arn String

ARN of the customer gateway.

bgpAsn Integer

Gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).

certificateArn String

ARN for the customer gateway certificate.

deviceName String

Name for the customer gateway device.

id String
ipAddress String

IP address of the gateway's Internet-routable external interface.

tags Map<String,String>

Map of key-value pairs assigned to the gateway.

type String

Type of customer gateway. The only type AWS supports at this time is "ipsec.1".

filters List<GetCustomerGatewayFilter>
arn string

ARN of the customer gateway.

bgpAsn number

Gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).

certificateArn string

ARN for the customer gateway certificate.

deviceName string

Name for the customer gateway device.

id string
ipAddress string

IP address of the gateway's Internet-routable external interface.

tags {[key: string]: string}

Map of key-value pairs assigned to the gateway.

type string

Type of customer gateway. The only type AWS supports at this time is "ipsec.1".

filters GetCustomerGatewayFilter[]
arn str

ARN of the customer gateway.

bgp_asn int

Gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).

certificate_arn str

ARN for the customer gateway certificate.

device_name str

Name for the customer gateway device.

id str
ip_address str

IP address of the gateway's Internet-routable external interface.

tags Mapping[str, str]

Map of key-value pairs assigned to the gateway.

type str

Type of customer gateway. The only type AWS supports at this time is "ipsec.1".

filters Sequence[GetCustomerGatewayFilter]
arn String

ARN of the customer gateway.

bgpAsn Number

Gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).

certificateArn String

ARN for the customer gateway certificate.

deviceName String

Name for the customer gateway device.

id String
ipAddress String

IP address of the gateway's Internet-routable external interface.

tags Map<String>

Map of key-value pairs assigned to the gateway.

type String

Type of customer gateway. The only type AWS supports at this time is "ipsec.1".

filters List<Property Map>

Supporting Types

GetCustomerGatewayFilter

Name string
Values List<string>
Name string
Values []string
name String
values List<String>
name string
values string[]
name str
values Sequence[str]
name String
values List<String>

Package Details

Repository
https://github.com/pulumi/pulumi-aws
License
Apache-2.0
Notes

This Pulumi package is based on the aws Terraform Provider.