ec2

package
v2.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2024 License: Apache-2.0 Imports: 8 Imported by: 3

Documentation

Index

Constants

View Source
const (
	// Do not create any NAT Gateways. Resources in private subnets will not be able to access the internet.
	NatGatewayStrategyNone = NatGatewayStrategy("None")
	// Create a single NAT Gateway for the entire VPC. This configuration is not recommended for production infrastructure as it creates a single point of failure.
	NatGatewayStrategySingle = NatGatewayStrategy("Single")
	// Create a NAT Gateway in each availability zone. This is the recommended configuration for production infrastructure.
	NatGatewayStrategyOnePerAz = NatGatewayStrategy("OnePerAz")
)
View Source
const (
	// Group private subnets first, followed by public subnets, followed by isolated subnets.
	SubnetAllocationStrategyLegacy = SubnetAllocationStrategy("Legacy")
	// Order remains as specified by specs, allowing gaps where required.
	SubnetAllocationStrategyAuto = SubnetAllocationStrategy("Auto")
	// Whole range of VPC must be accounted for, using "Unused" spec types for deliberate gaps.
	SubnetAllocationStrategyExact = SubnetAllocationStrategy("Exact")
)
View Source
const (
	// A subnet whose hosts can directly communicate with the internet.
	SubnetTypePublic = SubnetType("Public")
	// A subnet whose hosts can not directly communicate with the internet, but can initiate outbound network traffic via a NAT Gateway.
	SubnetTypePrivate = SubnetType("Private")
	// A subnet whose hosts have no connectivity with the internet.
	SubnetTypeIsolated = SubnetType("Isolated")
	// A subnet range which is reserved, but no subnet will be created.
	SubnetTypeUnused = SubnetType("Unused")
)

Variables

This section is empty.

Functions

This section is empty.

Types

type DefaultVpc

type DefaultVpc struct {
	pulumi.ResourceState

	PrivateSubnetIds pulumi.StringArrayOutput `pulumi:"privateSubnetIds"`
	PublicSubnetIds  pulumi.StringArrayOutput `pulumi:"publicSubnetIds"`
	// The VPC ID for the default VPC
	VpcId pulumi.StringOutput `pulumi:"vpcId"`
}

Pseudo resource representing the default VPC and associated subnets for an account and region. This does not create any resources. This will be replaced with `getDefaultVpc` in the future.

func NewDefaultVpc

func NewDefaultVpc(ctx *pulumi.Context,
	name string, args *DefaultVpcArgs, opts ...pulumi.ResourceOption) (*DefaultVpc, error)

NewDefaultVpc registers a new resource with the given unique name, arguments, and options.

func (*DefaultVpc) ElementType

func (*DefaultVpc) ElementType() reflect.Type

func (*DefaultVpc) ToDefaultVpcOutput

func (i *DefaultVpc) ToDefaultVpcOutput() DefaultVpcOutput

func (*DefaultVpc) ToDefaultVpcOutputWithContext

func (i *DefaultVpc) ToDefaultVpcOutputWithContext(ctx context.Context) DefaultVpcOutput

type DefaultVpcArgs

type DefaultVpcArgs struct {
}

The set of arguments for constructing a DefaultVpc resource.

func (DefaultVpcArgs) ElementType

func (DefaultVpcArgs) ElementType() reflect.Type

type DefaultVpcArray

type DefaultVpcArray []DefaultVpcInput

func (DefaultVpcArray) ElementType

func (DefaultVpcArray) ElementType() reflect.Type

func (DefaultVpcArray) ToDefaultVpcArrayOutput

func (i DefaultVpcArray) ToDefaultVpcArrayOutput() DefaultVpcArrayOutput

func (DefaultVpcArray) ToDefaultVpcArrayOutputWithContext

func (i DefaultVpcArray) ToDefaultVpcArrayOutputWithContext(ctx context.Context) DefaultVpcArrayOutput

type DefaultVpcArrayInput

type DefaultVpcArrayInput interface {
	pulumi.Input

	ToDefaultVpcArrayOutput() DefaultVpcArrayOutput
	ToDefaultVpcArrayOutputWithContext(context.Context) DefaultVpcArrayOutput
}

DefaultVpcArrayInput is an input type that accepts DefaultVpcArray and DefaultVpcArrayOutput values. You can construct a concrete instance of `DefaultVpcArrayInput` via:

DefaultVpcArray{ DefaultVpcArgs{...} }

type DefaultVpcArrayOutput

type DefaultVpcArrayOutput struct{ *pulumi.OutputState }

func (DefaultVpcArrayOutput) ElementType

func (DefaultVpcArrayOutput) ElementType() reflect.Type

func (DefaultVpcArrayOutput) Index

func (DefaultVpcArrayOutput) ToDefaultVpcArrayOutput

func (o DefaultVpcArrayOutput) ToDefaultVpcArrayOutput() DefaultVpcArrayOutput

func (DefaultVpcArrayOutput) ToDefaultVpcArrayOutputWithContext

func (o DefaultVpcArrayOutput) ToDefaultVpcArrayOutputWithContext(ctx context.Context) DefaultVpcArrayOutput

type DefaultVpcInput

type DefaultVpcInput interface {
	pulumi.Input

	ToDefaultVpcOutput() DefaultVpcOutput
	ToDefaultVpcOutputWithContext(ctx context.Context) DefaultVpcOutput
}

type DefaultVpcMap

type DefaultVpcMap map[string]DefaultVpcInput

func (DefaultVpcMap) ElementType

func (DefaultVpcMap) ElementType() reflect.Type

func (DefaultVpcMap) ToDefaultVpcMapOutput

func (i DefaultVpcMap) ToDefaultVpcMapOutput() DefaultVpcMapOutput

func (DefaultVpcMap) ToDefaultVpcMapOutputWithContext

func (i DefaultVpcMap) ToDefaultVpcMapOutputWithContext(ctx context.Context) DefaultVpcMapOutput

type DefaultVpcMapInput

type DefaultVpcMapInput interface {
	pulumi.Input

	ToDefaultVpcMapOutput() DefaultVpcMapOutput
	ToDefaultVpcMapOutputWithContext(context.Context) DefaultVpcMapOutput
}

DefaultVpcMapInput is an input type that accepts DefaultVpcMap and DefaultVpcMapOutput values. You can construct a concrete instance of `DefaultVpcMapInput` via:

DefaultVpcMap{ "key": DefaultVpcArgs{...} }

type DefaultVpcMapOutput

type DefaultVpcMapOutput struct{ *pulumi.OutputState }

func (DefaultVpcMapOutput) ElementType

func (DefaultVpcMapOutput) ElementType() reflect.Type

func (DefaultVpcMapOutput) MapIndex

func (DefaultVpcMapOutput) ToDefaultVpcMapOutput

func (o DefaultVpcMapOutput) ToDefaultVpcMapOutput() DefaultVpcMapOutput

func (DefaultVpcMapOutput) ToDefaultVpcMapOutputWithContext

func (o DefaultVpcMapOutput) ToDefaultVpcMapOutputWithContext(ctx context.Context) DefaultVpcMapOutput

type DefaultVpcOutput

type DefaultVpcOutput struct{ *pulumi.OutputState }

func (DefaultVpcOutput) ElementType

func (DefaultVpcOutput) ElementType() reflect.Type

func (DefaultVpcOutput) PrivateSubnetIds

func (o DefaultVpcOutput) PrivateSubnetIds() pulumi.StringArrayOutput

func (DefaultVpcOutput) PublicSubnetIds

func (o DefaultVpcOutput) PublicSubnetIds() pulumi.StringArrayOutput

func (DefaultVpcOutput) ToDefaultVpcOutput

func (o DefaultVpcOutput) ToDefaultVpcOutput() DefaultVpcOutput

func (DefaultVpcOutput) ToDefaultVpcOutputWithContext

func (o DefaultVpcOutput) ToDefaultVpcOutputWithContext(ctx context.Context) DefaultVpcOutput

func (DefaultVpcOutput) VpcId

The VPC ID for the default VPC

type GetDefaultVpcArgs

type GetDefaultVpcArgs struct {
}

Arguments for getting the default VPC

type GetDefaultVpcOutputArgs added in v2.1.0

type GetDefaultVpcOutputArgs struct {
}

Arguments for getting the default VPC

func (GetDefaultVpcOutputArgs) ElementType added in v2.1.0

func (GetDefaultVpcOutputArgs) ElementType() reflect.Type

type GetDefaultVpcResult

type GetDefaultVpcResult struct {
	PrivateSubnetIds []string `pulumi:"privateSubnetIds"`
	PublicSubnetIds  []string `pulumi:"publicSubnetIds"`
	// The VPC ID for the default VPC
	VpcId string `pulumi:"vpcId"`
}

Outputs from the default VPC configuration

func GetDefaultVpc deprecated

func GetDefaultVpc(ctx *pulumi.Context, args *GetDefaultVpcArgs, opts ...pulumi.InvokeOption) (*GetDefaultVpcResult, error)

[NOT YET IMPLEMENTED] Get the Default VPC for a region.

Deprecated: Waiting for https://github.com/pulumi/pulumi/issues/7583. Use the DefaultVpc resource until resolved.

type GetDefaultVpcResultOutput added in v2.1.0

type GetDefaultVpcResultOutput struct{ *pulumi.OutputState }

Outputs from the default VPC configuration

func GetDefaultVpcOutput added in v2.1.0

