ec2patterns

package
v0.0.51 Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FourTierNetworkHub_DEFAULT_CIDR_RANGE

func FourTierNetworkHub_DEFAULT_CIDR_RANGE() *string

func FourTierNetworkHub_DEFAULT_SUBNETS

func FourTierNetworkHub_DEFAULT_SUBNETS() *[]*awsec2.SubnetConfiguration

func FourTierNetworkHub_DEFAULT_SUBNETS_NO_NAT

func FourTierNetworkHub_DEFAULT_SUBNETS_NO_NAT() *[]*awsec2.SubnetConfiguration

func FourTierNetworkHub_FromLookup

func FourTierNetworkHub_FromLookup(scope constructs.Construct, id *string, options *awsec2.VpcLookupOptions) awsec2.IVpc

Import an existing VPC by querying the AWS environment this stack is deployed to.

This function only needs to be used to use VPCs not defined in your CDK application. If you are looking to share a VPC between stacks, you can pass the `Vpc` object between stacks and use it as normal.

Calling this method will lead to a lookup when the CDK CLI is executed. You can therefore not use any values that will only be available at CloudFormation execution time (i.e., Tokens).

The VPC information will be cached in `cdk.context.json` and the same VPC will be used on future runs. To refresh the lookup, you will have to evict the value from the cache using the `cdk context` command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for more information.

func FourTierNetworkHub_FromVpcAttributes

func FourTierNetworkHub_FromVpcAttributes(scope constructs.Construct, id *string, attrs *awsec2.VpcAttributes) awsec2.IVpc

Import a VPC by supplying all attributes directly.

NOTE: using `fromVpcAttributes()` with deploy-time parameters (like a `Fn.importValue()` or `CfnParameter` to represent a list of subnet IDs) sometimes accidentally works. It happens to work for constructs that need a list of subnets (like `AutoScalingGroup` and `eks.Cluster`) but it does not work for constructs that need individual subnets (like `Instance`). See https://github.com/aws/aws-cdk/issues/4118 for more information.

Prefer to use `Vpc.fromLookup()` instead.

func FourTierNetworkHub_IsConstruct

func FourTierNetworkHub_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func FourTierNetworkHub_IsOwnedResource

func FourTierNetworkHub_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func FourTierNetworkHub_IsResource

func FourTierNetworkHub_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func FourTierNetworkSpoke_DEFAULT_CIDR_RANGE

func FourTierNetworkSpoke_DEFAULT_CIDR_RANGE() *string

func FourTierNetworkSpoke_DEFAULT_SUBNETS

func FourTierNetworkSpoke_DEFAULT_SUBNETS() *[]*awsec2.SubnetConfiguration

func FourTierNetworkSpoke_DEFAULT_SUBNETS_NO_NAT

func FourTierNetworkSpoke_DEFAULT_SUBNETS_NO_NAT() *[]*awsec2.SubnetConfiguration

func FourTierNetworkSpoke_FromLookup

func FourTierNetworkSpoke_FromLookup(scope constructs.Construct, id *string, options *awsec2.VpcLookupOptions) awsec2.IVpc

Import an existing VPC by querying the AWS environment this stack is deployed to.

This function only needs to be used to use VPCs not defined in your CDK application. If you are looking to share a VPC between stacks, you can pass the `Vpc` object between stacks and use it as normal.

Calling this method will lead to a lookup when the CDK CLI is executed. You can therefore not use any values that will only be available at CloudFormation execution time (i.e., Tokens).

The VPC information will be cached in `cdk.context.json` and the same VPC will be used on future runs. To refresh the lookup, you will have to evict the value from the cache using the `cdk context` command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for more information.

func FourTierNetworkSpoke_FromVpcAttributes

func FourTierNetworkSpoke_FromVpcAttributes(scope constructs.Construct, id *string, attrs *awsec2.VpcAttributes) awsec2.IVpc

Import a VPC by supplying all attributes directly.

NOTE: using `fromVpcAttributes()` with deploy-time parameters (like a `Fn.importValue()` or `CfnParameter` to represent a list of subnet IDs) sometimes accidentally works. It happens to work for constructs that need a list of subnets (like `AutoScalingGroup` and `eks.Cluster`) but it does not work for constructs that need individual subnets (like `Instance`). See https://github.com/aws/aws-cdk/issues/4118 for more information.

Prefer to use `Vpc.fromLookup()` instead.

func FourTierNetworkSpoke_IsConstruct

func FourTierNetworkSpoke_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func FourTierNetworkSpoke_IsOwnedResource

func FourTierNetworkSpoke_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func FourTierNetworkSpoke_IsResource

func FourTierNetworkSpoke_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func FourTierNetwork_DEFAULT_CIDR_RANGE

func FourTierNetwork_DEFAULT_CIDR_RANGE() *string

func FourTierNetwork_DEFAULT_SUBNETS

func FourTierNetwork_DEFAULT_SUBNETS() *[]*awsec2.SubnetConfiguration

func FourTierNetwork_DEFAULT_SUBNETS_NO_NAT

