Try AWS Native preview for resources not in the classic version.
aws.ec2.getVpc
Explore with Pulumi AI
Try AWS Native preview for resources not in the classic version.
aws.ec2.Vpc
provides details about a specific VPC.
This resource can prove useful when a module accepts a vpc id as an input variable and needs to, for example, determine the CIDR block of that VPC.
Example Usage
The following example shows how one might accept a VPC id as a variable and use this data source to obtain the data necessary to create a subnet within it.
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as std from "@pulumi/std";
const config = new pulumi.Config();
const vpcId = config.requireObject("vpcId");
const selected = aws.ec2.getVpc({
id: vpcId,
});
const example = new aws.ec2.Subnet("example", {
vpcId: selected.then(selected => selected.id),
availabilityZone: "us-west-2a",
cidrBlock: selected.then(selected => std.cidrsubnet({
input: selected.cidrBlock,
newbits: 4,
netnum: 1,
})).then(invoke => invoke.result),
});
import pulumi
import pulumi_aws as aws
import pulumi_std as std
config = pulumi.Config()
vpc_id = config.require_object("vpcId")
selected = aws.ec2.get_vpc(id=vpc_id)
example = aws.ec2.Subnet("example",
vpc_id=selected.id,
availability_zone="us-west-2a",
cidr_block=std.cidrsubnet(input=selected.cidr_block,
newbits=4,
netnum=1).result)
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi-std/sdk/go/std"
"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, "")
vpcId := cfg.RequireObject("vpcId")
selected, err := ec2.LookupVpc(ctx, &ec2.LookupVpcArgs{
Id: pulumi.StringRef(vpcId),
}, nil)
if err != nil {
return err
}
invokeCidrsubnet, err := std.Cidrsubnet(ctx, &std.CidrsubnetArgs{
Input: selected.CidrBlock,
Newbits: 4,
Netnum: 1,
}, nil)
if err != nil {
return err
}
_, err = ec2.NewSubnet(ctx, "example", &ec2.SubnetArgs{
VpcId: pulumi.String(selected.Id),
AvailabilityZone: pulumi.String("us-west-2a"),
CidrBlock: invokeCidrsubnet.Result,
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var vpcId = config.RequireObject<dynamic>("vpcId");
var selected = Aws.Ec2.GetVpc.Invoke(new()
{
Id = vpcId,
});
var example = new Aws.Ec2.Subnet("example", new()
{
VpcId = selected.Apply(getVpcResult => getVpcResult.Id),
AvailabilityZone = "us-west-2a",
CidrBlock = Std.Cidrsubnet.Invoke(new()
{
Input = selected.Apply(getVpcResult => getVpcResult.CidrBlock),
Newbits = 4,
Netnum = 1,
}).Apply(invoke => invoke.Result),
});
});
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.GetVpcArgs;
import com.pulumi.aws.ec2.Subnet;
import com.pulumi.aws.ec2.SubnetArgs;
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 vpcId = config.get("vpcId");
final var selected = Ec2Functions.getVpc(GetVpcArgs.builder()
.id(vpcId)
.build());
var example = new Subnet("example", SubnetArgs.builder()
.vpcId(selected.applyValue(getVpcResult -> getVpcResult.id()))
.availabilityZone("us-west-2a")
.cidrBlock(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()
.input(selected.applyValue(getVpcResult -> getVpcResult.cidrBlock()))
.newbits(4)
.netnum(1)
.build()).result())
.build());
}
}
configuration:
vpcId:
type: dynamic
resources:
example:
type: aws:ec2:Subnet
properties:
vpcId: ${selected.id}
availabilityZone: us-west-2a
cidrBlock:
fn::invoke:
Function: std:cidrsubnet
Arguments:
input: ${selected.cidrBlock}
newbits: 4
netnum: 1
Return: result
variables:
selected:
fn::invoke:
Function: aws:ec2:getVpc
Arguments:
id: ${vpcId}
Using getVpc
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 getVpc(args: GetVpcArgs, opts?: InvokeOptions): Promise<GetVpcResult>
function getVpcOutput(args: GetVpcOutputArgs, opts?: InvokeOptions): Output<GetVpcResult>
def get_vpc(cidr_block: Optional[str] = None,
default: Optional[bool] = None,
dhcp_options_id: Optional[str] = None,
filters: Optional[Sequence[GetVpcFilter]] = None,
id: Optional[str] = None,
state: Optional[str] = None,
tags: Optional[Mapping[str, str]] = None,
opts: Optional[InvokeOptions] = None) -> GetVpcResult
def get_vpc_output(cidr_block: Optional[pulumi.Input[str]] = None,
default: Optional[pulumi.Input[bool]] = None,
dhcp_options_id: Optional[pulumi.Input[str]] = None,
filters: Optional[pulumi.Input[Sequence[pulumi.Input[GetVpcFilterArgs]]]] = None,
id: Optional[pulumi.Input[str]] = None,
state: Optional[pulumi.Input[str]] = None,
tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetVpcResult]
func LookupVpc(ctx *Context, args *LookupVpcArgs, opts ...InvokeOption) (*LookupVpcResult, error)
func LookupVpcOutput(ctx *Context, args *LookupVpcOutputArgs, opts ...InvokeOption) LookupVpcResultOutput
> Note: This function is named LookupVpc
in the Go SDK.
public static class GetVpc
{
public static Task<GetVpcResult> InvokeAsync(GetVpcArgs args, InvokeOptions? opts = null)
public static Output<GetVpcResult> Invoke(GetVpcInvokeArgs args, InvokeOptions? opts = null)
}
public static CompletableFuture<GetVpcResult> getVpc(GetVpcArgs args, InvokeOptions options)
// Output-based functions aren't available in Java yet
fn::invoke:
function: aws:ec2/getVpc:getVpc
arguments:
# arguments dictionary
The following arguments are supported:
- Cidr
Block string - Cidr block of the desired VPC.
- Default bool
- Boolean constraint on whether the desired VPC is the default VPC for the region.
- Dhcp
Options stringId - DHCP options id of the desired VPC.
- Filters
List<Get
Vpc Filter> - Custom filter block as described below.
- Id string
- ID of the specific VPC to retrieve.
- State string
- Current state of the desired VPC.
Can be either
"pending"
or"available"
. - Dictionary<string, string>
Map of tags, each pair of which must exactly match a pair on the desired VPC.
More complex filters can be expressed using one or more
filter
sub-blocks, which take the following arguments:
- Cidr
Block string - Cidr block of the desired VPC.
- Default bool
- Boolean constraint on whether the desired VPC is the default VPC for the region.
- Dhcp
Options stringId - DHCP options id of the desired VPC.
- Filters
[]Get
Vpc Filter - Custom filter block as described below.
- Id string
- ID of the specific VPC to retrieve.
- State string
- Current state of the desired VPC.
Can be either
"pending"
or"available"
. - map[string]string
Map of tags, each pair of which must exactly match a pair on the desired VPC.
More complex filters can be expressed using one or more
filter
sub-blocks, which take the following arguments:
- cidr
Block String - Cidr block of the desired VPC.
- default_ Boolean
- Boolean constraint on whether the desired VPC is the default VPC for the region.
- dhcp
Options StringId - DHCP options id of the desired VPC.
- filters
List<Get
Vpc Filter> - Custom filter block as described below.
- id String
- ID of the specific VPC to retrieve.
- state String
- Current state of the desired VPC.
Can be either
"pending"
or"available"
. - Map<String,String>
Map of tags, each pair of which must exactly match a pair on the desired VPC.
More complex filters can be expressed using one or more
filter
sub-blocks, which take the following arguments:
- cidr
Block string - Cidr block of the desired VPC.
- default boolean
- Boolean constraint on whether the desired VPC is the default VPC for the region.
- dhcp
Options stringId - DHCP options id of the desired VPC.
- filters
Get
Vpc Filter[] - Custom filter block as described below.
- id string
- ID of the specific VPC to retrieve.
- state string
- Current state of the desired VPC.
Can be either
"pending"
or"available"
. - {[key: string]: string}
Map of tags, each pair of which must exactly match a pair on the desired VPC.
More complex filters can be expressed using one or more
filter
sub-blocks, which take the following arguments:
- cidr_
block str - Cidr block of the desired VPC.
- default bool
- Boolean constraint on whether the desired VPC is the default VPC for the region.
- dhcp_
options_ strid - DHCP options id of the desired VPC.
- filters
Sequence[Get
Vpc Filter] - Custom filter block as described below.
- id str
- ID of the specific VPC to retrieve.
- state str
- Current state of the desired VPC.
Can be either
"pending"
or"available"
. - Mapping[str, str]
Map of tags, each pair of which must exactly match a pair on the desired VPC.
More complex filters can be expressed using one or more
filter
sub-blocks, which take the following arguments:
- cidr
Block String - Cidr block of the desired VPC.
- default Boolean
- Boolean constraint on whether the desired VPC is the default VPC for the region.
- dhcp
Options StringId - DHCP options id of the desired VPC.
- filters List<Property Map>
- Custom filter block as described below.
- id String
- ID of the specific VPC to retrieve.
- state String
- Current state of the desired VPC.
Can be either
"pending"
or"available"
. - Map<String>
Map of tags, each pair of which must exactly match a pair on the desired VPC.
More complex filters can be expressed using one or more
filter
sub-blocks, which take the following arguments:
getVpc Result
The following output properties are available:
- Arn string
- ARN of VPC
- Cidr
Block string - CIDR block for the association.
- Cidr
Block List<GetAssociations Vpc Cidr Block Association> - Default bool
- Dhcp
Options stringId - Enable
Dns boolHostnames - Whether or not the VPC has DNS hostname support
- Enable
Dns boolSupport - Whether or not the VPC has DNS support
- Enable
Network boolAddress Usage Metrics - Whether Network Address Usage metrics are enabled for your VPC
- Id string
- Instance
Tenancy string - Allowed tenancy of instances launched into the
selected VPC. May be any of
"default"
,"dedicated"
, or"host"
. - Ipv6Association
Id string - Association ID for the IPv6 CIDR block.
- Ipv6Cidr
Block string - IPv6 CIDR block.
- Main
Route stringTable Id - ID of the main route table associated with this VPC.
- Owner
Id string - ID of the AWS account that owns the VPC.
- State string
- State of the association.
- Dictionary<string, string>
- Filters
List<Get
Vpc Filter>
- Arn string
- ARN of VPC
- Cidr
Block string - CIDR block for the association.
- Cidr
Block []GetAssociations Vpc Cidr Block Association - Default bool
- Dhcp
Options stringId - Enable
Dns boolHostnames - Whether or not the VPC has DNS hostname support
- Enable
Dns boolSupport - Whether or not the VPC has DNS support
- Enable
Network boolAddress Usage Metrics - Whether Network Address Usage metrics are enabled for your VPC
- Id string
- Instance
Tenancy string - Allowed tenancy of instances launched into the
selected VPC. May be any of
"default"
,"dedicated"
, or"host"
. - Ipv6Association
Id string - Association ID for the IPv6 CIDR block.
- Ipv6Cidr
Block string - IPv6 CIDR block.
- Main
Route stringTable Id - ID of the main route table associated with this VPC.
- Owner
Id string - ID of the AWS account that owns the VPC.
- State string
- State of the association.
- map[string]string
- Filters
[]Get
Vpc Filter
- arn String
- ARN of VPC
- cidr
Block String - CIDR block for the association.
- cidr
Block List<GetAssociations Vpc Cidr Block Association> - default_ Boolean
- dhcp
Options StringId - enable
Dns BooleanHostnames - Whether or not the VPC has DNS hostname support
- enable
Dns BooleanSupport - Whether or not the VPC has DNS support
- enable
Network BooleanAddress Usage Metrics - Whether Network Address Usage metrics are enabled for your VPC
- id String
- instance
Tenancy String - Allowed tenancy of instances launched into the
selected VPC. May be any of
"default"
,"dedicated"
, or"host"
. - ipv6Association
Id String - Association ID for the IPv6 CIDR block.
- ipv6Cidr
Block String - IPv6 CIDR block.
- main
Route StringTable Id - ID of the main route table associated with this VPC.
- owner
Id String - ID of the AWS account that owns the VPC.
- state String
- State of the association.
- Map<String,String>
- filters
List<Get
Vpc Filter>
- arn string
- ARN of VPC
- cidr
Block string - CIDR block for the association.
- cidr
Block GetAssociations Vpc Cidr Block Association[] - default boolean
- dhcp
Options stringId - enable
Dns booleanHostnames - Whether or not the VPC has DNS hostname support
- enable
Dns booleanSupport - Whether or not the VPC has DNS support
- enable
Network booleanAddress Usage Metrics - Whether Network Address Usage metrics are enabled for your VPC
- id string
- instance
Tenancy string - Allowed tenancy of instances launched into the
selected VPC. May be any of
"default"
,"dedicated"
, or"host"
. - ipv6Association
Id string - Association ID for the IPv6 CIDR block.
- ipv6Cidr
Block string - IPv6 CIDR block.
- main
Route stringTable Id - ID of the main route table associated with this VPC.
- owner
Id string - ID of the AWS account that owns the VPC.
- state string
- State of the association.
- {[key: string]: string}
- filters
Get
Vpc Filter[]
- arn str
- ARN of VPC
- cidr_
block str - CIDR block for the association.
- cidr_
block_ Sequence[Getassociations Vpc Cidr Block Association] - default bool
- dhcp_
options_ strid - enable_
dns_ boolhostnames - Whether or not the VPC has DNS hostname support
- enable_
dns_ boolsupport - Whether or not the VPC has DNS support
- enable_
network_ booladdress_ usage_ metrics - Whether Network Address Usage metrics are enabled for your VPC
- id str
- instance_
tenancy str - Allowed tenancy of instances launched into the
selected VPC. May be any of
"default"
,"dedicated"
, or"host"
. - ipv6_
association_ strid - Association ID for the IPv6 CIDR block.
- ipv6_
cidr_ strblock - IPv6 CIDR block.
- main_
route_ strtable_ id - ID of the main route table associated with this VPC.
- owner_
id str - ID of the AWS account that owns the VPC.
- state str
- State of the association.
- Mapping[str, str]
- filters
Sequence[Get
Vpc Filter]
- arn String
- ARN of VPC
- cidr
Block String - CIDR block for the association.
- cidr
Block List<Property Map>Associations - default Boolean
- dhcp
Options StringId - enable
Dns BooleanHostnames - Whether or not the VPC has DNS hostname support
- enable
Dns BooleanSupport - Whether or not the VPC has DNS support
- enable
Network BooleanAddress Usage Metrics - Whether Network Address Usage metrics are enabled for your VPC
- id String
- instance
Tenancy String - Allowed tenancy of instances launched into the
selected VPC. May be any of
"default"
,"dedicated"
, or"host"
. - ipv6Association
Id String - Association ID for the IPv6 CIDR block.
- ipv6Cidr
Block String - IPv6 CIDR block.
- main
Route StringTable Id - ID of the main route table associated with this VPC.
- owner
Id String - ID of the AWS account that owns the VPC.
- state String
- State of the association.
- Map<String>
- filters List<Property Map>
Supporting Types
GetVpcCidrBlockAssociation
- Association
Id string - Association ID for the IPv4 CIDR block.
- Cidr
Block string - Cidr block of the desired VPC.
- State string
- Current state of the desired VPC.
Can be either
"pending"
or"available"
.
- Association
Id string - Association ID for the IPv4 CIDR block.
- Cidr
Block string - Cidr block of the desired VPC.
- State string
- Current state of the desired VPC.
Can be either
"pending"
or"available"
.
- association
Id String - Association ID for the IPv4 CIDR block.
- cidr
Block String - Cidr block of the desired VPC.
- state String
- Current state of the desired VPC.
Can be either
"pending"
or"available"
.
- association
Id string - Association ID for the IPv4 CIDR block.
- cidr
Block string - Cidr block of the desired VPC.
- state string
- Current state of the desired VPC.
Can be either
"pending"
or"available"
.
- association_
id str - Association ID for the IPv4 CIDR block.
- cidr_
block str - Cidr block of the desired VPC.
- state str
- Current state of the desired VPC.
Can be either
"pending"
or"available"
.
- association
Id String - Association ID for the IPv4 CIDR block.
- cidr
Block String - Cidr block of the desired VPC.
- state String
- Current state of the desired VPC.
Can be either
"pending"
or"available"
.
GetVpcFilter
- Name string
- Name of the field to filter by, as defined by the underlying AWS API.
- Values List<string>
- Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches.
- Name string
- Name of the field to filter by, as defined by the underlying AWS API.
- Values []string
- Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches.
- name String
- Name of the field to filter by, as defined by the underlying AWS API.
- values List<String>
- Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches.
- name string
- Name of the field to filter by, as defined by the underlying AWS API.
- values string[]
- Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches.
- name str
- Name of the field to filter by, as defined by the underlying AWS API.
- values Sequence[str]
- Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches.
- name String
- Name of the field to filter by, as defined by the underlying AWS API.
- values List<String>
- Set of values that are accepted for the given field. A VPC 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.
Try AWS Native preview for resources not in the classic version.