1. Packages
  2. AWS Classic
  3. API Docs
  4. ec2
  5. getCustomerGateway

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.3.0 published on Thursday, Sep 28, 2023 by Pulumi

aws.ec2.getCustomerGateway

Explore with Pulumi AI

aws logo

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.3.0 published on Thursday, Sep 28, 2023 by Pulumi

    Get an existing AWS Customer Gateway.

    Example Usage

    using System.Collections.Generic;
    using System.Linq;
    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/v6/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{
    				{
    					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<GetCustomerGatewayFilter>

    One or more name-value pairs 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 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 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 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 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 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<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
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes

    This Pulumi package is based on the aws Terraform Provider.

    aws logo

    Try AWS Native preview for resources not in the classic version.

    AWS Classic v6.3.0 published on Thursday, Sep 28, 2023 by Pulumi