func FourTierNetwork_DEFAULT_SUBNETS_NO_NAT() *[]*awsec2.SubnetConfiguration

func FourTierNetwork_FromLookup

func FourTierNetwork_FromLookup(scope constructs.Construct, id *string, options *awsec2.VpcLookupOptions) awsec2.IVpc

Import an existing VPC by querying the AWS environment this stack is deployed to.

This function only needs to be used to use VPCs not defined in your CDK application. If you are looking to share a VPC between stacks, you can pass the `Vpc` object between stacks and use it as normal.

Calling this method will lead to a lookup when the CDK CLI is executed. You can therefore not use any values that will only be available at CloudFormation execution time (i.e., Tokens).

The VPC information will be cached in `cdk.context.json` and the same VPC will be used on future runs. To refresh the lookup, you will have to evict the value from the cache using the `cdk context` command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for more information.

func FourTierNetwork_FromVpcAttributes

func FourTierNetwork_FromVpcAttributes(scope constructs.Construct, id *string, attrs *awsec2.VpcAttributes) awsec2.IVpc

Import a VPC by supplying all attributes directly.

NOTE: using `fromVpcAttributes()` with deploy-time parameters (like a `Fn.importValue()` or `CfnParameter` to represent a list of subnet IDs) sometimes accidentally works. It happens to work for constructs that need a list of subnets (like `AutoScalingGroup` and `eks.Cluster`) but it does not work for constructs that need individual subnets (like `Instance`). See https://github.com/aws/aws-cdk/issues/4118 for more information.

Prefer to use `Vpc.fromLookup()` instead.

func FourTierNetwork_IsConstruct

func FourTierNetwork_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func FourTierNetwork_IsOwnedResource

func FourTierNetwork_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func FourTierNetwork_IsResource

func FourTierNetwork_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func IpAddressManager_DEFAULT_CIDR

func IpAddressManager_DEFAULT_CIDR() *string

func IpAddressManager_DEFAULT_POOL_ALLOCATION_MASK

func IpAddressManager_DEFAULT_POOL_ALLOCATION_MASK() *float64

func IpAddressManager_IsConstruct

func IpAddressManager_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func IpAddressManager_IsOwnedResource

func IpAddressManager_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func IpAddressManager_IsResource

func IpAddressManager_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func NetworkController_IsConstruct added in v0.0.51

func NetworkController_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func NetworkController_IsOwnedResource added in v0.0.51

func NetworkController_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func NetworkController_IsResource added in v0.0.51

func NetworkController_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func NewFourTierNetworkHub_Override

func NewFourTierNetworkHub_Override(f FourTierNetworkHub, scope constructs.IConstruct, id *string, props *FourTierNetworkHubProps)

func NewFourTierNetworkSpoke_Override

func NewFourTierNetworkSpoke_Override(f FourTierNetworkSpoke, scope constructs.IConstruct, id *string, props *FourTierNetworkSpokeProps)

func NewFourTierNetwork_Override

func NewFourTierNetwork_Override(f FourTierNetwork, scope constructs.IConstruct, id *string, props *FourTierNetworkProps)

func NewIpAddressManager_Override

func NewIpAddressManager_Override(i IpAddressManager, scope constructs.IConstruct, id *string, props *IpAddressManagerProps)

func NewNetworkController_Override added in v0.0.51

func NewNetworkController_Override(n NetworkController, scope constructs.IConstruct, id *string, props *NetworkControllerProps)

Types

type AddNetworkOptions added in v0.0.51

type AddNetworkOptions struct {
	Netmask *float64 `field:"optional" json:"netmask" yaml:"netmask"`
}

type AddPoolOptions

type AddPoolOptions struct {
	Cidrs                *[]*string `field:"optional" json:"cidrs" yaml:"cidrs"`
	DefaultNetmaskLength *float64   `field:"optional" json:"defaultNetmaskLength" yaml:"defaultNetmaskLength"`
}

type AddSpokeNetworkProps

type AddSpokeNetworkProps struct {
	AvailabilityZones      *[]*string                                    `field:"optional" json:"availabilityZones" yaml:"availabilityZones"`
	Cidr                   ec2.ICidrProvider                             `field:"optional" json:"cidr" yaml:"cidr"`
	DefaultInstanceTenancy awsec2.DefaultInstanceTenancy                 `field:"optional" json:"defaultInstanceTenancy" yaml:"defaultInstanceTenancy"`
	EnableDnsHostnames     *bool                                         `field:"optional" json:"enableDnsHostnames" yaml:"enableDnsHostnames"`
	EnableDnsSupport       *bool                                         `field:"optional" json:"enableDnsSupport" yaml:"enableDnsSupport"`
	FlowLogs               *map[string]*FlowLogOptions                   `field:"optional" json:"flowLogs" yaml:"flowLogs"`
	GatewayEndpoints       *map[string]*awsec2.GatewayVpcEndpointOptions `field:"optional" json:"gatewayEndpoints" yaml:"gatewayEndpoints"`
	MaxAzs                 *float64                                      `field:"optional" json:"maxAzs" yaml:"maxAzs"`
	VpcName                *string                                       `field:"optional" json:"vpcName" yaml:"vpcName"`
	VpnConnections         *map[string]*awsec2.VpnConnectionOptions      `field:"optional" json:"vpnConnections" yaml:"vpnConnections"`
	VpnGateway             *bool                                         `field:"optional" json:"vpnGateway" yaml:"vpnGateway"`
	VpnGatewayAsn          *float64                                      `field:"optional" json:"vpnGatewayAsn" yaml:"vpnGatewayAsn"`
	VpnRoutePropagation    *[]*awsec2.SubnetSelection                    `field:"optional" json:"vpnRoutePropagation" yaml:"vpnRoutePropagation"`
}

