1. Packages
  2. AWS
  3. API Docs
  4. ec2
  5. getNatGateway
AWS v6.76.0 published on Tuesday, Apr 8, 2025 by Pulumi

aws.ec2.getNatGateway

Explore with Pulumi AI

Provides details about a specific VPC NAT Gateway.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const _default = aws.ec2.getNatGateway({
    subnetId: _public.id,
});
Copy
import pulumi
import pulumi_aws as aws

default = aws.ec2.get_nat_gateway(subnet_id=public["id"])
Copy
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 {
		_, err := ec2.LookupNatGateway(ctx, &ec2.LookupNatGatewayArgs{
			SubnetId: pulumi.StringRef(public.Id),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var @default = Aws.Ec2.GetNatGateway.Invoke(new()
    {
        SubnetId = @public.Id,
    });

});
Copy
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.GetNatGatewayArgs;
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 default = Ec2Functions.getNatGateway(GetNatGatewayArgs.builder()
            .subnetId(public_.id())
            .build());

    }
}
Copy
variables:
  default:
    fn::invoke:
      function: aws:ec2:getNatGateway
      arguments:
        subnetId: ${public.id}
Copy

With tags

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const _default = aws.ec2.getNatGateway({
    subnetId: _public.id,
    tags: {
        Name: "gw NAT",
    },
});
Copy
import pulumi
import pulumi_aws as aws

default = aws.ec2.get_nat_gateway(subnet_id=public["id"],
    tags={
        "Name": "gw NAT",
    })
Copy
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 {
		_, err := ec2.LookupNatGateway(ctx, &ec2.LookupNatGatewayArgs{
			SubnetId: pulumi.StringRef(public.Id),
			Tags: map[string]interface{}{
				"Name": "gw NAT",
			},
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var @default = Aws.Ec2.GetNatGateway.Invoke(new()
    {
        SubnetId = @public.Id,
        Tags = 
        {
            { "Name", "gw NAT" },
        },
    });

});
Copy
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.GetNatGatewayArgs;
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 default = Ec2Functions.getNatGateway(GetNatGatewayArgs.builder()
            .subnetId(public_.id())
            .tags(Map.of("Name", "gw NAT"))
            .build());

    }
}
Copy
variables:
  default:
    fn::invoke:
      function: aws:ec2:getNatGateway
      arguments:
        subnetId: ${public.id}
        tags:
          Name: gw NAT
Copy

Using getNatGateway

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 getNatGateway(args: GetNatGatewayArgs, opts?: InvokeOptions): Promise<GetNatGatewayResult>
function getNatGatewayOutput(args: GetNatGatewayOutputArgs, opts?: InvokeOptions): Output<GetNatGatewayResult>
Copy
def get_nat_gateway(filters: Optional[Sequence[GetNatGatewayFilter]] = None,
                    id: Optional[str] = None,
                    state: Optional[str] = None,
                    subnet_id: Optional[str] = None,
                    tags: Optional[Mapping[str, str]] = None,
                    vpc_id: Optional[str] = None,
                    opts: Optional[InvokeOptions] = None) -> GetNatGatewayResult
def get_nat_gateway_output(filters: Optional[pulumi.Input[Sequence[pulumi.Input[GetNatGatewayFilterArgs]]]] = None,
                    id: Optional[pulumi.Input[str]] = None,
                    state: Optional[pulumi.Input[str]] = None,
                    subnet_id: Optional[pulumi.Input[str]] = None,
                    tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                    vpc_id: Optional[pulumi.Input[str]] = None,
                    opts: Optional[InvokeOptions] = None) -> Output[GetNatGatewayResult]
Copy
func LookupNatGateway(ctx *Context, args *LookupNatGatewayArgs, opts ...InvokeOption) (*LookupNatGatewayResult, error)
func LookupNatGatewayOutput(ctx *Context, args *LookupNatGatewayOutputArgs, opts ...InvokeOption) LookupNatGatewayResultOutput
Copy

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

public static class GetNatGateway 
{
    public static Task<GetNatGatewayResult> InvokeAsync(GetNatGatewayArgs args, InvokeOptions? opts = null)
    public static Output<GetNatGatewayResult> Invoke(GetNatGatewayInvokeArgs args, InvokeOptions? opts = null)
}
Copy
public static CompletableFuture<GetNatGatewayResult> getNatGateway(GetNatGatewayArgs args, InvokeOptions options)
public static Output<GetNatGatewayResult> getNatGateway(GetNatGatewayArgs args, InvokeOptions options)
Copy
fn::invoke:
  function: aws:ec2/getNatGateway:getNatGateway
  arguments:
    # arguments dictionary
Copy

The following arguments are supported:

Filters List<GetNatGatewayFilter>

Custom filter block as described below.

More complex filters can be expressed using one or more filter sub-blocks, which take the following arguments:

Id string
ID of the specific NAT Gateway to retrieve.
State string
State of the NAT Gateway (pending | failed | available | deleting | deleted ).
SubnetId string
ID of subnet that the NAT Gateway resides in.
Tags Dictionary<string, string>
Map of tags, each pair of which must exactly match a pair on the desired NAT Gateway.
VpcId string
ID of the VPC that the NAT Gateway resides in.
Filters []GetNatGatewayFilter

Custom filter block as described below.

More complex filters can be expressed using one or more filter sub-blocks, which take the following arguments:

Id string
ID of the specific NAT Gateway to retrieve.
State string
State of the NAT Gateway (pending | failed | available | deleting | deleted ).
SubnetId string
ID of subnet that the NAT Gateway resides in.
Tags map[string]string
Map of tags, each pair of which must exactly match a pair on the desired NAT Gateway.
VpcId string
ID of the VPC that the NAT Gateway resides in.
filters List<GetNatGatewayFilter>

Custom filter block as described below.

More complex filters can be expressed using one or more filter sub-blocks, which take the following arguments:

id String
ID of the specific NAT Gateway to retrieve.
state String
State of the NAT Gateway (pending | failed | available | deleting | deleted ).
subnetId String
ID of subnet that the NAT Gateway resides in.
tags Map<String,String>
Map of tags, each pair of which must exactly match a pair on the desired NAT Gateway.
vpcId String
ID of the VPC that the NAT Gateway resides in.
filters GetNatGatewayFilter[]

Custom filter block as described below.

More complex filters can be expressed using one or more filter sub-blocks, which take the following arguments:

id string
ID of the specific NAT Gateway to retrieve.
state string
State of the NAT Gateway (pending | failed | available | deleting | deleted ).
subnetId string
ID of subnet that the NAT Gateway resides in.
tags {[key: string]: string}
Map of tags, each pair of which must exactly match a pair on the desired NAT Gateway.
vpcId string
ID of the VPC that the NAT Gateway resides in.
filters Sequence[GetNatGatewayFilter]

Custom filter block as described below.

More complex filters can be expressed using one or more filter sub-blocks, which take the following arguments:

id str
ID of the specific NAT Gateway to retrieve.
state str
State of the NAT Gateway (pending | failed | available | deleting | deleted ).
subnet_id str
ID of subnet that the NAT Gateway resides in.
tags Mapping[str, str]
Map of tags, each pair of which must exactly match a pair on the desired NAT Gateway.
vpc_id str
ID of the VPC that the NAT Gateway resides in.
filters List<Property Map>

Custom filter block as described below.

More complex filters can be expressed using one or more filter sub-blocks, which take the following arguments:

id String
ID of the specific NAT Gateway to retrieve.
state String
State of the NAT Gateway (pending | failed | available | deleting | deleted ).
subnetId String
ID of subnet that the NAT Gateway resides in.
tags Map<String>
Map of tags, each pair of which must exactly match a pair on the desired NAT Gateway.
vpcId String
ID of the VPC that the NAT Gateway resides in.

getNatGateway Result

The following output properties are available:

AllocationId string
ID of the EIP allocated to the selected NAT Gateway.
AssociationId string
The association ID of the Elastic IP address that's associated with the NAT Gateway. Only available when connectivity_type is public.
ConnectivityType string
Connectivity type of the NAT Gateway.
Id string
NetworkInterfaceId string
The ID of the ENI allocated to the selected NAT Gateway.
PrivateIp string
Private IP address of the selected NAT Gateway.
PublicIp string
Public IP (EIP) address of the selected NAT Gateway.
SecondaryAllocationIds List<string>
Secondary allocation EIP IDs for the selected NAT Gateway.
SecondaryPrivateIpAddressCount int
The number of secondary private IPv4 addresses assigned to the selected NAT Gateway.
SecondaryPrivateIpAddresses List<string>
Secondary private IPv4 addresses assigned to the selected NAT Gateway.
State string
SubnetId string
Tags Dictionary<string, string>
VpcId string
Filters List<GetNatGatewayFilter>
AllocationId string
ID of the EIP allocated to the selected NAT Gateway.
AssociationId string
The association ID of the Elastic IP address that's associated with the NAT Gateway. Only available when connectivity_type is public.
ConnectivityType string
Connectivity type of the NAT Gateway.
Id string
NetworkInterfaceId string
The ID of the ENI allocated to the selected NAT Gateway.
PrivateIp string
Private IP address of the selected NAT Gateway.
PublicIp string
Public IP (EIP) address of the selected NAT Gateway.
SecondaryAllocationIds []string
Secondary allocation EIP IDs for the selected NAT Gateway.
SecondaryPrivateIpAddressCount int
The number of secondary private IPv4 addresses assigned to the selected NAT Gateway.
SecondaryPrivateIpAddresses []string
Secondary private IPv4 addresses assigned to the selected NAT Gateway.
State string
SubnetId string
Tags map[string]string
VpcId string
Filters []GetNatGatewayFilter
allocationId String
ID of the EIP allocated to the selected NAT Gateway.
associationId String
The association ID of the Elastic IP address that's associated with the NAT Gateway. Only available when connectivity_type is public.
connectivityType String
Connectivity type of the NAT Gateway.
id String
networkInterfaceId String
The ID of the ENI allocated to the selected NAT Gateway.
privateIp String
Private IP address of the selected NAT Gateway.
publicIp String
Public IP (EIP) address of the selected NAT Gateway.
secondaryAllocationIds List<String>
Secondary allocation EIP IDs for the selected NAT Gateway.
secondaryPrivateIpAddressCount Integer
The number of secondary private IPv4 addresses assigned to the selected NAT Gateway.
secondaryPrivateIpAddresses List<String>
Secondary private IPv4 addresses assigned to the selected NAT Gateway.
state String
subnetId String
tags Map<String,String>
vpcId String
filters List<GetNatGatewayFilter>
allocationId string
ID of the EIP allocated to the selected NAT Gateway.
associationId string
The association ID of the Elastic IP address that's associated with the NAT Gateway. Only available when connectivity_type is public.
connectivityType string
Connectivity type of the NAT Gateway.
id string
networkInterfaceId string
The ID of the ENI allocated to the selected NAT Gateway.
privateIp string
Private IP address of the selected NAT Gateway.
publicIp string
Public IP (EIP) address of the selected NAT Gateway.
secondaryAllocationIds string[]
Secondary allocation EIP IDs for the selected NAT Gateway.
secondaryPrivateIpAddressCount number
The number of secondary private IPv4 addresses assigned to the selected NAT Gateway.
secondaryPrivateIpAddresses string[]
Secondary private IPv4 addresses assigned to the selected NAT Gateway.
state string
subnetId string
tags {[key: string]: string}
vpcId string
filters GetNatGatewayFilter[]
allocation_id str
ID of the EIP allocated to the selected NAT Gateway.
association_id str
The association ID of the Elastic IP address that's associated with the NAT Gateway. Only available when connectivity_type is public.
connectivity_type str
Connectivity type of the NAT Gateway.
id str
network_interface_id str
The ID of the ENI allocated to the selected NAT Gateway.
private_ip str
Private IP address of the selected NAT Gateway.
public_ip str
Public IP (EIP) address of the selected NAT Gateway.
secondary_allocation_ids Sequence[str]
Secondary allocation EIP IDs for the selected NAT Gateway.
secondary_private_ip_address_count int
The number of secondary private IPv4 addresses assigned to the selected NAT Gateway.
secondary_private_ip_addresses Sequence[str]
Secondary private IPv4 addresses assigned to the selected NAT Gateway.
state str
subnet_id str
tags Mapping[str, str]
vpc_id str
filters Sequence[GetNatGatewayFilter]
allocationId String
ID of the EIP allocated to the selected NAT Gateway.
associationId String
The association ID of the Elastic IP address that's associated with the NAT Gateway. Only available when connectivity_type is public.
connectivityType String
Connectivity type of the NAT Gateway.
id String
networkInterfaceId String
The ID of the ENI allocated to the selected NAT Gateway.
privateIp String
Private IP address of the selected NAT Gateway.
publicIp String
Public IP (EIP) address of the selected NAT Gateway.
secondaryAllocationIds List<String>
Secondary allocation EIP IDs for the selected NAT Gateway.
secondaryPrivateIpAddressCount Number
The number of secondary private IPv4 addresses assigned to the selected NAT Gateway.
secondaryPrivateIpAddresses List<String>
Secondary private IPv4 addresses assigned to the selected NAT Gateway.
state String
subnetId String
tags Map<String>
vpcId String
filters List<Property Map>

Supporting Types

GetNatGatewayFilter

Name This property is required. string
Name of the field to filter by, as defined by the underlying AWS API.
Values This property is required. List<string>
Set of values that are accepted for the given field. An Nat Gateway will be selected if any one of the given values matches.
Name This property is required. string
Name of the field to filter by, as defined by the underlying AWS API.
Values This property is required. []string
Set of values that are accepted for the given field. An Nat Gateway will be selected if any one of the given values matches.
name This property is required. String
Name of the field to filter by, as defined by the underlying AWS API.
values This property is required. List<String>
Set of values that are accepted for the given field. An Nat Gateway will be selected if any one of the given values matches.
name This property is required. string
Name of the field to filter by, as defined by the underlying AWS API.
values This property is required. string[]
Set of values that are accepted for the given field. An Nat Gateway will be selected if any one of the given values matches.
name This property is required. str
Name of the field to filter by, as defined by the underlying AWS API.
values This property is required. Sequence[str]
Set of values that are accepted for the given field. An Nat Gateway will be selected if any one of the given values matches.
name This property is required. String
Name of the field to filter by, as defined by the underlying AWS API.
values This property is required. List<String>
Set of values that are accepted for the given field. An Nat Gateway will be selected if any one of the given values matches.

Package Details

Repository
AWS Classic pulumi/pulumi-aws
License
Apache-2.0
Notes
This Pulumi package is based on the aws Terraform Provider.