getNatGateways

This data source provides a list of Nat Gateways owned by an Alibaba Cloud account.

NOTE: Available since v1.37.0.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const config = new pulumi.Config();
const name = config.get("name") || "natGatewaysDatasource";
const _default = alicloud.getZones({
availableResourceCreation: "VSwitch",
});
const fooNetwork = new alicloud.vpc.Network("foo", {
vpcName: name,
cidrBlock: "172.16.0.0/12",
});
const fooNatGateway = new alicloud.vpc.NatGateway("foo", {
vpcId: fooNetwork.id,
specification: "Small",
natGatewayName: name,
});
const foo = alicloud.vpc.getNatGatewaysOutput({
vpcId: fooNetwork.id,
nameRegex: fooNatGateway.name,
ids: [fooNatGateway.id],
});
import pulumi
import pulumi_alicloud as alicloud
config = pulumi.Config()
name = config.get("name")
if name is None:
name = "natGatewaysDatasource"
default = alicloud.get_zones(available_resource_creation="VSwitch")
foo_network = alicloud.vpc.Network("foo",
vpc_name=name,
cidr_block="172.16.0.0/12")
foo_nat_gateway = alicloud.vpc.NatGateway("foo",
vpc_id=foo_network.id,
specification="Small",
nat_gateway_name=name)
foo = alicloud.vpc.get_nat_gateways_output(vpc_id=foo_network.id,
name_regex=foo_nat_gateway.name,
ids=[foo_nat_gateway.id])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var name = config.Get("name") ?? "natGatewaysDatasource";
var @default = AliCloud.GetZones.Invoke(new()
{
AvailableResourceCreation = "VSwitch",
});
var fooNetwork = new AliCloud.Vpc.Network("foo", new()
{
VpcName = name,
CidrBlock = "172.16.0.0/12",
});
var fooNatGateway = new AliCloud.Vpc.NatGateway("foo", new()
{
VpcId = fooNetwork.Id,
Specification = "Small",
NatGatewayName = name,
});
var foo = AliCloud.Vpc.GetNatGateways.Invoke(new()
{
VpcId = fooNetwork.Id,
NameRegex = fooNatGateway.Name,
Ids = new[]
{
fooNatGateway.Id,
},
});
});
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cfg := config.New(ctx, "")
name := "natGatewaysDatasource"
if param := cfg.Get("name"); param != "" {
name = param
}
_, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
AvailableResourceCreation: pulumi.StringRef("VSwitch"),
}, nil)
if err != nil {
return err
}
fooNetwork, err := vpc.NewNetwork(ctx, "foo", &vpc.NetworkArgs{
VpcName: pulumi.String(name),
CidrBlock: pulumi.String("172.16.0.0/12"),
})
if err != nil {
return err
}
fooNatGateway, err := vpc.NewNatGateway(ctx, "foo", &vpc.NatGatewayArgs{
VpcId: fooNetwork.ID(),
Specification: pulumi.String("Small"),
NatGatewayName: pulumi.String(name),
})
if err != nil {
return err
}
_ = vpc.GetNatGatewaysOutput(ctx, vpc.GetNatGatewaysOutputArgs{
VpcId: fooNetwork.ID(),
NameRegex: fooNatGateway.Name,
Ids: pulumi.StringArray{
fooNatGateway.ID(),
},
}, nil)
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetZonesArgs;
import com.pulumi.alicloud.vpc.Network;
import com.pulumi.alicloud.vpc.NetworkArgs;
import com.pulumi.alicloud.vpc.NatGateway;
import com.pulumi.alicloud.vpc.NatGatewayArgs;
import com.pulumi.alicloud.vpc.VpcFunctions;
import com.pulumi.alicloud.vpc.inputs.GetNatGatewaysArgs;
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 config = ctx.config();
final var name = config.get("name").orElse("natGatewaysDatasource");
final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableResourceCreation("VSwitch")
.build());
var fooNetwork = new Network("fooNetwork", NetworkArgs.builder()
.vpcName(name)
.cidrBlock("172.16.0.0/12")
.build());
var fooNatGateway = new NatGateway("fooNatGateway", NatGatewayArgs.builder()
.vpcId(fooNetwork.id())
.specification("Small")
.natGatewayName(name)
.build());
final var foo = VpcFunctions.getNatGateways(GetNatGatewaysArgs.builder()
.vpcId(fooNetwork.id())
.nameRegex(fooNatGateway.name())
.ids(fooNatGateway.id())
.build());
}
}
configuration:
name:
type: string
default: natGatewaysDatasource
resources:
fooNetwork:
type: alicloud:vpc:Network
name: foo
properties:
vpcName: ${name}
cidrBlock: 172.16.0.0/12
fooNatGateway:
type: alicloud:vpc:NatGateway
name: foo
properties:
vpcId: ${fooNetwork.id}
specification: Small
natGatewayName: ${name}
variables:
default:
fn::invoke:
function: alicloud:getZones
arguments:
availableResourceCreation: VSwitch
foo:
fn::invoke:
function: alicloud:vpc:getNatGateways
arguments:
vpcId: ${fooNetwork.id}
nameRegex: ${fooNatGateway.name}
ids:
- ${fooNatGateway.id}

Return

A collection of values returned by getNatGateways.

Parameters

argument

A collection of arguments for invoking getNatGateways.


suspend fun getNatGateways(dryRun: Boolean? = null, enableDetails: Boolean? = null, ids: List<String>? = null, nameRegex: String? = null, natGatewayName: String? = null, natType: String? = null, outputFile: String? = null, pageNumber: Int? = null, pageSize: Int? = null, paymentType: String? = null, resourceGroupId: String? = null, specification: String? = null, status: String? = null, tags: Map<String, String>? = null, vpcId: String? = null): GetNatGatewaysResult

Return

A collection of values returned by getNatGateways.

Parameters

dryRun

Specifies whether to only precheck the request.

enableDetails

Default to false. Set it to true can output more details about resource attributes.

ids

A list of NAT gateways IDs.

nameRegex

A regex string to filter nat gateways by name.

natGatewayName

The name of NAT gateway.

natType

The nat type of NAT gateway. Valid values Enhanced and Normal.

outputFile

File name where to save data source results (after running pulumi preview).

pageNumber
pageSize
paymentType

The payment type of NAT gateway. Valid values PayAsYouGo and Subscription.

resourceGroupId

The resource group id of NAT gateway.

specification

The specification of NAT gateway. Valid values Middle, Large, Small and XLarge.1. Default value is Small.

status

The status of NAT gateway. Valid values Available, Converting, Creating, Deleting and Modifying.

tags

The tags of NAT gateway.

vpcId

The ID of the VPC.

See also


Return

A collection of values returned by getNatGateways.

Parameters

argument

Builder for com.pulumi.alicloud.vpc.kotlin.inputs.GetNatGatewaysPlainArgs.

See also