type AllocatePrivateNetworkOptions

type AllocatePrivateNetworkOptions struct {
	Netmask *float64 `field:"optional" json:"netmask" yaml:"netmask"`
	Pool    *string  `field:"optional" json:"pool" yaml:"pool"`
}

type FlowLogOptions

type FlowLogOptions struct {
	// Specifies the type of destination to which the flow log data is to be published.
	//
	// Flow log data can be published to CloudWatch Logs or Amazon S3.
	Destination awsec2.FlowLogDestination `field:"optional" json:"destination" yaml:"destination"`
	// The fields to include in the flow log record, in the order in which they should appear.
	//
	// If multiple fields are specified, they will be separated by spaces. For full control over the literal log format
	// string, pass a single field constructed with `LogFormat.custom()`.
	//
	// See https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records
	LogFormat *[]awsec2.LogFormat `field:"optional" json:"logFormat" yaml:"logFormat"`
	// The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record.
	MaxAggregationInterval awsec2.FlowLogMaxAggregationInterval `field:"optional" json:"maxAggregationInterval" yaml:"maxAggregationInterval"`
	// The type of traffic to log.
	//
	// You can log traffic that the resource accepts or rejects, or all traffic.
	TrafficType         awsec2.FlowLogTrafficType `field:"optional" json:"trafficType" yaml:"trafficType"`
	LogFormatDefinition ec2.FlowLogFormat         `field:"optional" json:"logFormatDefinition" yaml:"logFormatDefinition"`
}

type FourTierNetwork

type FourTierNetwork interface {
	awsec2.Vpc
	// AZs for this VPC.
	AvailabilityZones() *[]*string
	DefaultInstanceTenancy() awsec2.DefaultInstanceTenancy
	// Indicates if instances launched in this VPC will have public DNS hostnames.
	DnsHostnamesEnabled() *bool
	// Indicates if DNS support is enabled for this VPC.
	DnsSupportEnabled() *bool
	EnableDnsHostnames() *bool
	EnableDnsSupport() *bool
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	// If this is set to true, don't error out on trying to select subnets.
	IncompleteSubnetDefinition() *bool
	SetIncompleteSubnetDefinition(val *bool)
	// Dependencies for internet connectivity.
	InternetConnectivityEstablished() constructs.IDependable
	// Internet Gateway for the VPC.
	//
	// Note that in case the VPC is configured only
	// with ISOLATED subnets, this attribute will be `undefined`.
	InternetGatewayId() *string
	IpamPool() ec2.IIpamPool
	// List of isolated subnets in this VPC.
	IsolatedSubnets() *[]awsec2.ISubnet
	MaxAzs() *float64
	Netmask() *float64
	// The tree node.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	PhysicalName() *string
	// List of private subnets in this VPC.
	PrivateSubnets() *[]awsec2.ISubnet
	// List of public subnets in this VPC.
	PublicSubnets() *[]awsec2.ISubnet
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	// Arn of this VPC.
	VpcArn() *string
	// CIDR range for this VPC.
	VpcCidrBlock() *string
	VpcCidrBlockAssociations() *[]*string
	VpcDefaultNetworkAcl() *string
	VpcDefaultSecurityGroup() *string
	// Identifier for this VPC.
	VpcId() *string
	VpcIpv6CidrBlocks() *[]*string
	VpcName() *string
	// Returns the id of the VPN Gateway (if enabled).
	VpnGatewayId() *string
	// Adds a new client VPN endpoint to this VPC.
	AddClientVpnEndpoint(id *string, options *awsec2.ClientVpnEndpointOptions) awsec2.ClientVpnEndpoint
	// Adds a new flow log to this VPC.
	AddFlowLog(id *string, options *awsec2.FlowLogOptions) awsec2.FlowLog
	// Adds a new gateway endpoint to this VPC.
	AddGatewayEndpoint(id *string, options *awsec2.GatewayVpcEndpointOptions) awsec2.GatewayVpcEndpoint
	// Adds a new interface endpoint to this VPC.
	AddInterfaceEndpoint(id *string, options *awsec2.InterfaceVpcEndpointOptions) awsec2.InterfaceVpcEndpoint
	AddVpcFlowLog(id *string, options *FlowLogOptions) awsec2.FlowLog
	// Adds a new VPN connection to this VPC.
	AddVpnConnection(id *string, options *awsec2.VpnConnectionOptions) awsec2.VpnConnection
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Adds a VPN Gateway to this VPC.
	EnableVpnGateway(options *awsec2.EnableVpnGatewayOptions)
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	// Return the subnets appropriate for the placement strategy.
	SelectSubnetObjects(selection *awsec2.SubnetSelection) *[]awsec2.ISubnet
	// Returns IDs of selected subnets.
	SelectSubnets(selection *awsec2.SubnetSelection) *awsec2.SelectedSubnets
	// Returns a string representation of this construct.
	ToString() *string
}