func GetDefaultVpcOutput(ctx *pulumi.Context, args GetDefaultVpcOutputArgs, opts ...pulumi.InvokeOption) GetDefaultVpcResultOutput

func (GetDefaultVpcResultOutput) ElementType added in v2.1.0

func (GetDefaultVpcResultOutput) ElementType() reflect.Type

func (GetDefaultVpcResultOutput) PrivateSubnetIds added in v2.1.0

func (o GetDefaultVpcResultOutput) PrivateSubnetIds() pulumi.StringArrayOutput

func (GetDefaultVpcResultOutput) PublicSubnetIds added in v2.1.0

func (GetDefaultVpcResultOutput) ToGetDefaultVpcResultOutput added in v2.1.0

func (o GetDefaultVpcResultOutput) ToGetDefaultVpcResultOutput() GetDefaultVpcResultOutput

func (GetDefaultVpcResultOutput) ToGetDefaultVpcResultOutputWithContext added in v2.1.0

func (o GetDefaultVpcResultOutput) ToGetDefaultVpcResultOutputWithContext(ctx context.Context) GetDefaultVpcResultOutput

func (GetDefaultVpcResultOutput) VpcId added in v2.1.0

The VPC ID for the default VPC

type NatGatewayConfiguration

type NatGatewayConfiguration struct {
	// A list of EIP allocation IDs to assign to the NAT Gateways. Optional. If specified, the number of supplied values must match the chosen strategy (either one, or the number of availability zones).
	ElasticIpAllocationIds []string `pulumi:"elasticIpAllocationIds"`
	// The strategy for deploying NAT Gateways.
	Strategy NatGatewayStrategy `pulumi:"strategy"`
}

Configuration for NAT Gateways.

type NatGatewayConfigurationArgs

type NatGatewayConfigurationArgs struct {
	// A list of EIP allocation IDs to assign to the NAT Gateways. Optional. If specified, the number of supplied values must match the chosen strategy (either one, or the number of availability zones).
	ElasticIpAllocationIds []pulumi.StringInput `pulumi:"elasticIpAllocationIds"`
	// The strategy for deploying NAT Gateways.
	Strategy NatGatewayStrategy `pulumi:"strategy"`
}

Configuration for NAT Gateways.

func (NatGatewayConfigurationArgs) ElementType

func (NatGatewayConfigurationArgs) ToNatGatewayConfigurationOutput

func (i NatGatewayConfigurationArgs) ToNatGatewayConfigurationOutput() NatGatewayConfigurationOutput

func (NatGatewayConfigurationArgs) ToNatGatewayConfigurationOutputWithContext

func (i NatGatewayConfigurationArgs) ToNatGatewayConfigurationOutputWithContext(ctx context.Context) NatGatewayConfigurationOutput

func (NatGatewayConfigurationArgs) ToNatGatewayConfigurationPtrOutput

func (i NatGatewayConfigurationArgs) ToNatGatewayConfigurationPtrOutput() NatGatewayConfigurationPtrOutput

func (NatGatewayConfigurationArgs) ToNatGatewayConfigurationPtrOutputWithContext

func (i NatGatewayConfigurationArgs) ToNatGatewayConfigurationPtrOutputWithContext(ctx context.Context) NatGatewayConfigurationPtrOutput

type NatGatewayConfigurationInput

type NatGatewayConfigurationInput interface {
	pulumi.Input

	ToNatGatewayConfigurationOutput() NatGatewayConfigurationOutput
	ToNatGatewayConfigurationOutputWithContext(context.Context) NatGatewayConfigurationOutput
}

NatGatewayConfigurationInput is an input type that accepts NatGatewayConfigurationArgs and NatGatewayConfigurationOutput values. You can construct a concrete instance of `NatGatewayConfigurationInput` via:

NatGatewayConfigurationArgs{...}

type NatGatewayConfigurationOutput

type NatGatewayConfigurationOutput struct{ *pulumi.OutputState }

Configuration for NAT Gateways.

func (NatGatewayConfigurationOutput) ElasticIpAllocationIds

func (o NatGatewayConfigurationOutput) ElasticIpAllocationIds() pulumi.StringArrayOutput

A list of EIP allocation IDs to assign to the NAT Gateways. Optional. If specified, the number of supplied values must match the chosen strategy (either one, or the number of availability zones).

func (NatGatewayConfigurationOutput) ElementType

func (NatGatewayConfigurationOutput) Strategy

The strategy for deploying NAT Gateways.

func (NatGatewayConfigurationOutput) ToNatGatewayConfigurationOutput

func (o NatGatewayConfigurationOutput) ToNatGatewayConfigurationOutput() NatGatewayConfigurationOutput

func (NatGatewayConfigurationOutput) ToNatGatewayConfigurationOutputWithContext

func (o NatGatewayConfigurationOutput) ToNatGatewayConfigurationOutputWithContext(ctx context.Context) NatGatewayConfigurationOutput

func (NatGatewayConfigurationOutput) ToNatGatewayConfigurationPtrOutput

func (o NatGatewayConfigurationOutput) ToNatGatewayConfigurationPtrOutput() NatGatewayConfigurationPtrOutput

func (NatGatewayConfigurationOutput) ToNatGatewayConfigurationPtrOutputWithContext

func (o NatGatewayConfigurationOutput) ToNatGatewayConfigurationPtrOutputWithContext(ctx context.Context) NatGatewayConfigurationPtrOutput

type NatGatewayConfigurationPtrInput

type NatGatewayConfigurationPtrInput interface {
	pulumi.Input

	ToNatGatewayConfigurationPtrOutput() NatGatewayConfigurationPtrOutput
	ToNatGatewayConfigurationPtrOutputWithContext(context.Context) NatGatewayConfigurationPtrOutput
}

NatGatewayConfigurationPtrInput is an input type that accepts NatGatewayConfigurationArgs, NatGatewayConfigurationPtr and NatGatewayConfigurationPtrOutput values. You can construct a concrete instance of `NatGatewayConfigurationPtrInput` via:

        NatGatewayConfigurationArgs{...}

or:

        nil

type NatGatewayConfigurationPtrOutput

type NatGatewayConfigurationPtrOutput struct{ *pulumi.OutputState }

func (NatGatewayConfigurationPtrOutput) ElasticIpAllocationIds

func (o NatGatewayConfigurationPtrOutput) ElasticIpAllocationIds() pulumi.StringArrayOutput

A list of EIP allocation IDs to assign to the NAT Gateways. Optional. If specified, the number of supplied values must match the chosen strategy (either one, or the number of availability zones).

func (NatGatewayConfigurationPtrOutput) Elem

func (NatGatewayConfigurationPtrOutput) ElementType

func (NatGatewayConfigurationPtrOutput) Strategy

The strategy for deploying NAT Gateways.

func (NatGatewayConfigurationPtrOutput) ToNatGatewayConfigurationPtrOutput

func (o NatGatewayConfigurationPtrOutput) ToNatGatewayConfigurationPtrOutput() NatGatewayConfigurationPtrOutput

func (NatGatewayConfigurationPtrOutput) ToNatGatewayConfigurationPtrOutputWithContext

func (o NatGatewayConfigurationPtrOutput) ToNatGatewayConfigurationPtrOutputWithContext(ctx context.Context) NatGatewayConfigurationPtrOutput

type NatGatewayStrategy

type NatGatewayStrategy string

A strategy for creating NAT Gateways for private subnets within a VPC.

func (NatGatewayStrategy) ElementType

func (NatGatewayStrategy) ElementType() reflect.Type

func (NatGatewayStrategy) ToNatGatewayStrategyOutput

func (e NatGatewayStrategy) ToNatGatewayStrategyOutput() NatGatewayStrategyOutput

func (NatGatewayStrategy) ToNatGatewayStrategyOutputWithContext

func (e NatGatewayStrategy) ToNatGatewayStrategyOutputWithContext(ctx context.Context) NatGatewayStrategyOutput

func (NatGatewayStrategy) ToNatGatewayStrategyPtrOutput

func (e NatGatewayStrategy) ToNatGatewayStrategyPtrOutput() NatGatewayStrategyPtrOutput

func (NatGatewayStrategy) ToNatGatewayStrategyPtrOutputWithContext

func (e NatGatewayStrategy) ToNatGatewayStrategyPtrOutputWithContext(ctx context.Context) NatGatewayStrategyPtrOutput

func (NatGatewayStrategy) ToStringOutput

func (e NatGatewayStrategy) ToStringOutput() pulumi.StringOutput

func (NatGatewayStrategy) ToStringOutputWithContext

func (e NatGatewayStrategy) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (NatGatewayStrategy) ToStringPtrOutput

func (e NatGatewayStrategy) ToStringPtrOutput() pulumi.StringPtrOutput

func (NatGatewayStrategy) ToStringPtrOutputWithContext

func (e NatGatewayStrategy) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type NatGatewayStrategyInput

type NatGatewayStrategyInput interface {
	pulumi.Input

	ToNatGatewayStrategyOutput() NatGatewayStrategyOutput
	ToNatGatewayStrategyOutputWithContext(context.Context) NatGatewayStrategyOutput
}

NatGatewayStrategyInput is an input type that accepts values of the NatGatewayStrategy enum A concrete instance of `NatGatewayStrategyInput` can be one of the following:

NatGatewayStrategyNone
NatGatewayStrategySingle
NatGatewayStrategyOnePerAz

type NatGatewayStrategyOutput

type NatGatewayStrategyOutput struct{ *pulumi.OutputState }

func (NatGatewayStrategyOutput) ElementType

func (NatGatewayStrategyOutput) ElementType() reflect.Type

func (NatGatewayStrategyOutput) ToNatGatewayStrategyOutput

func (o NatGatewayStrategyOutput) ToNatGatewayStrategyOutput() NatGatewayStrategyOutput

func (NatGatewayStrategyOutput) ToNatGatewayStrategyOutputWithContext

func (o NatGatewayStrategyOutput) ToNatGatewayStrategyOutputWithContext(ctx context.Context) NatGatewayStrategyOutput

func (NatGatewayStrategyOutput) ToNatGatewayStrategyPtrOutput

func (o NatGatewayStrategyOutput) ToNatGatewayStrategyPtrOutput() NatGatewayStrategyPtrOutput

func (NatGatewayStrategyOutput) ToNatGatewayStrategyPtrOutputWithContext

func (o NatGatewayStrategyOutput) ToNatGatewayStrategyPtrOutputWithContext(ctx context.Context) NatGatewayStrategyPtrOutput

func (NatGatewayStrategyOutput) ToStringOutput

func (o NatGatewayStrategyOutput) ToStringOutput() pulumi.StringOutput

func (NatGatewayStrategyOutput) ToStringOutputWithContext