func NewFourTierNetwork

func NewFourTierNetwork(scope constructs.IConstruct, id *string, props *FourTierNetworkProps) FourTierNetwork

type FourTierNetworkHub

type FourTierNetworkHub interface {
	FourTierNetwork
	// AZs for this VPC.
	AvailabilityZones() *[]*string
	DefaultInstanceTenancy() awsec2.DefaultInstanceTenancy
	// Indicates if instances launched in this VPC will have public DNS hostnames.
	DnsHostnamesEnabled() *bool
	// Indicates if DNS support is enabled for this VPC.
	DnsSupportEnabled() *bool
	EnableDnsHostnames() *bool
	EnableDnsSupport() *bool
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	GlobalNetwork() networkmanager.GlobalNetwork
	// If this is set to true, don't error out on trying to select subnets.
	IncompleteSubnetDefinition() *bool
	SetIncompleteSubnetDefinition(val *bool)
	// Dependencies for internet connectivity.
	InternetConnectivityEstablished() constructs.IDependable
	// Internet Gateway for the VPC.
	//
	// Note that in case the VPC is configured only
	// with ISOLATED subnets, this attribute will be `undefined`.
	InternetGatewayId() *string
	IpamPool() ec2.IIpamPool
	// List of isolated subnets in this VPC.
	IsolatedSubnets() *[]awsec2.ISubnet
	MaxAzs() *float64
	Netmask() *float64
	// The tree node.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	PhysicalName() *string
	// List of private subnets in this VPC.
	PrivateSubnets() *[]awsec2.ISubnet
	// List of public subnets in this VPC.
	PublicSubnets() *[]awsec2.ISubnet
	Sharing() *FourTierNetworkShareProperties
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	TransitGateway() ec2.ITransitGateway
	// Arn of this VPC.
	VpcArn() *string
	// CIDR range for this VPC.
	VpcCidrBlock() *string
	VpcCidrBlockAssociations() *[]*string
	VpcDefaultNetworkAcl() *string
	VpcDefaultSecurityGroup() *string
	// Identifier for this VPC.
	VpcId() *string
	VpcIpv6CidrBlocks() *[]*string
	VpcName() *string
	// Returns the id of the VPN Gateway (if enabled).
	VpnGatewayId() *string
	// Adds a new client VPN endpoint to this VPC.
	AddClientVpnEndpoint(id *string, options *awsec2.ClientVpnEndpointOptions) awsec2.ClientVpnEndpoint
	// Adds a new flow log to this VPC.
	AddFlowLog(id *string, options *awsec2.FlowLogOptions) awsec2.FlowLog
	// Adds a new gateway endpoint to this VPC.
	AddGatewayEndpoint(id *string, options *awsec2.GatewayVpcEndpointOptions) awsec2.GatewayVpcEndpoint
	// Adds a new interface endpoint to this VPC.
	AddInterfaceEndpoint(id *string, options *awsec2.InterfaceVpcEndpointOptions) awsec2.InterfaceVpcEndpoint
	AddSpoke(scope constructs.IConstruct, id *string, props *AddSpokeNetworkProps) FourTierNetworkSpoke
	AddVpcFlowLog(id *string, options *FlowLogOptions) awsec2.FlowLog
	// Adds a new VPN connection to this VPC.
	AddVpnConnection(id *string, options *awsec2.VpnConnectionOptions) awsec2.VpnConnection
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	EnableTransitGateway(props *ec2.TransitGatewayProps) ec2.ITransitGateway
	// Adds a VPN Gateway to this VPC.
	EnableVpnGateway(options *awsec2.EnableVpnGatewayOptions)
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	// Return the subnets appropriate for the placement strategy.
	SelectSubnetObjects(selection *awsec2.SubnetSelection) *[]awsec2.ISubnet
	// Returns IDs of selected subnets.
	SelectSubnets(selection *awsec2.SubnetSelection) *awsec2.SelectedSubnets
	// Returns a string representation of this construct.
	ToString() *string
}

func NewFourTierNetworkHub

func NewFourTierNetworkHub(scope constructs.IConstruct, id *string, props *FourTierNetworkHubProps) FourTierNetworkHub

type FourTierNetworkHubProps

type FourTierNetworkHubProps struct {
	// The AWS account ID this resource belongs to.
	Account *string `field:"optional" json:"account" yaml:"account"`
	// ARN to deduce region and account from.
	//
	// The ARN is parsed and the account and region are taken from the ARN.
	// This should be used for imported resources.
	//
	// Cannot be supplied together with either `account` or `region`.
	EnvironmentFromArn *string `field:"optional" json:"environmentFromArn" yaml:"environmentFromArn"`
	// The value passed in by users to the physical name prop of the resource.
	//
	// - `undefined` implies that a physical name will be allocated by
	//   CloudFormation during deployment.
	// - a concrete value implies a specific physical name
	// - `PhysicalName.GENERATE_IF_NEEDED` is a marker that indicates that a physical will only be generated
	//   by the CDK if it is needed for cross-environment references. Otherwise, it will be allocated by CloudFormation.
	PhysicalName *string `field:"optional" json:"physicalName" yaml:"physicalName"`
	// The AWS region this resource belongs to.
	Region                 *string                                       `field:"optional" json:"region" yaml:"region"`
	AvailabilityZones      *[]*string                                    `field:"optional" json:"availabilityZones" yaml:"availabilityZones"`
	Cidr                   ec2.ICidrProvider                             `field:"optional" json:"cidr" yaml:"cidr"`
	DefaultInstanceTenancy awsec2.DefaultInstanceTenancy                 `field:"optional" json:"defaultInstanceTenancy" yaml:"defaultInstanceTenancy"`
	EnableDnsHostnames     *bool                                         `field:"optional" json:"enableDnsHostnames" yaml:"enableDnsHostnames"`
	EnableDnsSupport       *bool                                         `field:"optional" json:"enableDnsSupport" yaml:"enableDnsSupport"`
	FlowLogs               *map[string]*FlowLogOptions                   `field:"optional" json:"flowLogs" yaml:"flowLogs"`
	GatewayEndpoints       *map[string]*awsec2.GatewayVpcEndpointOptions `field:"optional" json:"gatewayEndpoints" yaml:"gatewayEndpoints"`
	GlobalNetwork          networkmanager.GlobalNetwork                  `field:"optional" json:"globalNetwork" yaml:"globalNetwork"`
	MaxAzs                 *float64                                      `field:"optional" json:"maxAzs" yaml:"maxAzs"`
	Sharing                *FourTierNetworkShareProperties               `field:"optional" json:"sharing" yaml:"sharing"`
	VpcName                *string                                       `field:"optional" json:"vpcName" yaml:"vpcName"`
	VpnConnections         *map[string]*awsec2.VpnConnectionOptions      `field:"optional" json:"vpnConnections" yaml:"vpnConnections"`
	VpnGateway             *bool                                         `field:"optional" json:"vpnGateway" yaml:"vpnGateway"`
	VpnGatewayAsn          *float64                                      `field:"optional" json:"vpnGatewayAsn" yaml:"vpnGatewayAsn"`
	VpnRoutePropagation    *[]*awsec2.SubnetSelection                    `field:"optional" json:"vpnRoutePropagation" yaml:"vpnRoutePropagation"`
}

type FourTierNetworkProps

type FourTierNetworkProps struct {
	AvailabilityZones      *[]*string                                    `field:"optional" json:"availabilityZones" yaml:"availabilityZones"`
	Cidr                   ec2.ICidrProvider                             `field:"optional" json:"cidr" yaml:"cidr"`
	DefaultInstanceTenancy awsec2.DefaultInstanceTenancy                 `field:"optional" json:"defaultInstanceTenancy" yaml:"defaultInstanceTenancy"`
	EnableDnsHostnames     *bool                                         `field:"optional" json:"enableDnsHostnames" yaml:"enableDnsHostnames"`
	EnableDnsSupport       *bool                                         `field:"optional" json:"enableDnsSupport" yaml:"enableDnsSupport"`
	FlowLogs               *map[string]*FlowLogOptions                   `field:"optional" json:"flowLogs" yaml:"flowLogs"`
	GatewayEndpoints       *map[string]*awsec2.GatewayVpcEndpointOptions `field:"optional" json:"gatewayEndpoints" yaml:"gatewayEndpoints"`
	MaxAzs                 *float64                                      `field:"optional" json:"maxAzs" yaml:"maxAzs"`
	NatGatewayProvider     awsec2.NatProvider                            `field:"optional" json:"natGatewayProvider" yaml:"natGatewayProvider"`
	NatGateways            *float64                                      `field:"optional" json:"natGateways" yaml:"natGateways"`
	NatGatewaySubnets      *awsec2.SubnetSelection                       `field:"optional" json:"natGatewaySubnets" yaml:"natGatewaySubnets"`
	VpcName                *string                                       `field:"optional" json:"vpcName" yaml:"vpcName"`
	VpnConnections         *map[string]*awsec2.VpnConnectionOptions      `field:"optional" json:"vpnConnections" yaml:"vpnConnections"`
	VpnGateway             *bool                                         `field:"optional" json:"vpnGateway" yaml:"vpnGateway"`
	VpnGatewayAsn          *float64                                      `field:"optional" json:"vpnGatewayAsn" yaml:"vpnGatewayAsn"`
	VpnRoutePropagation    *[]*awsec2.SubnetSelection                    `field:"optional" json:"vpnRoutePropagation" yaml:"vpnRoutePropagation"`
}

type FourTierNetworkShareProperties

type FourTierNetworkShareProperties struct {
	AllowExternalPrincipals *bool                   `field:"optional" json:"allowExternalPrincipals" yaml:"allowExternalPrincipals"`
	AutoAddAccounts         *bool                   `field:"optional" json:"autoAddAccounts" yaml:"autoAddAccounts"`
	Pricipals               *[]ram.ISharedPrincipal `field:"optional" json:"pricipals" yaml:"pricipals"`
}

type FourTierNetworkSpoke

type FourTierNetworkSpoke interface {
	FourTierNetwork
	// AZs for this VPC.
	AvailabilityZones() *[]*string
	DefaultInstanceTenancy() awsec2.DefaultInstanceTenancy
	// Indicates if instances launched in this VPC will have public DNS hostnames.
	DnsHostnamesEnabled() *bool
	// Indicates if DNS support is enabled for this VPC.
	DnsSupportEnabled() *bool
	EnableDnsHostnames() *bool
	EnableDnsSupport() *bool
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	// If this is set to true, don't error out on trying to select subnets.
	IncompleteSubnetDefinition() *bool
	SetIncompleteSubnetDefinition(val *bool)
	// Dependencies for internet connectivity.
	InternetConnectivityEstablished() constructs.IDependable
	// Internet Gateway for the VPC.
	//
	// Note that in case the VPC is configured only
	// with ISOLATED subnets, this attribute will be `undefined`.
	InternetGatewayId() *string
	IpamPool() ec2.IIpamPool
	// List of isolated subnets in this VPC.
	IsolatedSubnets() *[]awsec2.ISubnet
	MaxAzs() *float64
	Netmask() *float64
	// The tree node.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	PhysicalName() *string
	// List of private subnets in this VPC.
	PrivateSubnets() *[]awsec2.ISubnet
	// List of public subnets in this VPC.
	PublicSubnets() *[]awsec2.ISubnet
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	TransitGateway() ec2.ITransitGateway
	TransitGatewayAttachment() ec2.ITransitGatewayAttachment
	// Arn of this VPC.
	VpcArn() *string
	// CIDR range for this VPC.
	VpcCidrBlock() *string
	VpcCidrBlockAssociations() *[]*string
	VpcDefaultNetworkAcl() *string
	VpcDefaultSecurityGroup() *string
	// Identifier for this VPC.
	VpcId() *string
	VpcIpv6CidrBlocks() *[]*string
	VpcName() *string
	// Returns the id of the VPN Gateway (if enabled).
	VpnGatewayId() *string
	// Adds a new client VPN endpoint to this VPC.
	AddClientVpnEndpoint(id *string, options *awsec2.ClientVpnEndpointOptions) awsec2.ClientVpnEndpoint
	// Adds a new flow log to this VPC.
	AddFlowLog(id *string, options *awsec2.FlowLogOptions) awsec2.FlowLog
	// Adds a new gateway endpoint to this VPC.
	AddGatewayEndpoint(id *string, options *awsec2.GatewayVpcEndpointOptions) awsec2.GatewayVpcEndpoint
	// Adds a new interface endpoint to this VPC.
	AddInterfaceEndpoint(id *string, options *awsec2.InterfaceVpcEndpointOptions) awsec2.InterfaceVpcEndpoint
	AddVpcFlowLog(id *string, options *FlowLogOptions) awsec2.FlowLog
	// Adds a new VPN connection to this VPC.
	AddVpnConnection(id *string, options *awsec2.VpnConnectionOptions) awsec2.VpnConnection
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Adds a VPN Gateway to this VPC.
	EnableVpnGateway(options *awsec2.EnableVpnGatewayOptions)
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	// Return the subnets appropriate for the placement strategy.
	SelectSubnetObjects(selection *awsec2.SubnetSelection) *[]awsec2.ISubnet
	// Returns IDs of selected subnets.
	SelectSubnets(selection *awsec2.SubnetSelection) *awsec2.SelectedSubnets
	// Returns a string representation of this construct.
	ToString() *string
}

func NewFourTierNetworkSpoke

func NewFourTierNetworkSpoke(scope constructs.IConstruct, id *string, props *FourTierNetworkSpokeProps) FourTierNetworkSpoke

type FourTierNetworkSpokeProps

type FourTierNetworkSpokeProps struct {
	// The AWS account ID this resource belongs to.
	Account *string `field:"optional" json:"account" yaml:"account"`
	// ARN to deduce region and account from.
	//
	// The ARN is parsed and the account and region are taken from the ARN.
	// This should be used for imported resources.
	//
	// Cannot be supplied together with either `account` or `region`.
	EnvironmentFromArn *string `field:"optional" json:"environmentFromArn" yaml:"environmentFromArn"`
	// The value passed in by users to the physical name prop of the resource.
	//
	// - `undefined` implies that a physical name will be allocated by
	//   CloudFormation during deployment.
	// - a concrete value implies a specific physical name
	// - `PhysicalName.GENERATE_IF_NEEDED` is a marker that indicates that a physical will only be generated
	//   by the CDK if it is needed for cross-environment references. Otherwise, it will be allocated by CloudFormation.
	PhysicalName *string `field:"optional" json:"physicalName" yaml:"physicalName"`
	// The AWS region this resource belongs to.
	Region                 *string                                       `field:"optional" json:"region" yaml:"region"`
	Hub                    FourTierNetworkHub                            `field:"required" json:"hub" yaml:"hub"`
	AvailabilityZones      *[]*string                                    `field:"optional" json:"availabilityZones" yaml:"availabilityZones"`
	Cidr                   ec2.ICidrProvider                             `field:"optional" json:"cidr" yaml:"cidr"`
	DefaultInstanceTenancy awsec2.DefaultInstanceTenancy                 `field:"optional" json:"defaultInstanceTenancy" yaml:"defaultInstanceTenancy"`
	EnableDnsHostnames     *bool                                         `field:"optional" json:"enableDnsHostnames" yaml:"enableDnsHostnames"`
	EnableDnsSupport       *bool                                         `field:"optional" json:"enableDnsSupport" yaml:"enableDnsSupport"`
	FlowLogs               *map[string]*awsec2.FlowLogOptions            `field:"optional" json:"flowLogs" yaml:"flowLogs"`
	GatewayEndpoints       *map[string]*awsec2.GatewayVpcEndpointOptions `field:"optional" json:"gatewayEndpoints" yaml:"gatewayEndpoints"`
	MaxAzs                 *float64                                      `field:"optional" json:"maxAzs" yaml:"maxAzs"`
	VpcName                *string                                       `field:"optional" json:"vpcName" yaml:"vpcName"`
	VpnConnections         *map[string]*awsec2.VpnConnectionOptions      `field:"optional" json:"vpnConnections" yaml:"vpnConnections"`
	VpnGateway             *bool                                         `field:"optional" json:"vpnGateway" yaml:"vpnGateway"`
	VpnGatewayAsn          *float64                                      `field:"optional" json:"vpnGatewayAsn" yaml:"vpnGatewayAsn"`
	VpnRoutePropagation    *[]*awsec2.SubnetSelection                    `field:"optional" json:"vpnRoutePropagation" yaml:"vpnRoutePropagation"`
}

type IpAddressManager

type IpAddressManager interface {
	awscdk.Resource
	AllowExternalPricipals() *bool
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	Ipam() ec2.Ipam
	// The tree node.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	PhysicalName() *string
	ResourceShare() ram.ResourceShare
	SharingEnabled() *bool
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	AddPrivatePool(name *string, options *AddPoolOptions) ec2.IIpamPool
	AddRegion(region *string)
	AddStagePool(scope constructs.IConstruct, parent ec2.IIpamPool) ec2.IpamPool
	AllocatePrivateNetwork(scope constructs.IConstruct, id *string, options *AllocatePrivateNetworkOptions) ec2.IpamPool
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	RegisterAccount(account *string, pool ec2.IIpamPool)
	// Returns a string representation of this construct.
	ToString() *string
}

func NewIpAddressManager

func NewIpAddressManager(scope constructs.IConstruct, id *string, props *IpAddressManagerProps) IpAddressManager

type IpAddressManagerProps

type IpAddressManagerProps struct {
	// The AWS account ID this resource belongs to.
	Account *string `field:"optional" json:"account" yaml:"account"`
	// ARN to deduce region and account from.
	//
	// The ARN is parsed and the account and region are taken from the ARN.
	// This should be used for imported resources.
	//
	// Cannot be supplied together with either `account` or `region`.
	EnvironmentFromArn *string `field:"optional" json:"environmentFromArn" yaml:"environmentFromArn"`
	// The value passed in by users to the physical name prop of the resource.
	//
	// - `undefined` implies that a physical name will be allocated by
	//   CloudFormation during deployment.
	// - a concrete value implies a specific physical name
	// - `PhysicalName.GENERATE_IF_NEEDED` is a marker that indicates that a physical will only be generated
	//   by the CDK if it is needed for cross-environment references. Otherwise, it will be allocated by CloudFormation.
	PhysicalName *string `field:"optional" json:"physicalName" yaml:"physicalName"`
	// The AWS region this resource belongs to.
	Region                    *string                       `field:"optional" json:"region" yaml:"region"`
	DefaultPoolAllocationMask *float64                      `field:"optional" json:"defaultPoolAllocationMask" yaml:"defaultPoolAllocationMask"`
	DefaultPoolCidrs          *[]*string                    `field:"optional" json:"defaultPoolCidrs" yaml:"defaultPoolCidrs"`
	Regions                   *[]*string                    `field:"optional" json:"regions" yaml:"regions"`
	Sharing                   *IpAddressManagerSharingProps `field:"optional" json:"sharing" yaml:"sharing"`
}

type IpAddressManagerSharingProps

type IpAddressManagerSharingProps struct {
	AllowExternalPricipals *bool `field:"optional" json:"allowExternalPricipals" yaml:"allowExternalPricipals"`
	Enabled                *bool `field:"optional" json:"enabled" yaml:"enabled"`
}

type NetworkController added in v0.0.51

type NetworkController interface {
	awscdk.Resource
	AddressManager() IpAddressManager
	DefaultNetmask() *float64
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	GlobalNetwork() networkmanager.GlobalNetwork
	// The tree node.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	PhysicalName() *string
	RegisteredAccounts() *[]*string
	RegisteredRegions() *[]*string
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	AddHub(scope constructs.IConstruct, id *string, options *AddNetworkOptions) FourTierNetworkHub
	AddSpoke(scope constructs.IConstruct, id *string, options *AddNetworkOptions) FourTierNetworkSpoke
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	RegisterAccount(account *string)
	RegisterRegion(region *string)
	// Returns a string representation of this construct.
	ToString() *string
}

func NewNetworkController added in v0.0.51

func NewNetworkController(scope constructs.IConstruct, id *string, props *NetworkControllerProps) NetworkController

type NetworkControllerProps added in v0.0.51

type NetworkControllerProps struct {
	// The AWS account ID this resource belongs to.
	Account *string `field:"optional" json:"account" yaml:"account"`
	// ARN to deduce region and account from.
	//
	// The ARN is parsed and the account and region are taken from the ARN.
	// This should be used for imported resources.
	//
	// Cannot be supplied together with either `account` or `region`.
	EnvironmentFromArn *string `field:"optional" json:"environmentFromArn" yaml:"environmentFromArn"`
	// The value passed in by users to the physical name prop of the resource.
	//
	// - `undefined` implies that a physical name will be allocated by
	//   CloudFormation during deployment.
	// - a concrete value implies a specific physical name
	// - `PhysicalName.GENERATE_IF_NEEDED` is a marker that indicates that a physical will only be generated
	//   by the CDK if it is needed for cross-environment references. Otherwise, it will be allocated by CloudFormation.
	PhysicalName *string `field:"optional" json:"physicalName" yaml:"physicalName"`
	// The AWS region this resource belongs to.
	Region         *string  `field:"optional" json:"region" yaml:"region"`
	DefaultNetmask *float64 `field:"optional" json:"defaultNetmask" yaml:"defaultNetmask"`
}

type TransitGatewayHubConfiguration

type TransitGatewayHubConfiguration struct {
	// Allows Transit Gateway sharing with resources outside of the Transit Gateway owner account's AWS Organization.
	//
	// By default, resources cannot be shared with accounts outside of the organization.
	AllowExternal *bool `field:"optional" json:"allowExternal" yaml:"allowExternal"`
	// Enable or disable automatic acceptance of attachment requests.
	//
	// When this is enabled, any transit gateway attachments created in other accounts where this
	// transit gateway has been shared will be automatically created without manual intervention
	// being needed in the account that did created the share.
	AutoAcceptSharedAttachments *bool `field:"optional" json:"autoAcceptSharedAttachments" yaml:"autoAcceptSharedAttachments"`
	// Enables auto-discovery of AWS accounts via CDK resources.
	//
	// Account discovery uses stages
	// and stacks to find all accounts that the CDK has resources for.
	//
	// Environment agnostic stages and stacks cannot be used for auto-discovery.
	//
	// With auto-discovery enabled, the stack containing the Transit Gateway will need to be
	// updated before it will become available in newly added accounts. Because of this it is
	// inferior to using grouping principals such as organizations or organizational units.
	//
	// If access to sharing via AWS OIrganizations is available, that should be preferred over
	// auto-discovery.
	//
	// Transit gateway sharing will be anabled if either auto-discovery is enabled or principals
	// are specified.
	AutoDiscovery *bool `field:"optional" json:"autoDiscovery" yaml:"autoDiscovery"`
	// The ID of the default Transit Gateway Route Table that got created for the Transit Gateway associated with this VPC.
	//
	// This is needed because the default route table is used for handling routing of all traffic within
	// the organization but not exposed directly via CloudFormation.
	//
	// See [feature request](https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/180)
	// related to this in the AWS CloudFormation roadmap.
	//
	// This is only needed if the VPC is being configured to act as a hub for network traffic. Won't be
	// available until after this stack has been deployed for the first time.
	DefaultRouteTableId *string `field:"optional" json:"defaultRouteTableId" yaml:"defaultRouteTableId"`
	// A list of principals which allow other accounts access to the Transit Gateway.
	//
	// With shared
	// access, other accounts can create Attachments to facilitate cross account networking.
	//
	// Principals provided should not overlap with CDK resources if auto-discovery is enabled.
	//
	// Transit gateway sharing will be anabled if either auto-discovery is enabled or principals
	// are specified.
	Principals *[]ram.ISharedPrincipal `field:"optional" json:"principals" yaml:"principals"`
}

type TransitGatewaySpokeConfiguration

type TransitGatewaySpokeConfiguration struct {
	// The ID of a Transit Gateway.
	//
	// This Transit Gateway may have been created by another VPC in the
	// same account or shared by a VPC in another account. If this is passed then a Transit Gateway
	// Attachment will be created for the specified Transit Gateway and a new one will not be created
	// even if {@link TransitGatewayHubConfiguration.principal | principals} are provided.
	TransitGatewayId *string `field:"required" json:"transitGatewayId" yaml:"transitGatewayId"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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