func (o NatGatewayStrategyOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (NatGatewayStrategyOutput) ToStringPtrOutput

func (o NatGatewayStrategyOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (NatGatewayStrategyOutput) ToStringPtrOutputWithContext

func (o NatGatewayStrategyOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type NatGatewayStrategyPtrInput

type NatGatewayStrategyPtrInput interface {
	pulumi.Input

	ToNatGatewayStrategyPtrOutput() NatGatewayStrategyPtrOutput
	ToNatGatewayStrategyPtrOutputWithContext(context.Context) NatGatewayStrategyPtrOutput
}

func NatGatewayStrategyPtr

func NatGatewayStrategyPtr(v string) NatGatewayStrategyPtrInput

type NatGatewayStrategyPtrOutput

type NatGatewayStrategyPtrOutput struct{ *pulumi.OutputState }

func (NatGatewayStrategyPtrOutput) Elem

func (NatGatewayStrategyPtrOutput) ElementType

func (NatGatewayStrategyPtrOutput) ToNatGatewayStrategyPtrOutput

func (o NatGatewayStrategyPtrOutput) ToNatGatewayStrategyPtrOutput() NatGatewayStrategyPtrOutput

func (NatGatewayStrategyPtrOutput) ToNatGatewayStrategyPtrOutputWithContext

func (o NatGatewayStrategyPtrOutput) ToNatGatewayStrategyPtrOutputWithContext(ctx context.Context) NatGatewayStrategyPtrOutput

func (NatGatewayStrategyPtrOutput) ToStringPtrOutput

func (o NatGatewayStrategyPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (NatGatewayStrategyPtrOutput) ToStringPtrOutputWithContext

func (o NatGatewayStrategyPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type ResolvedSubnetSpec added in v2.2.0

type ResolvedSubnetSpec struct {
	// An optional list of CIDR blocks to assign to the subnet spec for each AZ. If specified, the count must match the number of AZs being used for the VPC, and must also be specified for all other subnet specs.
	CidrBlocks []string `pulumi:"cidrBlocks"`
	// The netmask for the subnet's CIDR block. This is optional, the default value is inferred from the `cidrMask`, `cidrBlocks` or based on an even distribution of available space from the VPC's CIDR block after being divided evenly by availability zone.
	CidrMask *int `pulumi:"cidrMask"`
	// The subnet's name. Will be templated upon creation.
	Name *string `pulumi:"name"`
	// Optional size of the subnet's CIDR block - the number of hosts. This value must be a power of 2 (e.g. 256, 512, 1024, etc.). This is optional, the default value is inferred from the `cidrMask`, `cidrBlocks` or based on an even distribution of available space from the VPC's CIDR block after being divided evenly by availability zone.
	Size *int `pulumi:"size"`
	// The type of subnet.
	Type SubnetType `pulumi:"type"`
}

Configuration for a VPC subnet spec.

type ResolvedSubnetSpecArrayOutput added in v2.2.0

type ResolvedSubnetSpecArrayOutput struct{ *pulumi.OutputState }

func (ResolvedSubnetSpecArrayOutput) ElementType added in v2.2.0

func (ResolvedSubnetSpecArrayOutput) Index added in v2.2.0

func (ResolvedSubnetSpecArrayOutput) ToResolvedSubnetSpecArrayOutput added in v2.2.0

func (o ResolvedSubnetSpecArrayOutput) ToResolvedSubnetSpecArrayOutput() ResolvedSubnetSpecArrayOutput

func (ResolvedSubnetSpecArrayOutput) ToResolvedSubnetSpecArrayOutputWithContext added in v2.2.0

func (o ResolvedSubnetSpecArrayOutput) ToResolvedSubnetSpecArrayOutputWithContext(ctx context.Context) ResolvedSubnetSpecArrayOutput

type ResolvedSubnetSpecOutput added in v2.2.0

type ResolvedSubnetSpecOutput struct{ *pulumi.OutputState }

Configuration for a VPC subnet spec.

func (ResolvedSubnetSpecOutput) CidrBlocks added in v2.2.0

An optional list of CIDR blocks to assign to the subnet spec for each AZ. If specified, the count must match the number of AZs being used for the VPC, and must also be specified for all other subnet specs.

func (ResolvedSubnetSpecOutput) CidrMask added in v2.2.0

The netmask for the subnet's CIDR block. This is optional, the default value is inferred from the `cidrMask`, `cidrBlocks` or based on an even distribution of available space from the VPC's CIDR block after being divided evenly by availability zone.

func (ResolvedSubnetSpecOutput) ElementType added in v2.2.0

func (ResolvedSubnetSpecOutput) ElementType() reflect.Type

func (ResolvedSubnetSpecOutput) Name added in v2.2.0

The subnet's name. Will be templated upon creation.

func (ResolvedSubnetSpecOutput) Size added in v2.2.0

Optional size of the subnet's CIDR block - the number of hosts. This value must be a power of 2 (e.g. 256, 512, 1024, etc.). This is optional, the default value is inferred from the `cidrMask`, `cidrBlocks` or based on an even distribution of available space from the VPC's CIDR block after being divided evenly by availability zone.

func (ResolvedSubnetSpecOutput) ToResolvedSubnetSpecOutput added in v2.2.0

func (o ResolvedSubnetSpecOutput) ToResolvedSubnetSpecOutput() ResolvedSubnetSpecOutput

func (ResolvedSubnetSpecOutput) ToResolvedSubnetSpecOutputWithContext added in v2.2.0

func (o ResolvedSubnetSpecOutput) ToResolvedSubnetSpecOutputWithContext(ctx context.Context) ResolvedSubnetSpecOutput

func (ResolvedSubnetSpecOutput) Type added in v2.2.0

The type of subnet.

type SubnetAllocationStrategy added in v2.2.0

type SubnetAllocationStrategy string

Strategy for calculating subnet ranges from the subnet specifications.

func (SubnetAllocationStrategy) ElementType added in v2.2.0

func (SubnetAllocationStrategy) ElementType() reflect.Type

func (SubnetAllocationStrategy) ToStringOutput added in v2.2.0

func (e SubnetAllocationStrategy) ToStringOutput() pulumi.StringOutput

func (SubnetAllocationStrategy) ToStringOutputWithContext added in v2.2.0

func (e SubnetAllocationStrategy) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (SubnetAllocationStrategy) ToStringPtrOutput added in v2.2.0

func (e SubnetAllocationStrategy) ToStringPtrOutput() pulumi.StringPtrOutput

func (SubnetAllocationStrategy) ToStringPtrOutputWithContext added in v2.2.0

func (e SubnetAllocationStrategy) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

func (SubnetAllocationStrategy) ToSubnetAllocationStrategyOutput added in v2.2.0

func (e SubnetAllocationStrategy) ToSubnetAllocationStrategyOutput() SubnetAllocationStrategyOutput

func (SubnetAllocationStrategy) ToSubnetAllocationStrategyOutputWithContext added in v2.2.0

func (e SubnetAllocationStrategy) ToSubnetAllocationStrategyOutputWithContext(ctx context.Context) SubnetAllocationStrategyOutput

func (SubnetAllocationStrategy) ToSubnetAllocationStrategyPtrOutput added in v2.2.0

func (e SubnetAllocationStrategy) ToSubnetAllocationStrategyPtrOutput() SubnetAllocationStrategyPtrOutput

func (SubnetAllocationStrategy) ToSubnetAllocationStrategyPtrOutputWithContext added in v2.2.0

func (e SubnetAllocationStrategy) ToSubnetAllocationStrategyPtrOutputWithContext(ctx context.Context) SubnetAllocationStrategyPtrOutput

type SubnetAllocationStrategyInput added in v2.2.0

type SubnetAllocationStrategyInput interface {
	pulumi.Input

	ToSubnetAllocationStrategyOutput() SubnetAllocationStrategyOutput
	ToSubnetAllocationStrategyOutputWithContext(context.Context) SubnetAllocationStrategyOutput
}

SubnetAllocationStrategyInput is an input type that accepts values of the SubnetAllocationStrategy enum A concrete instance of `SubnetAllocationStrategyInput` can be one of the following:

SubnetAllocationStrategyLegacy
SubnetAllocationStrategyAuto
SubnetAllocationStrategyExact

type SubnetAllocationStrategyOutput added in v2.2.0

type SubnetAllocationStrategyOutput struct{ *pulumi.OutputState }

func (SubnetAllocationStrategyOutput) ElementType added in v2.2.0

func (SubnetAllocationStrategyOutput) ToStringOutput added in v2.2.0

func (SubnetAllocationStrategyOutput) ToStringOutputWithContext added in v2.2.0

func (o SubnetAllocationStrategyOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (SubnetAllocationStrategyOutput) ToStringPtrOutput added in v2.2.0

func (SubnetAllocationStrategyOutput) ToStringPtrOutputWithContext added in v2.2.0

func (o SubnetAllocationStrategyOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

func (SubnetAllocationStrategyOutput) ToSubnetAllocationStrategyOutput added in v2.2.0

func (o SubnetAllocationStrategyOutput) ToSubnetAllocationStrategyOutput() SubnetAllocationStrategyOutput

func (SubnetAllocationStrategyOutput) ToSubnetAllocationStrategyOutputWithContext added in v2.2.0

func (o SubnetAllocationStrategyOutput) ToSubnetAllocationStrategyOutputWithContext(ctx context.Context) SubnetAllocationStrategyOutput

func (SubnetAllocationStrategyOutput) ToSubnetAllocationStrategyPtrOutput added in v2.2.0

func (o SubnetAllocationStrategyOutput) ToSubnetAllocationStrategyPtrOutput() SubnetAllocationStrategyPtrOutput

func (SubnetAllocationStrategyOutput) ToSubnetAllocationStrategyPtrOutputWithContext added in v2.2.0

func (o SubnetAllocationStrategyOutput) ToSubnetAllocationStrategyPtrOutputWithContext(ctx context.Context) SubnetAllocationStrategyPtrOutput

type SubnetAllocationStrategyPtrInput added in v2.2.0

type SubnetAllocationStrategyPtrInput interface {
	pulumi.Input

	ToSubnetAllocationStrategyPtrOutput() SubnetAllocationStrategyPtrOutput
	ToSubnetAllocationStrategyPtrOutputWithContext(context.Context) SubnetAllocationStrategyPtrOutput
}

func SubnetAllocationStrategyPtr added in v2.2.0

func SubnetAllocationStrategyPtr(v string) SubnetAllocationStrategyPtrInput

type SubnetAllocationStrategyPtrOutput added in v2.2.0

type SubnetAllocationStrategyPtrOutput struct{ *pulumi.OutputState }

func (SubnetAllocationStrategyPtrOutput) Elem added in v2.2.0

func (SubnetAllocationStrategyPtrOutput) ElementType added in v2.2.0

func (SubnetAllocationStrategyPtrOutput) ToStringPtrOutput added in v2.2.0

func (SubnetAllocationStrategyPtrOutput) ToStringPtrOutputWithContext added in v2.2.0

func (o SubnetAllocationStrategyPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

func (SubnetAllocationStrategyPtrOutput) ToSubnetAllocationStrategyPtrOutput added in v2.2.0

func (o SubnetAllocationStrategyPtrOutput) ToSubnetAllocationStrategyPtrOutput() SubnetAllocationStrategyPtrOutput

func (SubnetAllocationStrategyPtrOutput) ToSubnetAllocationStrategyPtrOutputWithContext added in v2.2.0

func (o SubnetAllocationStrategyPtrOutput) ToSubnetAllocationStrategyPtrOutputWithContext(ctx context.Context) SubnetAllocationStrategyPtrOutput

type SubnetSpec

type SubnetSpec struct {
	// An optional list of CIDR blocks to assign to the subnet spec for each AZ. If specified, the count must match the number of AZs being used for the VPC, and must also be specified for all other subnet specs.
	CidrBlocks []string `pulumi:"cidrBlocks"`
	// The netmask for the subnet's CIDR block. This is optional, the default value is inferred from the `cidrMask`, `cidrBlocks` or based on an even distribution of available space from the VPC's CIDR block after being divided evenly by availability zone.
	CidrMask *int `pulumi:"cidrMask"`
	// The subnet's name. Will be templated upon creation.
	Name *string `pulumi:"name"`
	// Optional size of the subnet's CIDR block - the number of hosts. This value must be a power of 2 (e.g. 256, 512, 1024, etc.). This is optional, the default value is inferred from the `cidrMask`, `cidrBlocks` or based on an even distribution of available space from the VPC's CIDR block after being divided evenly by availability zone.
	Size *int `pulumi:"size"`
	// A map of tags to assign to the resource.
	Tags map[string]string `pulumi:"tags"`
	// The type of subnet.
	Type SubnetType `pulumi:"type"`
}

Configuration for a VPC subnet.

type SubnetSpecArgs

type SubnetSpecArgs struct {
	// An optional list of CIDR blocks to assign to the subnet spec for each AZ. If specified, the count must match the number of AZs being used for the VPC, and must also be specified for all other subnet specs.
	CidrBlocks []string `pulumi:"cidrBlocks"`
	// The netmask for the subnet's CIDR block. This is optional, the default value is inferred from the `cidrMask`, `cidrBlocks` or based on an even distribution of available space from the VPC's CIDR block after being divided evenly by availability zone.
	CidrMask *int `pulumi:"cidrMask"`
	// The subnet's name. Will be templated upon creation.
	Name *string `pulumi:"name"`
	// Optional size of the subnet's CIDR block - the number of hosts. This value must be a power of 2 (e.g. 256, 512, 1024, etc.). This is optional, the default value is inferred from the `cidrMask`, `cidrBlocks` or based on an even distribution of available space from the VPC's CIDR block after being divided evenly by availability zone.
	Size *int `pulumi:"size"`
	// A map of tags to assign to the resource.
	Tags pulumi.StringMapInput `pulumi:"tags"`
	// The type of subnet.
	Type SubnetType `pulumi:"type"`
}

Configuration for a VPC subnet.

func (SubnetSpecArgs) ElementType

func (SubnetSpecArgs) ElementType() reflect.Type

func (SubnetSpecArgs) ToSubnetSpecOutput

func (i SubnetSpecArgs) ToSubnetSpecOutput() SubnetSpecOutput

func (SubnetSpecArgs) ToSubnetSpecOutputWithContext

func (i SubnetSpecArgs) ToSubnetSpecOutputWithContext(ctx context.Context) SubnetSpecOutput

type SubnetSpecArray

type SubnetSpecArray []SubnetSpecInput

func (SubnetSpecArray) ElementType

func (SubnetSpecArray) ElementType() reflect.Type

func (SubnetSpecArray) ToSubnetSpecArrayOutput

func (i SubnetSpecArray) ToSubnetSpecArrayOutput() SubnetSpecArrayOutput

func (SubnetSpecArray) ToSubnetSpecArrayOutputWithContext

func (i SubnetSpecArray) ToSubnetSpecArrayOutputWithContext(ctx context.Context) SubnetSpecArrayOutput

type SubnetSpecArrayInput

type SubnetSpecArrayInput interface {
	pulumi.Input

	ToSubnetSpecArrayOutput() SubnetSpecArrayOutput
	ToSubnetSpecArrayOutputWithContext(context.Context) SubnetSpecArrayOutput
}

SubnetSpecArrayInput is an input type that accepts SubnetSpecArray and SubnetSpecArrayOutput values. You can construct a concrete instance of `SubnetSpecArrayInput` via:

SubnetSpecArray{ SubnetSpecArgs{...} }

type SubnetSpecArrayOutput

type SubnetSpecArrayOutput struct{ *pulumi.OutputState }

func (SubnetSpecArrayOutput) ElementType

func (SubnetSpecArrayOutput) ElementType() reflect.Type

func (SubnetSpecArrayOutput) Index

func (SubnetSpecArrayOutput) ToSubnetSpecArrayOutput

func (o SubnetSpecArrayOutput) ToSubnetSpecArrayOutput() SubnetSpecArrayOutput

func (SubnetSpecArrayOutput) ToSubnetSpecArrayOutputWithContext

func (o SubnetSpecArrayOutput) ToSubnetSpecArrayOutputWithContext(ctx context.Context) SubnetSpecArrayOutput

type SubnetSpecInput

type SubnetSpecInput interface {
	pulumi.Input

	ToSubnetSpecOutput() SubnetSpecOutput
	ToSubnetSpecOutputWithContext(context.Context) SubnetSpecOutput
}

SubnetSpecInput is an input type that accepts SubnetSpecArgs and SubnetSpecOutput values. You can construct a concrete instance of `SubnetSpecInput` via:

SubnetSpecArgs{...}

type SubnetSpecOutput

type SubnetSpecOutput struct{ *pulumi.OutputState }

Configuration for a VPC subnet.

func (SubnetSpecOutput) CidrBlocks added in v2.2.0

func (o SubnetSpecOutput) CidrBlocks() pulumi.StringArrayOutput

An optional list of CIDR blocks to assign to the subnet spec for each AZ. If specified, the count must match the number of AZs being used for the VPC, and must also be specified for all other subnet specs.

func (SubnetSpecOutput) CidrMask

func (o SubnetSpecOutput) CidrMask() pulumi.IntPtrOutput

The netmask for the subnet's CIDR block. This is optional, the default value is inferred from the `cidrMask`, `cidrBlocks` or based on an even distribution of available space from the VPC's CIDR block after being divided evenly by availability zone.

func (SubnetSpecOutput) ElementType

func (SubnetSpecOutput) ElementType() reflect.Type

func (SubnetSpecOutput) Name

The subnet's name. Will be templated upon creation.

func (SubnetSpecOutput) Size added in v2.2.0

Optional size of the subnet's CIDR block - the number of hosts. This value must be a power of 2 (e.g. 256, 512, 1024, etc.). This is optional, the default value is inferred from the `cidrMask`, `cidrBlocks` or based on an even distribution of available space from the VPC's CIDR block after being divided evenly by availability zone.

func (SubnetSpecOutput) Tags

A map of tags to assign to the resource.

func (SubnetSpecOutput) ToSubnetSpecOutput

func (o SubnetSpecOutput) ToSubnetSpecOutput() SubnetSpecOutput

func (SubnetSpecOutput) ToSubnetSpecOutputWithContext

func (o SubnetSpecOutput) ToSubnetSpecOutputWithContext(ctx context.Context) SubnetSpecOutput

func (SubnetSpecOutput) Type

The type of subnet.

type SubnetType

type SubnetType string

A type of subnet within a VPC.

func (SubnetType) ElementType

func (SubnetType) ElementType() reflect.Type

func (SubnetType) ToStringOutput

func (e SubnetType) ToStringOutput() pulumi.StringOutput

func (SubnetType) ToStringOutputWithContext

func (e SubnetType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (SubnetType) ToStringPtrOutput

func (e SubnetType) ToStringPtrOutput() pulumi.StringPtrOutput

func (SubnetType) ToStringPtrOutputWithContext

func (e SubnetType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

func (SubnetType) ToSubnetTypeOutput

func (e SubnetType) ToSubnetTypeOutput() SubnetTypeOutput

func (SubnetType) ToSubnetTypeOutputWithContext

func (e SubnetType) ToSubnetTypeOutputWithContext(ctx context.Context) SubnetTypeOutput

func (SubnetType) ToSubnetTypePtrOutput

func (e SubnetType) ToSubnetTypePtrOutput() SubnetTypePtrOutput

func (SubnetType) ToSubnetTypePtrOutputWithContext

func (e SubnetType) ToSubnetTypePtrOutputWithContext(ctx context.Context) SubnetTypePtrOutput

type SubnetTypeInput

type SubnetTypeInput interface {
	pulumi.Input

	ToSubnetTypeOutput() SubnetTypeOutput
	ToSubnetTypeOutputWithContext(context.Context) SubnetTypeOutput
}

SubnetTypeInput is an input type that accepts values of the SubnetType enum A concrete instance of `SubnetTypeInput` can be one of the following:

SubnetTypePublic
SubnetTypePrivate
SubnetTypeIsolated
SubnetTypeUnused

type SubnetTypeOutput

type SubnetTypeOutput struct{ *pulumi.OutputState }

func (SubnetTypeOutput) ElementType

func (SubnetTypeOutput) ElementType() reflect.Type

func (SubnetTypeOutput) ToStringOutput

func (o SubnetTypeOutput) ToStringOutput() pulumi.StringOutput

func (SubnetTypeOutput) ToStringOutputWithContext

func (o SubnetTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (SubnetTypeOutput) ToStringPtrOutput

func (o SubnetTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (SubnetTypeOutput) ToStringPtrOutputWithContext

func (o SubnetTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

func (SubnetTypeOutput) ToSubnetTypeOutput

func (o SubnetTypeOutput) ToSubnetTypeOutput() SubnetTypeOutput

func (SubnetTypeOutput) ToSubnetTypeOutputWithContext

func (o SubnetTypeOutput) ToSubnetTypeOutputWithContext(ctx context.Context) SubnetTypeOutput

func (SubnetTypeOutput) ToSubnetTypePtrOutput

func (o SubnetTypeOutput) ToSubnetTypePtrOutput() SubnetTypePtrOutput

func (SubnetTypeOutput) ToSubnetTypePtrOutputWithContext

func (o SubnetTypeOutput) ToSubnetTypePtrOutputWithContext(ctx context.Context) SubnetTypePtrOutput

type SubnetTypePtrInput

type SubnetTypePtrInput interface {
	pulumi.Input

	ToSubnetTypePtrOutput() SubnetTypePtrOutput
	ToSubnetTypePtrOutputWithContext(context.Context) SubnetTypePtrOutput
}

func SubnetTypePtr

func SubnetTypePtr(v string) SubnetTypePtrInput

type SubnetTypePtrOutput

type SubnetTypePtrOutput struct{ *pulumi.OutputState }

func (SubnetTypePtrOutput) Elem

func (SubnetTypePtrOutput) ElementType

func (SubnetTypePtrOutput) ElementType() reflect.Type

func (SubnetTypePtrOutput) ToStringPtrOutput

func (o SubnetTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (SubnetTypePtrOutput) ToStringPtrOutputWithContext

func (o SubnetTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

func (SubnetTypePtrOutput) ToSubnetTypePtrOutput

func (o SubnetTypePtrOutput) ToSubnetTypePtrOutput() SubnetTypePtrOutput

func (SubnetTypePtrOutput) ToSubnetTypePtrOutputWithContext

func (o SubnetTypePtrOutput) ToSubnetTypePtrOutputWithContext(ctx context.Context) SubnetTypePtrOutput

type Vpc

type Vpc struct {
	pulumi.ResourceState

	// The EIPs for any NAT Gateways for the VPC. If no NAT Gateways are specified, this will be an empty list.
	Eips ec2.EipArrayOutput `pulumi:"eips"`
	// The Internet Gateway for the VPC.
	InternetGateway   ec2.InternetGatewayOutput `pulumi:"internetGateway"`
	IsolatedSubnetIds pulumi.StringArrayOutput  `pulumi:"isolatedSubnetIds"`
	// The NAT Gateways for the VPC. If no NAT Gateways are specified, this will be an empty list.
	NatGateways      ec2.NatGatewayArrayOutput `pulumi:"natGateways"`
	PrivateSubnetIds pulumi.StringArrayOutput  `pulumi:"privateSubnetIds"`
	PublicSubnetIds  pulumi.StringArrayOutput  `pulumi:"publicSubnetIds"`
	// The Route Table Associations for the VPC.
	RouteTableAssociations ec2.RouteTableAssociationArrayOutput `pulumi:"routeTableAssociations"`
	// The Route Tables for the VPC.
	RouteTables ec2.RouteTableArrayOutput `pulumi:"routeTables"`
	// The Routes for the VPC.
	Routes ec2.RouteArrayOutput `pulumi:"routes"`
	// The resolved subnet specs layout deployed to each availability zone.
	SubnetLayout ResolvedSubnetSpecArrayOutput `pulumi:"subnetLayout"`
	// The VPC's subnets.
	Subnets ec2.SubnetArrayOutput `pulumi:"subnets"`
	// The VPC.
	Vpc ec2.VpcOutput `pulumi:"vpc"`
	// The VPC Endpoints that are enabled
	VpcEndpoints ec2.VpcEndpointArrayOutput `pulumi:"vpcEndpoints"`
	VpcId        pulumi.StringOutput        `pulumi:"vpcId"`
}

The VPC component provides a VPC with configured subnets and NAT gateways.

## Example Usage

Basic usage:

```go package main

import (

"github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		vpc, err := ec2.NewVpc(ctx, "vpc", nil)
		if err != nil {
			return err
		}
		ctx.Export("vpcId", vpc.VpcId)
		ctx.Export("vpcPrivateSubnetIds", vpc.PrivateSubnetIds)
		ctx.Export("vpcPublicSubnetIds", vpc.PublicSubnetIds)
		return nil
	})
}

```

## Subnet Layout Strategies

If no subnet arguments are passed, then a public and private subnet will be created in each AZ with default sizing. The layout of these subnets can be customised by specifying additional arguments.

All strategies are designed to help build a uniform layout of subnets each each availability zone.

If no strategy is specified, "Legacy" will be used for backward compatibility reasons. In the next major version this will change to defaulting to "Auto".

### Auto

The "Auto" strategy divides the VPC space evenly between the availability zones. Within each availability zone it allocates each subnet in the order they were specified. If a CIDR mask or size was not specified it will default to an even division of the availability zone range. If subnets have different sizes, spaces will be automatically added to ensure subnets don't overlap (e.g. where a previous subnet is smaller than the next).

### Exact

The "Exact" strategy is the same as "Auto" with the additional requirement to explicitly specify what the whole of each zone's range will be used for. Where you expect to have a gap between or after subnets, these must be passed using the subnet specification type "Unused" to show all space has been properly accounted for.

### Explicit CIDR Blocks

If you prefer to do your CIDR block calculations yourself, you can specify a list of CIDR blocks for each subnet spec which it will be allocated for in each availability zone. If using explicit layouts, all subnet specs must be declared with explicit CIDR blocks. Each list of CIDR blocks must have the same length as the number of availability zones for the VPC.

### Legacy

The "Legacy" works similarly to the "Auto" strategy except that within each availability zone it allocates the private subnet first, followed by the public subnets, and lastly the isolated subnets. The order of subnet specifications of the same type can be changed, but the ordering of private, public, isolated is not overridable. For more flexibility we recommend moving to the "Auto" strategy. The output property `subnetLayout` shows the configuration required if specifying the "Auto" strategy to maintain the current layout.

func NewVpc

func NewVpc(ctx *pulumi.Context,
	name string, args *VpcArgs, opts ...pulumi.ResourceOption) (*Vpc, error)

NewVpc registers a new resource with the given unique name, arguments, and options.

func (*Vpc) ElementType

func (*Vpc) ElementType() reflect.Type

func (*Vpc) ToVpcOutput

func (i *Vpc) ToVpcOutput() VpcOutput

func (*Vpc) ToVpcOutputWithContext

func (i *Vpc) ToVpcOutputWithContext(ctx context.Context) VpcOutput

type VpcArgs

type VpcArgs struct {
	// Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block. Default is `false`. Conflicts with `ipv6_ipam_pool_id`
	AssignGeneratedIpv6CidrBlock pulumi.BoolPtrInput
	// The netmask for each available zone to be aligned to. This is optional, the default value is inferred based on an even distribution of available space from the VPC's CIDR block after being divided evenly by the number of availability zones.
	AvailabilityZoneCidrMask *int
	// A list of availability zone names to which the subnets defined in subnetSpecs will be deployed. Optional, defaults to the first 3 AZs in the current region.
	AvailabilityZoneNames []string
	// The CIDR block for the VPC. Optional. Defaults to 10.0.0.0/16.
	CidrBlock *string
	// A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false.
	EnableDnsHostnames pulumi.BoolPtrInput
	// A boolean flag to enable/disable DNS support in the VPC. Defaults to true.
	EnableDnsSupport pulumi.BoolPtrInput
	// Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false.
	EnableNetworkAddressUsageMetrics pulumi.BoolPtrInput
	// A tenancy option for instances launched into the VPC. Default is `default`, which ensures that EC2 instances launched in this VPC use the EC2 instance tenancy attribute specified when the EC2 instance is launched. The only other option is `dedicated`, which ensures that EC2 instances launched in this VPC are run on dedicated tenancy instances regardless of the tenancy attribute specified at launch. This has a dedicated per region fee of $2 per hour, plus an hourly per instance usage fee.
	InstanceTenancy pulumi.StringPtrInput
	// The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across AWS Regions and accounts. Using IPAM you can monitor IP address usage throughout your AWS Organization.
	Ipv4IpamPoolId pulumi.StringPtrInput
	// The netmask length of the IPv4 CIDR you want to allocate to this VPC. Requires specifying a `ipv4_ipam_pool_id`.
	Ipv4NetmaskLength pulumi.IntPtrInput
	// IPv6 CIDR block to request from an IPAM Pool. Can be set explicitly or derived from IPAM using `ipv6_netmask_length`.
	Ipv6CidrBlock pulumi.StringPtrInput
	// By default when an IPv6 CIDR is assigned to a VPC a default ipv6_cidr_block_network_border_group will be set to the region of the VPC. This can be changed to restrict advertisement of public addresses to specific Network Border Groups such as LocalZones.
	Ipv6CidrBlockNetworkBorderGroup pulumi.StringPtrInput
	// IPAM Pool ID for a IPv6 pool. Conflicts with `assign_generated_ipv6_cidr_block`.
	Ipv6IpamPoolId pulumi.StringPtrInput
	// Netmask length to request from IPAM Pool. Conflicts with `ipv6_cidr_block`. This can be omitted if IPAM pool as a `allocation_default_netmask_length` set. Valid values: `56`.
	Ipv6NetmaskLength pulumi.IntPtrInput
	// Configuration for NAT Gateways. Optional. If private and public subnets are both specified, defaults to one gateway per availability zone. Otherwise, no gateways will be created.
	NatGateways *NatGatewayConfigurationArgs
	// A number of availability zones to which the subnets defined in subnetSpecs will be deployed. Optional, defaults to the first 3 AZs in the current region.
	NumberOfAvailabilityZones *int
	// A list of subnet specs that should be deployed to each AZ specified in availabilityZoneNames. Optional. Defaults to a (smaller) public subnet and a (larger) private subnet based on the size of the CIDR block for the VPC. Private subnets are allocated CIDR block ranges first, followed by Private subnets, and Isolated subnets are allocated last.
	SubnetSpecs []SubnetSpecArgs
	// The strategy to use when allocating subnets for the VPC. Optional. Defaults to `Legacy`.
	SubnetStrategy *SubnetAllocationStrategy
	// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// A list of VPC Endpoints specs to be deployed as part of the VPC
	VpcEndpointSpecs []VpcEndpointSpecArgs
}

The set of arguments for constructing a Vpc resource.

func (VpcArgs) ElementType

func (VpcArgs) ElementType() reflect.Type

type VpcArray

type VpcArray []VpcInput

func (VpcArray) ElementType

func (VpcArray) ElementType() reflect.Type

func (VpcArray) ToVpcArrayOutput

func (i VpcArray) ToVpcArrayOutput() VpcArrayOutput

func (VpcArray) ToVpcArrayOutputWithContext

func (i VpcArray) ToVpcArrayOutputWithContext(ctx context.Context) VpcArrayOutput

type VpcArrayInput

type VpcArrayInput interface {
	pulumi.Input

	ToVpcArrayOutput() VpcArrayOutput
	ToVpcArrayOutputWithContext(context.Context) VpcArrayOutput
}

VpcArrayInput is an input type that accepts VpcArray and VpcArrayOutput values. You can construct a concrete instance of `VpcArrayInput` via:

VpcArray{ VpcArgs{...} }

type VpcArrayOutput

type VpcArrayOutput struct{ *pulumi.OutputState }

func (VpcArrayOutput) ElementType

func (VpcArrayOutput) ElementType() reflect.Type

func (VpcArrayOutput) Index

func (VpcArrayOutput) ToVpcArrayOutput

func (o VpcArrayOutput) ToVpcArrayOutput() VpcArrayOutput

func (VpcArrayOutput) ToVpcArrayOutputWithContext

func (o VpcArrayOutput) ToVpcArrayOutputWithContext(ctx context.Context) VpcArrayOutput

type VpcEndpointSpec

type VpcEndpointSpec struct {
	// Accept the VPC endpoint (the VPC endpoint and service need to be in the same AWS account).
	AutoAccept *bool `pulumi:"autoAccept"`
	// The DNS options for the endpoint. See dns_options below.
	DnsOptions *ec2.VpcEndpointDnsOptions `pulumi:"dnsOptions"`
	// The IP address type for the endpoint. Valid values are `ipv4`, `dualstack`, and `ipv6`.
	IpAddressType *string `pulumi:"ipAddressType"`
	// A policy to attach to the endpoint that controls access to the service. This is a JSON formatted string. Defaults to full access. All `Gateway` and some `Interface` endpoints support policies - see the [relevant AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) for more details.
	Policy *string `pulumi:"policy"`
	// Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. Defaults to `false`.
	PrivateDnsEnabled *bool `pulumi:"privateDnsEnabled"`
	// One or more route table IDs. Applicable for endpoints of type `Gateway`.
	RouteTableIds []string `pulumi:"routeTableIds"`
	// The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type `Interface`.
	// If no security groups are specified, the VPC's [default security group](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#DefaultSecurityGroup) is associated with the endpoint.
	SecurityGroupIds []string `pulumi:"securityGroupIds"`
	// The service name. For AWS services the service name is usually in the form `com.amazonaws.<region>.<service>` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker.<region>.notebook`).
	ServiceName string `pulumi:"serviceName"`
	// The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type `GatewayLoadBalancer` and `Interface`. Interface type endpoints cannot function without being assigned to a subnet.
	SubnetIds []string `pulumi:"subnetIds"`
	// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags map[string]string `pulumi:"tags"`
	// The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`.
	VpcEndpointType *string `pulumi:"vpcEndpointType"`
}

Provides a VPC Endpoint resource.

> **NOTE on VPC Endpoints and VPC Endpoint Associations:** The provider provides both standalone VPC Endpoint Associations for Route Tables - (an association between a VPC endpoint and a single `route_table_id`), Security Groups - (an association between a VPC endpoint and a single `security_group_id`), and Subnets - (an association between a VPC endpoint and a single `subnet_id`) and a VPC Endpoint resource with `route_table_ids` and `subnet_ids` attributes. Do not use the same resource ID in both a VPC Endpoint resource and a VPC Endpoint Association resource. Doing so will cause a conflict of associations and will overwrite the association.

## Example Usage

### Basic

<!--Start PulumiCodeChooser --> ```go 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.NewVpcEndpoint(ctx, "s3", &ec2.VpcEndpointArgs{
			VpcId:       pulumi.Any(main.Id),
			ServiceName: pulumi.String("com.amazonaws.us-west-2.s3"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Basic w/ Tags

<!--Start PulumiCodeChooser --> ```go 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.NewVpcEndpoint(ctx, "s3", &ec2.VpcEndpointArgs{
			VpcId:       pulumi.Any(main.Id),
			ServiceName: pulumi.String("com.amazonaws.us-west-2.s3"),
			Tags: pulumi.StringMap{
				"Environment": pulumi.String("test"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Interface Endpoint Type

<!--Start PulumiCodeChooser --> ```go 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.NewVpcEndpoint(ctx, "ec2", &ec2.VpcEndpointArgs{
			VpcId:           pulumi.Any(main.Id),
			ServiceName:     pulumi.String("com.amazonaws.us-west-2.ec2"),
			VpcEndpointType: pulumi.String("Interface"),
			SecurityGroupIds: pulumi.StringArray{
				sg1.Id,
			},
			PrivateDnsEnabled: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Gateway Load Balancer Endpoint Type

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
"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 {
		current, err := aws.GetCallerIdentity(ctx, nil, nil)
		if err != nil {
			return err
		}
		example, err := ec2.NewVpcEndpointService(ctx, "example", &ec2.VpcEndpointServiceArgs{
			AcceptanceRequired: pulumi.Bool(false),
			AllowedPrincipals: pulumi.StringArray{
				pulumi.String(current.Arn),
			},
			GatewayLoadBalancerArns: pulumi.StringArray{
				exampleAwsLb.Arn,
			},
		})
		if err != nil {
			return err
		}
		_, err = ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{
			ServiceName: example.ServiceName,
			SubnetIds: pulumi.StringArray{
				exampleAwsSubnet.Id,
			},
			VpcEndpointType: example.ServiceType,
			VpcId:           pulumi.Any(exampleAwsVpc.Id),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import VPC Endpoints using the VPC endpoint `id`. For example:

```sh $ pulumi import aws:ec2/vpcEndpoint:VpcEndpoint endpoint1 vpce-3ecf2a57 ```

type VpcEndpointSpecArgs

type VpcEndpointSpecArgs struct {
	// Accept the VPC endpoint (the VPC endpoint and service need to be in the same AWS account).
	AutoAccept *bool `pulumi:"autoAccept"`
	// The DNS options for the endpoint. See dns_options below.
	DnsOptions ec2.VpcEndpointDnsOptionsPtrInput `pulumi:"dnsOptions"`
	// The IP address type for the endpoint. Valid values are `ipv4`, `dualstack`, and `ipv6`.
	IpAddressType pulumi.StringPtrInput `pulumi:"ipAddressType"`
	// A policy to attach to the endpoint that controls access to the service. This is a JSON formatted string. Defaults to full access. All `Gateway` and some `Interface` endpoints support policies - see the [relevant AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) for more details.
	Policy pulumi.StringPtrInput `pulumi:"policy"`
	// Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. Defaults to `false`.
	PrivateDnsEnabled *bool `pulumi:"privateDnsEnabled"`
	// One or more route table IDs. Applicable for endpoints of type `Gateway`.
	RouteTableIds pulumi.StringArrayInput `pulumi:"routeTableIds"`
	// The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type `Interface`.
	// If no security groups are specified, the VPC's [default security group](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#DefaultSecurityGroup) is associated with the endpoint.
	SecurityGroupIds pulumi.StringArrayInput `pulumi:"securityGroupIds"`
	// The service name. For AWS services the service name is usually in the form `com.amazonaws.<region>.<service>` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker.<region>.notebook`).
	ServiceName string `pulumi:"serviceName"`
	// The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type `GatewayLoadBalancer` and `Interface`. Interface type endpoints cannot function without being assigned to a subnet.
	SubnetIds pulumi.StringArrayInput `pulumi:"subnetIds"`
	// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput `pulumi:"tags"`
	// The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`.
	VpcEndpointType pulumi.StringPtrInput `pulumi:"vpcEndpointType"`
}

Provides a VPC Endpoint resource.

> **NOTE on VPC Endpoints and VPC Endpoint Associations:** The provider provides both standalone VPC Endpoint Associations for Route Tables - (an association between a VPC endpoint and a single `route_table_id`), Security Groups - (an association between a VPC endpoint and a single `security_group_id`), and Subnets - (an association between a VPC endpoint and a single `subnet_id`) and a VPC Endpoint resource with `route_table_ids` and `subnet_ids` attributes. Do not use the same resource ID in both a VPC Endpoint resource and a VPC Endpoint Association resource. Doing so will cause a conflict of associations and will overwrite the association.

## Example Usage

### Basic

<!--Start PulumiCodeChooser --> ```go 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.NewVpcEndpoint(ctx, "s3", &ec2.VpcEndpointArgs{
			VpcId:       pulumi.Any(main.Id),
			ServiceName: pulumi.String("com.amazonaws.us-west-2.s3"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Basic w/ Tags

<!--Start PulumiCodeChooser --> ```go 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.NewVpcEndpoint(ctx, "s3", &ec2.VpcEndpointArgs{
			VpcId:       pulumi.Any(main.Id),
			ServiceName: pulumi.String("com.amazonaws.us-west-2.s3"),
			Tags: pulumi.StringMap{
				"Environment": pulumi.String("test"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Interface Endpoint Type

<!--Start PulumiCodeChooser --> ```go 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.NewVpcEndpoint(ctx, "ec2", &ec2.VpcEndpointArgs{
			VpcId:           pulumi.Any(main.Id),
			ServiceName:     pulumi.String("com.amazonaws.us-west-2.ec2"),
			VpcEndpointType: pulumi.String("Interface"),
			SecurityGroupIds: pulumi.StringArray{
				sg1.Id,
			},
			PrivateDnsEnabled: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Gateway Load Balancer Endpoint Type

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
"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 {
		current, err := aws.GetCallerIdentity(ctx, nil, nil)
		if err != nil {
			return err
		}
		example, err := ec2.NewVpcEndpointService(ctx, "example", &ec2.VpcEndpointServiceArgs{
			AcceptanceRequired: pulumi.Bool(false),
			AllowedPrincipals: pulumi.StringArray{
				pulumi.String(current.Arn),
			},
			GatewayLoadBalancerArns: pulumi.StringArray{
				exampleAwsLb.Arn,
			},
		})
		if err != nil {
			return err
		}
		_, err = ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{
			ServiceName: example.ServiceName,
			SubnetIds: pulumi.StringArray{
				exampleAwsSubnet.Id,
			},
			VpcEndpointType: example.ServiceType,
			VpcId:           pulumi.Any(exampleAwsVpc.Id),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import VPC Endpoints using the VPC endpoint `id`. For example:

```sh $ pulumi import aws:ec2/vpcEndpoint:VpcEndpoint endpoint1 vpce-3ecf2a57 ```

func (VpcEndpointSpecArgs) ElementType

func (VpcEndpointSpecArgs) ElementType() reflect.Type

func (VpcEndpointSpecArgs) ToVpcEndpointSpecOutput

func (i VpcEndpointSpecArgs) ToVpcEndpointSpecOutput() VpcEndpointSpecOutput

func (VpcEndpointSpecArgs) ToVpcEndpointSpecOutputWithContext

func (i VpcEndpointSpecArgs) ToVpcEndpointSpecOutputWithContext(ctx context.Context) VpcEndpointSpecOutput

type VpcEndpointSpecArray

type VpcEndpointSpecArray []VpcEndpointSpecInput

func (VpcEndpointSpecArray) ElementType

func (VpcEndpointSpecArray) ElementType() reflect.Type

func (VpcEndpointSpecArray) ToVpcEndpointSpecArrayOutput

func (i VpcEndpointSpecArray) ToVpcEndpointSpecArrayOutput() VpcEndpointSpecArrayOutput

func (VpcEndpointSpecArray) ToVpcEndpointSpecArrayOutputWithContext

func (i VpcEndpointSpecArray) ToVpcEndpointSpecArrayOutputWithContext(ctx context.Context) VpcEndpointSpecArrayOutput

type VpcEndpointSpecArrayInput

type VpcEndpointSpecArrayInput interface {
	pulumi.Input

	ToVpcEndpointSpecArrayOutput() VpcEndpointSpecArrayOutput
	ToVpcEndpointSpecArrayOutputWithContext(context.Context) VpcEndpointSpecArrayOutput
}

VpcEndpointSpecArrayInput is an input type that accepts VpcEndpointSpecArray and VpcEndpointSpecArrayOutput values. You can construct a concrete instance of `VpcEndpointSpecArrayInput` via:

VpcEndpointSpecArray{ VpcEndpointSpecArgs{...} }

type VpcEndpointSpecArrayOutput

type VpcEndpointSpecArrayOutput struct{ *pulumi.OutputState }

func (VpcEndpointSpecArrayOutput) ElementType

func (VpcEndpointSpecArrayOutput) ElementType() reflect.Type

func (VpcEndpointSpecArrayOutput) Index

func (VpcEndpointSpecArrayOutput) ToVpcEndpointSpecArrayOutput

func (o VpcEndpointSpecArrayOutput) ToVpcEndpointSpecArrayOutput() VpcEndpointSpecArrayOutput

func (VpcEndpointSpecArrayOutput) ToVpcEndpointSpecArrayOutputWithContext

func (o VpcEndpointSpecArrayOutput) ToVpcEndpointSpecArrayOutputWithContext(ctx context.Context) VpcEndpointSpecArrayOutput

type VpcEndpointSpecInput

type VpcEndpointSpecInput interface {
	pulumi.Input

	ToVpcEndpointSpecOutput() VpcEndpointSpecOutput
	ToVpcEndpointSpecOutputWithContext(context.Context) VpcEndpointSpecOutput
}

VpcEndpointSpecInput is an input type that accepts VpcEndpointSpecArgs and VpcEndpointSpecOutput values. You can construct a concrete instance of `VpcEndpointSpecInput` via:

VpcEndpointSpecArgs{...}

type VpcEndpointSpecOutput

type VpcEndpointSpecOutput struct{ *pulumi.OutputState }

Provides a VPC Endpoint resource.

> **NOTE on VPC Endpoints and VPC Endpoint Associations:** The provider provides both standalone VPC Endpoint Associations for Route Tables - (an association between a VPC endpoint and a single `route_table_id`), Security Groups - (an association between a VPC endpoint and a single `security_group_id`), and Subnets - (an association between a VPC endpoint and a single `subnet_id`) and a VPC Endpoint resource with `route_table_ids` and `subnet_ids` attributes. Do not use the same resource ID in both a VPC Endpoint resource and a VPC Endpoint Association resource. Doing so will cause a conflict of associations and will overwrite the association.

## Example Usage

### Basic

<!--Start PulumiCodeChooser --> ```go 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.NewVpcEndpoint(ctx, "s3", &ec2.VpcEndpointArgs{
			VpcId:       pulumi.Any(main.Id),
			ServiceName: pulumi.String("com.amazonaws.us-west-2.s3"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Basic w/ Tags

<!--Start PulumiCodeChooser --> ```go 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.NewVpcEndpoint(ctx, "s3", &ec2.VpcEndpointArgs{
			VpcId:       pulumi.Any(main.Id),
			ServiceName: pulumi.String("com.amazonaws.us-west-2.s3"),
			Tags: pulumi.StringMap{
				"Environment": pulumi.String("test"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Interface Endpoint Type

<!--Start PulumiCodeChooser --> ```go 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.NewVpcEndpoint(ctx, "ec2", &ec2.VpcEndpointArgs{
			VpcId:           pulumi.Any(main.Id),
			ServiceName:     pulumi.String("com.amazonaws.us-west-2.ec2"),
			VpcEndpointType: pulumi.String("Interface"),
			SecurityGroupIds: pulumi.StringArray{
				sg1.Id,
			},
			PrivateDnsEnabled: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Gateway Load Balancer Endpoint Type

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
"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 {
		current, err := aws.GetCallerIdentity(ctx, nil, nil)
		if err != nil {
			return err
		}
		example, err := ec2.NewVpcEndpointService(ctx, "example", &ec2.VpcEndpointServiceArgs{
			AcceptanceRequired: pulumi.Bool(false),
			AllowedPrincipals: pulumi.StringArray{
				pulumi.String(current.Arn),
			},
			GatewayLoadBalancerArns: pulumi.StringArray{
				exampleAwsLb.Arn,
			},
		})
		if err != nil {
			return err
		}
		_, err = ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{
			ServiceName: example.ServiceName,
			SubnetIds: pulumi.StringArray{
				exampleAwsSubnet.Id,
			},
			VpcEndpointType: example.ServiceType,
			VpcId:           pulumi.Any(exampleAwsVpc.Id),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import VPC Endpoints using the VPC endpoint `id`. For example:

```sh $ pulumi import aws:ec2/vpcEndpoint:VpcEndpoint endpoint1 vpce-3ecf2a57 ```

func (VpcEndpointSpecOutput) AutoAccept

Accept the VPC endpoint (the VPC endpoint and service need to be in the same AWS account).

func (VpcEndpointSpecOutput) DnsOptions

The DNS options for the endpoint. See dns_options below.

func (VpcEndpointSpecOutput) ElementType

func (VpcEndpointSpecOutput) ElementType() reflect.Type

func (VpcEndpointSpecOutput) IpAddressType

func (o VpcEndpointSpecOutput) IpAddressType() pulumi.StringPtrOutput

The IP address type for the endpoint. Valid values are `ipv4`, `dualstack`, and `ipv6`.

func (VpcEndpointSpecOutput) Policy

A policy to attach to the endpoint that controls access to the service. This is a JSON formatted string. Defaults to full access. All `Gateway` and some `Interface` endpoints support policies - see the [relevant AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) for more details.

func (VpcEndpointSpecOutput) PrivateDnsEnabled

func (o VpcEndpointSpecOutput) PrivateDnsEnabled() pulumi.BoolPtrOutput

Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. Defaults to `false`.

func (VpcEndpointSpecOutput) RouteTableIds

One or more route table IDs. Applicable for endpoints of type `Gateway`.

func (VpcEndpointSpecOutput) SecurityGroupIds

func (o VpcEndpointSpecOutput) SecurityGroupIds() pulumi.StringArrayOutput

The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type `Interface`. If no security groups are specified, the VPC's [default security group](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#DefaultSecurityGroup) is associated with the endpoint.

func (VpcEndpointSpecOutput) ServiceName

func (o VpcEndpointSpecOutput) ServiceName() pulumi.StringOutput

The service name. For AWS services the service name is usually in the form `com.amazonaws.<region>.<service>` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker.<region>.notebook`).

func (VpcEndpointSpecOutput) SubnetIds

The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type `GatewayLoadBalancer` and `Interface`. Interface type endpoints cannot function without being assigned to a subnet.

func (VpcEndpointSpecOutput) Tags

A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.

func (VpcEndpointSpecOutput) ToVpcEndpointSpecOutput

func (o VpcEndpointSpecOutput) ToVpcEndpointSpecOutput() VpcEndpointSpecOutput

func (VpcEndpointSpecOutput) ToVpcEndpointSpecOutputWithContext

func (o VpcEndpointSpecOutput) ToVpcEndpointSpecOutputWithContext(ctx context.Context) VpcEndpointSpecOutput

func (VpcEndpointSpecOutput) VpcEndpointType

func (o VpcEndpointSpecOutput) VpcEndpointType() pulumi.StringPtrOutput

The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`.

type VpcInput

type VpcInput interface {
	pulumi.Input

	ToVpcOutput() VpcOutput
	ToVpcOutputWithContext(ctx context.Context) VpcOutput
}

type VpcMap

type VpcMap map[string]VpcInput

func (VpcMap) ElementType

func (VpcMap) ElementType() reflect.Type

func (VpcMap) ToVpcMapOutput

func (i VpcMap) ToVpcMapOutput() VpcMapOutput

func (VpcMap) ToVpcMapOutputWithContext

func (i VpcMap) ToVpcMapOutputWithContext(ctx context.Context) VpcMapOutput

type VpcMapInput

type VpcMapInput interface {
	pulumi.Input

	ToVpcMapOutput() VpcMapOutput
	ToVpcMapOutputWithContext(context.Context) VpcMapOutput
}

VpcMapInput is an input type that accepts VpcMap and VpcMapOutput values. You can construct a concrete instance of `VpcMapInput` via:

VpcMap{ "key": VpcArgs{...} }

type VpcMapOutput

type VpcMapOutput struct{ *pulumi.OutputState }

func (VpcMapOutput) ElementType

func (VpcMapOutput) ElementType() reflect.Type

func (VpcMapOutput) MapIndex

func (o VpcMapOutput) MapIndex(k pulumi.StringInput) VpcOutput

func (VpcMapOutput) ToVpcMapOutput

func (o VpcMapOutput) ToVpcMapOutput() VpcMapOutput

func (VpcMapOutput) ToVpcMapOutputWithContext

func (o VpcMapOutput) ToVpcMapOutputWithContext(ctx context.Context) VpcMapOutput

type VpcOutput

type VpcOutput struct{ *pulumi.OutputState }

func (VpcOutput) Eips

func (o VpcOutput) Eips() ec2.EipArrayOutput

The EIPs for any NAT Gateways for the VPC. If no NAT Gateways are specified, this will be an empty list.

func (VpcOutput) ElementType

func (VpcOutput) ElementType() reflect.Type

func (VpcOutput) InternetGateway

func (o VpcOutput) InternetGateway() ec2.InternetGatewayOutput

The Internet Gateway for the VPC.

func (VpcOutput) IsolatedSubnetIds

func (o VpcOutput) IsolatedSubnetIds() pulumi.StringArrayOutput

func (VpcOutput) NatGateways

func (o VpcOutput) NatGateways() ec2.NatGatewayArrayOutput

The NAT Gateways for the VPC. If no NAT Gateways are specified, this will be an empty list.

func (VpcOutput) PrivateSubnetIds

func (o VpcOutput) PrivateSubnetIds() pulumi.StringArrayOutput

func (VpcOutput) PublicSubnetIds

func (o VpcOutput) PublicSubnetIds() pulumi.StringArrayOutput

func (VpcOutput) RouteTableAssociations

func (o VpcOutput) RouteTableAssociations() ec2.RouteTableAssociationArrayOutput

The Route Table Associations for the VPC.

func (VpcOutput) RouteTables

func (o VpcOutput) RouteTables() ec2.RouteTableArrayOutput

The Route Tables for the VPC.

func (VpcOutput) Routes

func (o VpcOutput) Routes() ec2.RouteArrayOutput

The Routes for the VPC.

func (VpcOutput) SubnetLayout added in v2.2.0

func (o VpcOutput) SubnetLayout() ResolvedSubnetSpecArrayOutput

The resolved subnet specs layout deployed to each availability zone.

func (VpcOutput) Subnets

func (o VpcOutput) Subnets() ec2.SubnetArrayOutput

The VPC's subnets.

func (VpcOutput) ToVpcOutput

func (o VpcOutput) ToVpcOutput() VpcOutput

func (VpcOutput) ToVpcOutputWithContext

func (o VpcOutput) ToVpcOutputWithContext(ctx context.Context) VpcOutput

func (VpcOutput) Vpc

func (o VpcOutput) Vpc() ec2.VpcOutput

The VPC.

func (VpcOutput) VpcEndpoints

func (o VpcOutput) VpcEndpoints() ec2.VpcEndpointArrayOutput

The VPC Endpoints that are enabled

func (VpcOutput) VpcId

func (o VpcOutput) VpcId() pulumi.StringOutput

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL