awsec2

package
v2.17.0 Latest Latest
Warning

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

Go to latest
Published: Mar 17, 2022 License: Apache-2.0 Imports: 12 Imported by: 109

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AmazonLinuxImage_SsmParameterName

func AmazonLinuxImage_SsmParameterName(props *AmazonLinuxImageProps) *string

Return the SSM parameter name that will contain the Amazon Linux image with the given attributes.

func BastionHostLinux_IsConstruct

func BastionHostLinux_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 BastionHostLinux_IsResource

func BastionHostLinux_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func CfnCapacityReservationFleet_CFN_RESOURCE_TYPE_NAME

func CfnCapacityReservationFleet_CFN_RESOURCE_TYPE_NAME() *string

func CfnCapacityReservationFleet_IsCfnElement

func CfnCapacityReservationFleet_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnCapacityReservationFleet_IsCfnResource

func CfnCapacityReservationFleet_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnCapacityReservationFleet_IsConstruct

func CfnCapacityReservationFleet_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 CfnCapacityReservation_CFN_RESOURCE_TYPE_NAME

func CfnCapacityReservation_CFN_RESOURCE_TYPE_NAME() *string

func CfnCapacityReservation_IsCfnElement

func CfnCapacityReservation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnCapacityReservation_IsCfnResource

func CfnCapacityReservation_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnCapacityReservation_IsConstruct

func CfnCapacityReservation_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 CfnCarrierGateway_CFN_RESOURCE_TYPE_NAME

func CfnCarrierGateway_CFN_RESOURCE_TYPE_NAME() *string

func CfnCarrierGateway_IsCfnElement

func CfnCarrierGateway_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnCarrierGateway_IsCfnResource

func CfnCarrierGateway_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnCarrierGateway_IsConstruct

func CfnCarrierGateway_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 CfnClientVpnAuthorizationRule_CFN_RESOURCE_TYPE_NAME

func CfnClientVpnAuthorizationRule_CFN_RESOURCE_TYPE_NAME() *string

func CfnClientVpnAuthorizationRule_IsCfnElement

func CfnClientVpnAuthorizationRule_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnClientVpnAuthorizationRule_IsCfnResource

func CfnClientVpnAuthorizationRule_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnClientVpnAuthorizationRule_IsConstruct

func CfnClientVpnAuthorizationRule_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 CfnClientVpnEndpoint_CFN_RESOURCE_TYPE_NAME

func CfnClientVpnEndpoint_CFN_RESOURCE_TYPE_NAME() *string

func CfnClientVpnEndpoint_IsCfnElement

func CfnClientVpnEndpoint_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnClientVpnEndpoint_IsCfnResource

func CfnClientVpnEndpoint_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnClientVpnEndpoint_IsConstruct

func CfnClientVpnEndpoint_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 CfnClientVpnRoute_CFN_RESOURCE_TYPE_NAME

func CfnClientVpnRoute_CFN_RESOURCE_TYPE_NAME() *string

func CfnClientVpnRoute_IsCfnElement

func CfnClientVpnRoute_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnClientVpnRoute_IsCfnResource

func CfnClientVpnRoute_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnClientVpnRoute_IsConstruct

func CfnClientVpnRoute_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 CfnClientVpnTargetNetworkAssociation_CFN_RESOURCE_TYPE_NAME

func CfnClientVpnTargetNetworkAssociation_CFN_RESOURCE_TYPE_NAME() *string

func CfnClientVpnTargetNetworkAssociation_IsCfnElement

func CfnClientVpnTargetNetworkAssociation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnClientVpnTargetNetworkAssociation_IsCfnResource

func CfnClientVpnTargetNetworkAssociation_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnClientVpnTargetNetworkAssociation_IsConstruct

func CfnClientVpnTargetNetworkAssociation_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 CfnCustomerGateway_CFN_RESOURCE_TYPE_NAME

func CfnCustomerGateway_CFN_RESOURCE_TYPE_NAME() *string

func CfnCustomerGateway_IsCfnElement

func CfnCustomerGateway_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnCustomerGateway_IsCfnResource

func CfnCustomerGateway_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnCustomerGateway_IsConstruct

func CfnCustomerGateway_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 CfnDHCPOptions_CFN_RESOURCE_TYPE_NAME

func CfnDHCPOptions_CFN_RESOURCE_TYPE_NAME() *string

func CfnDHCPOptions_IsCfnElement

func CfnDHCPOptions_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnDHCPOptions_IsCfnResource

func CfnDHCPOptions_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnDHCPOptions_IsConstruct

func CfnDHCPOptions_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 CfnEC2Fleet_CFN_RESOURCE_TYPE_NAME

func CfnEC2Fleet_CFN_RESOURCE_TYPE_NAME() *string

func CfnEC2Fleet_IsCfnElement

func CfnEC2Fleet_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnEC2Fleet_IsCfnResource

func CfnEC2Fleet_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnEC2Fleet_IsConstruct

func CfnEC2Fleet_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 CfnEIPAssociation_CFN_RESOURCE_TYPE_NAME

func CfnEIPAssociation_CFN_RESOURCE_TYPE_NAME() *string

func CfnEIPAssociation_IsCfnElement

func CfnEIPAssociation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnEIPAssociation_IsCfnResource

func CfnEIPAssociation_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnEIPAssociation_IsConstruct

func CfnEIPAssociation_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 CfnEIP_CFN_RESOURCE_TYPE_NAME

func CfnEIP_CFN_RESOURCE_TYPE_NAME() *string

func CfnEIP_IsCfnElement

func CfnEIP_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnEIP_IsCfnResource

func CfnEIP_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnEIP_IsConstruct

func CfnEIP_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 CfnEgressOnlyInternetGateway_CFN_RESOURCE_TYPE_NAME

func CfnEgressOnlyInternetGateway_CFN_RESOURCE_TYPE_NAME() *string

func CfnEgressOnlyInternetGateway_IsCfnElement

func CfnEgressOnlyInternetGateway_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnEgressOnlyInternetGateway_IsCfnResource

func CfnEgressOnlyInternetGateway_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnEgressOnlyInternetGateway_IsConstruct

func CfnEgressOnlyInternetGateway_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 CfnEnclaveCertificateIamRoleAssociation_CFN_RESOURCE_TYPE_NAME

func CfnEnclaveCertificateIamRoleAssociation_CFN_RESOURCE_TYPE_NAME() *string

func CfnEnclaveCertificateIamRoleAssociation_IsCfnElement

func CfnEnclaveCertificateIamRoleAssociation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnEnclaveCertificateIamRoleAssociation_IsCfnResource

func CfnEnclaveCertificateIamRoleAssociation_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnEnclaveCertificateIamRoleAssociation_IsConstruct

func CfnEnclaveCertificateIamRoleAssociation_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 CfnFlowLog_CFN_RESOURCE_TYPE_NAME

func CfnFlowLog_CFN_RESOURCE_TYPE_NAME() *string

func CfnFlowLog_IsCfnElement

func CfnFlowLog_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnFlowLog_IsCfnResource

func CfnFlowLog_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnFlowLog_IsConstruct

func CfnFlowLog_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 CfnGatewayRouteTableAssociation_CFN_RESOURCE_TYPE_NAME

func CfnGatewayRouteTableAssociation_CFN_RESOURCE_TYPE_NAME() *string

func CfnGatewayRouteTableAssociation_IsCfnElement

func CfnGatewayRouteTableAssociation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnGatewayRouteTableAssociation_IsCfnResource

func CfnGatewayRouteTableAssociation_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnGatewayRouteTableAssociation_IsConstruct

func CfnGatewayRouteTableAssociation_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 CfnHost_CFN_RESOURCE_TYPE_NAME

func CfnHost_CFN_RESOURCE_TYPE_NAME() *string

func CfnHost_IsCfnElement

func CfnHost_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnHost_IsCfnResource

func CfnHost_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnHost_IsConstruct

func CfnHost_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 CfnIPAMAllocation_CFN_RESOURCE_TYPE_NAME added in v2.2.0

func CfnIPAMAllocation_CFN_RESOURCE_TYPE_NAME() *string

func CfnIPAMAllocation_IsCfnElement added in v2.2.0

func CfnIPAMAllocation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnIPAMAllocation_IsCfnResource added in v2.2.0

func CfnIPAMAllocation_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnIPAMAllocation_IsConstruct added in v2.2.0

func CfnIPAMAllocation_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 CfnIPAMPool_CFN_RESOURCE_TYPE_NAME added in v2.2.0

func CfnIPAMPool_CFN_RESOURCE_TYPE_NAME() *string

func CfnIPAMPool_IsCfnElement added in v2.2.0

func CfnIPAMPool_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnIPAMPool_IsCfnResource added in v2.2.0

func CfnIPAMPool_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnIPAMPool_IsConstruct added in v2.2.0

func CfnIPAMPool_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 CfnIPAMScope_CFN_RESOURCE_TYPE_NAME added in v2.2.0

func CfnIPAMScope_CFN_RESOURCE_TYPE_NAME() *string

func CfnIPAMScope_IsCfnElement added in v2.2.0

func CfnIPAMScope_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnIPAMScope_IsCfnResource added in v2.2.0

func CfnIPAMScope_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnIPAMScope_IsConstruct added in v2.2.0

func CfnIPAMScope_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 CfnIPAM_CFN_RESOURCE_TYPE_NAME added in v2.2.0

func CfnIPAM_CFN_RESOURCE_TYPE_NAME() *string

func CfnIPAM_IsCfnElement added in v2.2.0

func CfnIPAM_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnIPAM_IsCfnResource added in v2.2.0

func CfnIPAM_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnIPAM_IsConstruct added in v2.2.0

func CfnIPAM_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 CfnInstance_CFN_RESOURCE_TYPE_NAME

func CfnInstance_CFN_RESOURCE_TYPE_NAME() *string

func CfnInstance_IsCfnElement

func CfnInstance_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnInstance_IsCfnResource

func CfnInstance_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnInstance_IsConstruct

func CfnInstance_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 CfnInternetGateway_CFN_RESOURCE_TYPE_NAME

func CfnInternetGateway_CFN_RESOURCE_TYPE_NAME() *string

func CfnInternetGateway_IsCfnElement

func CfnInternetGateway_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnInternetGateway_IsCfnResource

func CfnInternetGateway_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnInternetGateway_IsConstruct

func CfnInternetGateway_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 CfnLaunchTemplate_CFN_RESOURCE_TYPE_NAME

func CfnLaunchTemplate_CFN_RESOURCE_TYPE_NAME() *string

func CfnLaunchTemplate_IsCfnElement

func CfnLaunchTemplate_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnLaunchTemplate_IsCfnResource

func CfnLaunchTemplate_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnLaunchTemplate_IsConstruct

func CfnLaunchTemplate_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 CfnLocalGatewayRouteTableVPCAssociation_CFN_RESOURCE_TYPE_NAME

func CfnLocalGatewayRouteTableVPCAssociation_CFN_RESOURCE_TYPE_NAME() *string

func CfnLocalGatewayRouteTableVPCAssociation_IsCfnElement

func CfnLocalGatewayRouteTableVPCAssociation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnLocalGatewayRouteTableVPCAssociation_IsCfnResource

func CfnLocalGatewayRouteTableVPCAssociation_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnLocalGatewayRouteTableVPCAssociation_IsConstruct

func CfnLocalGatewayRouteTableVPCAssociation_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 CfnLocalGatewayRoute_CFN_RESOURCE_TYPE_NAME

func CfnLocalGatewayRoute_CFN_RESOURCE_TYPE_NAME() *string

func CfnLocalGatewayRoute_IsCfnElement

func CfnLocalGatewayRoute_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnLocalGatewayRoute_IsCfnResource

func CfnLocalGatewayRoute_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnLocalGatewayRoute_IsConstruct

func CfnLocalGatewayRoute_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 CfnNatGateway_CFN_RESOURCE_TYPE_NAME

func CfnNatGateway_CFN_RESOURCE_TYPE_NAME() *string

func CfnNatGateway_IsCfnElement

func CfnNatGateway_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnNatGateway_IsCfnResource

func CfnNatGateway_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnNatGateway_IsConstruct

func CfnNatGateway_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 CfnNetworkAclEntry_CFN_RESOURCE_TYPE_NAME

func CfnNetworkAclEntry_CFN_RESOURCE_TYPE_NAME() *string

func CfnNetworkAclEntry_IsCfnElement

func CfnNetworkAclEntry_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnNetworkAclEntry_IsCfnResource

func CfnNetworkAclEntry_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnNetworkAclEntry_IsConstruct

func CfnNetworkAclEntry_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 CfnNetworkAcl_CFN_RESOURCE_TYPE_NAME

func CfnNetworkAcl_CFN_RESOURCE_TYPE_NAME() *string

func CfnNetworkAcl_IsCfnElement

func CfnNetworkAcl_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnNetworkAcl_IsCfnResource

func CfnNetworkAcl_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnNetworkAcl_IsConstruct

func CfnNetworkAcl_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 CfnNetworkInsightsAccessScopeAnalysis_CFN_RESOURCE_TYPE_NAME added in v2.9.0

func CfnNetworkInsightsAccessScopeAnalysis_CFN_RESOURCE_TYPE_NAME() *string

func CfnNetworkInsightsAccessScopeAnalysis_IsCfnElement added in v2.9.0

func CfnNetworkInsightsAccessScopeAnalysis_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnNetworkInsightsAccessScopeAnalysis_IsCfnResource added in v2.9.0

func CfnNetworkInsightsAccessScopeAnalysis_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnNetworkInsightsAccessScopeAnalysis_IsConstruct added in v2.9.0

func CfnNetworkInsightsAccessScopeAnalysis_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 CfnNetworkInsightsAccessScope_CFN_RESOURCE_TYPE_NAME added in v2.9.0

func CfnNetworkInsightsAccessScope_CFN_RESOURCE_TYPE_NAME() *string

func CfnNetworkInsightsAccessScope_IsCfnElement added in v2.9.0

func CfnNetworkInsightsAccessScope_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnNetworkInsightsAccessScope_IsCfnResource added in v2.9.0

func CfnNetworkInsightsAccessScope_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnNetworkInsightsAccessScope_IsConstruct added in v2.9.0

func CfnNetworkInsightsAccessScope_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 CfnNetworkInsightsAnalysis_CFN_RESOURCE_TYPE_NAME

func CfnNetworkInsightsAnalysis_CFN_RESOURCE_TYPE_NAME() *string

func CfnNetworkInsightsAnalysis_IsCfnElement

func CfnNetworkInsightsAnalysis_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnNetworkInsightsAnalysis_IsCfnResource

func CfnNetworkInsightsAnalysis_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnNetworkInsightsAnalysis_IsConstruct

func CfnNetworkInsightsAnalysis_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 CfnNetworkInsightsPath_CFN_RESOURCE_TYPE_NAME

func CfnNetworkInsightsPath_CFN_RESOURCE_TYPE_NAME() *string

func CfnNetworkInsightsPath_IsCfnElement

func CfnNetworkInsightsPath_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnNetworkInsightsPath_IsCfnResource

func CfnNetworkInsightsPath_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnNetworkInsightsPath_IsConstruct

func CfnNetworkInsightsPath_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 CfnNetworkInterfaceAttachment_CFN_RESOURCE_TYPE_NAME

func CfnNetworkInterfaceAttachment_CFN_RESOURCE_TYPE_NAME() *string

func CfnNetworkInterfaceAttachment_IsCfnElement

func CfnNetworkInterfaceAttachment_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnNetworkInterfaceAttachment_IsCfnResource

func CfnNetworkInterfaceAttachment_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnNetworkInterfaceAttachment_IsConstruct

func CfnNetworkInterfaceAttachment_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 CfnNetworkInterfacePermission_CFN_RESOURCE_TYPE_NAME

func CfnNetworkInterfacePermission_CFN_RESOURCE_TYPE_NAME() *string

func CfnNetworkInterfacePermission_IsCfnElement

func CfnNetworkInterfacePermission_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnNetworkInterfacePermission_IsCfnResource

func CfnNetworkInterfacePermission_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnNetworkInterfacePermission_IsConstruct

func CfnNetworkInterfacePermission_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 CfnNetworkInterface_CFN_RESOURCE_TYPE_NAME

func CfnNetworkInterface_CFN_RESOURCE_TYPE_NAME() *string

func CfnNetworkInterface_IsCfnElement

func CfnNetworkInterface_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnNetworkInterface_IsCfnResource

func CfnNetworkInterface_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnNetworkInterface_IsConstruct

func CfnNetworkInterface_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 CfnPlacementGroup_CFN_RESOURCE_TYPE_NAME

func CfnPlacementGroup_CFN_RESOURCE_TYPE_NAME() *string

func CfnPlacementGroup_IsCfnElement

func CfnPlacementGroup_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnPlacementGroup_IsCfnResource

func CfnPlacementGroup_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnPlacementGroup_IsConstruct

func CfnPlacementGroup_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 CfnPrefixList_CFN_RESOURCE_TYPE_NAME

func CfnPrefixList_CFN_RESOURCE_TYPE_NAME() *string

func CfnPrefixList_IsCfnElement

func CfnPrefixList_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnPrefixList_IsCfnResource

func CfnPrefixList_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnPrefixList_IsConstruct

func CfnPrefixList_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 CfnRouteTable_CFN_RESOURCE_TYPE_NAME

func CfnRouteTable_CFN_RESOURCE_TYPE_NAME() *string

func CfnRouteTable_IsCfnElement

func CfnRouteTable_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnRouteTable_IsCfnResource

func CfnRouteTable_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnRouteTable_IsConstruct

func CfnRouteTable_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 CfnRoute_CFN_RESOURCE_TYPE_NAME

func CfnRoute_CFN_RESOURCE_TYPE_NAME() *string

func CfnRoute_IsCfnElement

func CfnRoute_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnRoute_IsCfnResource

func CfnRoute_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnRoute_IsConstruct

func CfnRoute_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 CfnSecurityGroupEgress_CFN_RESOURCE_TYPE_NAME

func CfnSecurityGroupEgress_CFN_RESOURCE_TYPE_NAME() *string

func CfnSecurityGroupEgress_IsCfnElement

func CfnSecurityGroupEgress_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnSecurityGroupEgress_IsCfnResource

func CfnSecurityGroupEgress_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnSecurityGroupEgress_IsConstruct

func CfnSecurityGroupEgress_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 CfnSecurityGroupIngress_CFN_RESOURCE_TYPE_NAME

func CfnSecurityGroupIngress_CFN_RESOURCE_TYPE_NAME() *string

func CfnSecurityGroupIngress_IsCfnElement

func CfnSecurityGroupIngress_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnSecurityGroupIngress_IsCfnResource

func CfnSecurityGroupIngress_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnSecurityGroupIngress_IsConstruct

func CfnSecurityGroupIngress_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 CfnSecurityGroup_CFN_RESOURCE_TYPE_NAME

func CfnSecurityGroup_CFN_RESOURCE_TYPE_NAME() *string

func CfnSecurityGroup_IsCfnElement

func CfnSecurityGroup_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnSecurityGroup_IsCfnResource

func CfnSecurityGroup_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnSecurityGroup_IsConstruct

func CfnSecurityGroup_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 CfnSpotFleet_CFN_RESOURCE_TYPE_NAME

func CfnSpotFleet_CFN_RESOURCE_TYPE_NAME() *string

func CfnSpotFleet_IsCfnElement

func CfnSpotFleet_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnSpotFleet_IsCfnResource

func CfnSpotFleet_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnSpotFleet_IsConstruct

func CfnSpotFleet_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 CfnSubnetCidrBlock_CFN_RESOURCE_TYPE_NAME

func CfnSubnetCidrBlock_CFN_RESOURCE_TYPE_NAME() *string

func CfnSubnetCidrBlock_IsCfnElement

func CfnSubnetCidrBlock_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnSubnetCidrBlock_IsCfnResource

func CfnSubnetCidrBlock_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnSubnetCidrBlock_IsConstruct

func CfnSubnetCidrBlock_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 CfnSubnetNetworkAclAssociation_CFN_RESOURCE_TYPE_NAME

func CfnSubnetNetworkAclAssociation_CFN_RESOURCE_TYPE_NAME() *string

func CfnSubnetNetworkAclAssociation_IsCfnElement

func CfnSubnetNetworkAclAssociation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnSubnetNetworkAclAssociation_IsCfnResource

func CfnSubnetNetworkAclAssociation_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnSubnetNetworkAclAssociation_IsConstruct

func CfnSubnetNetworkAclAssociation_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 CfnSubnetRouteTableAssociation_CFN_RESOURCE_TYPE_NAME

func CfnSubnetRouteTableAssociation_CFN_RESOURCE_TYPE_NAME() *string

func CfnSubnetRouteTableAssociation_IsCfnElement

func CfnSubnetRouteTableAssociation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnSubnetRouteTableAssociation_IsCfnResource

func CfnSubnetRouteTableAssociation_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnSubnetRouteTableAssociation_IsConstruct

func CfnSubnetRouteTableAssociation_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 CfnSubnet_CFN_RESOURCE_TYPE_NAME

func CfnSubnet_CFN_RESOURCE_TYPE_NAME() *string

func CfnSubnet_IsCfnElement

func CfnSubnet_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnSubnet_IsCfnResource

func CfnSubnet_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnSubnet_IsConstruct

func CfnSubnet_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 CfnTrafficMirrorFilterRule_CFN_RESOURCE_TYPE_NAME

func CfnTrafficMirrorFilterRule_CFN_RESOURCE_TYPE_NAME() *string

func CfnTrafficMirrorFilterRule_IsCfnElement

func CfnTrafficMirrorFilterRule_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTrafficMirrorFilterRule_IsCfnResource

func CfnTrafficMirrorFilterRule_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTrafficMirrorFilterRule_IsConstruct

func CfnTrafficMirrorFilterRule_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 CfnTrafficMirrorFilter_CFN_RESOURCE_TYPE_NAME

func CfnTrafficMirrorFilter_CFN_RESOURCE_TYPE_NAME() *string

func CfnTrafficMirrorFilter_IsCfnElement

func CfnTrafficMirrorFilter_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTrafficMirrorFilter_IsCfnResource

func CfnTrafficMirrorFilter_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTrafficMirrorFilter_IsConstruct

func CfnTrafficMirrorFilter_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 CfnTrafficMirrorSession_CFN_RESOURCE_TYPE_NAME

func CfnTrafficMirrorSession_CFN_RESOURCE_TYPE_NAME() *string

func CfnTrafficMirrorSession_IsCfnElement

func CfnTrafficMirrorSession_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTrafficMirrorSession_IsCfnResource

func CfnTrafficMirrorSession_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTrafficMirrorSession_IsConstruct

func CfnTrafficMirrorSession_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 CfnTrafficMirrorTarget_CFN_RESOURCE_TYPE_NAME

func CfnTrafficMirrorTarget_CFN_RESOURCE_TYPE_NAME() *string

func CfnTrafficMirrorTarget_IsCfnElement

func CfnTrafficMirrorTarget_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTrafficMirrorTarget_IsCfnResource

func CfnTrafficMirrorTarget_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTrafficMirrorTarget_IsConstruct

func CfnTrafficMirrorTarget_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 CfnTransitGatewayAttachment_CFN_RESOURCE_TYPE_NAME

func CfnTransitGatewayAttachment_CFN_RESOURCE_TYPE_NAME() *string

func CfnTransitGatewayAttachment_IsCfnElement

func CfnTransitGatewayAttachment_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTransitGatewayAttachment_IsCfnResource

func CfnTransitGatewayAttachment_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTransitGatewayAttachment_IsConstruct

func CfnTransitGatewayAttachment_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 CfnTransitGatewayConnect_CFN_RESOURCE_TYPE_NAME

func CfnTransitGatewayConnect_CFN_RESOURCE_TYPE_NAME() *string

func CfnTransitGatewayConnect_IsCfnElement

func CfnTransitGatewayConnect_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTransitGatewayConnect_IsCfnResource

func CfnTransitGatewayConnect_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTransitGatewayConnect_IsConstruct

func CfnTransitGatewayConnect_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 CfnTransitGatewayMulticastDomainAssociation_CFN_RESOURCE_TYPE_NAME

func CfnTransitGatewayMulticastDomainAssociation_CFN_RESOURCE_TYPE_NAME() *string

func CfnTransitGatewayMulticastDomainAssociation_IsCfnElement

func CfnTransitGatewayMulticastDomainAssociation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTransitGatewayMulticastDomainAssociation_IsCfnResource

func CfnTransitGatewayMulticastDomainAssociation_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTransitGatewayMulticastDomainAssociation_IsConstruct

func CfnTransitGatewayMulticastDomainAssociation_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 CfnTransitGatewayMulticastDomain_CFN_RESOURCE_TYPE_NAME

func CfnTransitGatewayMulticastDomain_CFN_RESOURCE_TYPE_NAME() *string

func CfnTransitGatewayMulticastDomain_IsCfnElement

func CfnTransitGatewayMulticastDomain_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTransitGatewayMulticastDomain_IsCfnResource

func CfnTransitGatewayMulticastDomain_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTransitGatewayMulticastDomain_IsConstruct

func CfnTransitGatewayMulticastDomain_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 CfnTransitGatewayMulticastGroupMember_CFN_RESOURCE_TYPE_NAME

func CfnTransitGatewayMulticastGroupMember_CFN_RESOURCE_TYPE_NAME() *string

func CfnTransitGatewayMulticastGroupMember_IsCfnElement

func CfnTransitGatewayMulticastGroupMember_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTransitGatewayMulticastGroupMember_IsCfnResource

func CfnTransitGatewayMulticastGroupMember_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTransitGatewayMulticastGroupMember_IsConstruct

func CfnTransitGatewayMulticastGroupMember_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 CfnTransitGatewayMulticastGroupSource_CFN_RESOURCE_TYPE_NAME

func CfnTransitGatewayMulticastGroupSource_CFN_RESOURCE_TYPE_NAME() *string

func CfnTransitGatewayMulticastGroupSource_IsCfnElement

func CfnTransitGatewayMulticastGroupSource_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTransitGatewayMulticastGroupSource_IsCfnResource

func CfnTransitGatewayMulticastGroupSource_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTransitGatewayMulticastGroupSource_IsConstruct

func CfnTransitGatewayMulticastGroupSource_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 CfnTransitGatewayPeeringAttachment_CFN_RESOURCE_TYPE_NAME

func CfnTransitGatewayPeeringAttachment_CFN_RESOURCE_TYPE_NAME() *string

func CfnTransitGatewayPeeringAttachment_IsCfnElement

func CfnTransitGatewayPeeringAttachment_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTransitGatewayPeeringAttachment_IsCfnResource

func CfnTransitGatewayPeeringAttachment_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTransitGatewayPeeringAttachment_IsConstruct

func CfnTransitGatewayPeeringAttachment_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 CfnTransitGatewayRouteTableAssociation_CFN_RESOURCE_TYPE_NAME

func CfnTransitGatewayRouteTableAssociation_CFN_RESOURCE_TYPE_NAME() *string

func CfnTransitGatewayRouteTableAssociation_IsCfnElement

func CfnTransitGatewayRouteTableAssociation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTransitGatewayRouteTableAssociation_IsCfnResource

func CfnTransitGatewayRouteTableAssociation_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTransitGatewayRouteTableAssociation_IsConstruct

func CfnTransitGatewayRouteTableAssociation_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 CfnTransitGatewayRouteTablePropagation_CFN_RESOURCE_TYPE_NAME

func CfnTransitGatewayRouteTablePropagation_CFN_RESOURCE_TYPE_NAME() *string

func CfnTransitGatewayRouteTablePropagation_IsCfnElement

func CfnTransitGatewayRouteTablePropagation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTransitGatewayRouteTablePropagation_IsCfnResource

func CfnTransitGatewayRouteTablePropagation_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTransitGatewayRouteTablePropagation_IsConstruct

func CfnTransitGatewayRouteTablePropagation_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 CfnTransitGatewayRouteTable_CFN_RESOURCE_TYPE_NAME

func CfnTransitGatewayRouteTable_CFN_RESOURCE_TYPE_NAME() *string

func CfnTransitGatewayRouteTable_IsCfnElement

func CfnTransitGatewayRouteTable_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTransitGatewayRouteTable_IsCfnResource

func CfnTransitGatewayRouteTable_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTransitGatewayRouteTable_IsConstruct

func CfnTransitGatewayRouteTable_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 CfnTransitGatewayRoute_CFN_RESOURCE_TYPE_NAME

func CfnTransitGatewayRoute_CFN_RESOURCE_TYPE_NAME() *string

func CfnTransitGatewayRoute_IsCfnElement

func CfnTransitGatewayRoute_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTransitGatewayRoute_IsCfnResource

func CfnTransitGatewayRoute_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTransitGatewayRoute_IsConstruct

func CfnTransitGatewayRoute_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 CfnTransitGatewayVpcAttachment_CFN_RESOURCE_TYPE_NAME

func CfnTransitGatewayVpcAttachment_CFN_RESOURCE_TYPE_NAME() *string

func CfnTransitGatewayVpcAttachment_IsCfnElement

func CfnTransitGatewayVpcAttachment_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTransitGatewayVpcAttachment_IsCfnResource

func CfnTransitGatewayVpcAttachment_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTransitGatewayVpcAttachment_IsConstruct

func CfnTransitGatewayVpcAttachment_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 CfnTransitGateway_CFN_RESOURCE_TYPE_NAME

func CfnTransitGateway_CFN_RESOURCE_TYPE_NAME() *string

func CfnTransitGateway_IsCfnElement

func CfnTransitGateway_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTransitGateway_IsCfnResource

func CfnTransitGateway_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTransitGateway_IsConstruct

func CfnTransitGateway_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 CfnVPCCidrBlock_CFN_RESOURCE_TYPE_NAME

func CfnVPCCidrBlock_CFN_RESOURCE_TYPE_NAME() *string

func CfnVPCCidrBlock_IsCfnElement

func CfnVPCCidrBlock_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVPCCidrBlock_IsCfnResource

func CfnVPCCidrBlock_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVPCCidrBlock_IsConstruct

func CfnVPCCidrBlock_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 CfnVPCDHCPOptionsAssociation_CFN_RESOURCE_TYPE_NAME

func CfnVPCDHCPOptionsAssociation_CFN_RESOURCE_TYPE_NAME() *string

func CfnVPCDHCPOptionsAssociation_IsCfnElement

func CfnVPCDHCPOptionsAssociation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVPCDHCPOptionsAssociation_IsCfnResource

func CfnVPCDHCPOptionsAssociation_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVPCDHCPOptionsAssociation_IsConstruct

func CfnVPCDHCPOptionsAssociation_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 CfnVPCEndpointConnectionNotification_CFN_RESOURCE_TYPE_NAME

func CfnVPCEndpointConnectionNotification_CFN_RESOURCE_TYPE_NAME() *string

func CfnVPCEndpointConnectionNotification_IsCfnElement

func CfnVPCEndpointConnectionNotification_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVPCEndpointConnectionNotification_IsCfnResource

func CfnVPCEndpointConnectionNotification_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVPCEndpointConnectionNotification_IsConstruct

func CfnVPCEndpointConnectionNotification_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 CfnVPCEndpointServicePermissions_CFN_RESOURCE_TYPE_NAME

func CfnVPCEndpointServicePermissions_CFN_RESOURCE_TYPE_NAME() *string

func CfnVPCEndpointServicePermissions_IsCfnElement

func CfnVPCEndpointServicePermissions_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVPCEndpointServicePermissions_IsCfnResource

func CfnVPCEndpointServicePermissions_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVPCEndpointServicePermissions_IsConstruct

func CfnVPCEndpointServicePermissions_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 CfnVPCEndpointService_CFN_RESOURCE_TYPE_NAME

func CfnVPCEndpointService_CFN_RESOURCE_TYPE_NAME() *string

func CfnVPCEndpointService_IsCfnElement

func CfnVPCEndpointService_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVPCEndpointService_IsCfnResource

func CfnVPCEndpointService_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVPCEndpointService_IsConstruct

func CfnVPCEndpointService_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 CfnVPCEndpoint_CFN_RESOURCE_TYPE_NAME

func CfnVPCEndpoint_CFN_RESOURCE_TYPE_NAME() *string

func CfnVPCEndpoint_IsCfnElement

func CfnVPCEndpoint_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVPCEndpoint_IsCfnResource

func CfnVPCEndpoint_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVPCEndpoint_IsConstruct

func CfnVPCEndpoint_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 CfnVPCGatewayAttachment_CFN_RESOURCE_TYPE_NAME

func CfnVPCGatewayAttachment_CFN_RESOURCE_TYPE_NAME() *string

func CfnVPCGatewayAttachment_IsCfnElement

func CfnVPCGatewayAttachment_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVPCGatewayAttachment_IsCfnResource

func CfnVPCGatewayAttachment_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVPCGatewayAttachment_IsConstruct

func CfnVPCGatewayAttachment_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 CfnVPCPeeringConnection_CFN_RESOURCE_TYPE_NAME

func CfnVPCPeeringConnection_CFN_RESOURCE_TYPE_NAME() *string

func CfnVPCPeeringConnection_IsCfnElement

func CfnVPCPeeringConnection_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVPCPeeringConnection_IsCfnResource

func CfnVPCPeeringConnection_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVPCPeeringConnection_IsConstruct

func CfnVPCPeeringConnection_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 CfnVPC_CFN_RESOURCE_TYPE_NAME

func CfnVPC_CFN_RESOURCE_TYPE_NAME() *string

func CfnVPC_IsCfnElement

func CfnVPC_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVPC_IsCfnResource

func CfnVPC_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVPC_IsConstruct

func CfnVPC_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 CfnVPNConnectionRoute_CFN_RESOURCE_TYPE_NAME

func CfnVPNConnectionRoute_CFN_RESOURCE_TYPE_NAME() *string

func CfnVPNConnectionRoute_IsCfnElement

func CfnVPNConnectionRoute_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVPNConnectionRoute_IsCfnResource

func CfnVPNConnectionRoute_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVPNConnectionRoute_IsConstruct

func CfnVPNConnectionRoute_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 CfnVPNConnection_CFN_RESOURCE_TYPE_NAME

func CfnVPNConnection_CFN_RESOURCE_TYPE_NAME() *string

func CfnVPNConnection_IsCfnElement

func CfnVPNConnection_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVPNConnection_IsCfnResource

func CfnVPNConnection_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVPNConnection_IsConstruct

func CfnVPNConnection_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 CfnVPNGatewayRoutePropagation_CFN_RESOURCE_TYPE_NAME

func CfnVPNGatewayRoutePropagation_CFN_RESOURCE_TYPE_NAME() *string

func CfnVPNGatewayRoutePropagation_IsCfnElement

func CfnVPNGatewayRoutePropagation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVPNGatewayRoutePropagation_IsCfnResource

func CfnVPNGatewayRoutePropagation_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVPNGatewayRoutePropagation_IsConstruct

func CfnVPNGatewayRoutePropagation_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 CfnVPNGateway_CFN_RESOURCE_TYPE_NAME

func CfnVPNGateway_CFN_RESOURCE_TYPE_NAME() *string

func CfnVPNGateway_IsCfnElement

func CfnVPNGateway_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVPNGateway_IsCfnResource

func CfnVPNGateway_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVPNGateway_IsConstruct

func CfnVPNGateway_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 CfnVolumeAttachment_CFN_RESOURCE_TYPE_NAME

func CfnVolumeAttachment_CFN_RESOURCE_TYPE_NAME() *string

func CfnVolumeAttachment_IsCfnElement

func CfnVolumeAttachment_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVolumeAttachment_IsCfnResource

func CfnVolumeAttachment_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVolumeAttachment_IsConstruct

func CfnVolumeAttachment_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 CfnVolume_CFN_RESOURCE_TYPE_NAME

func CfnVolume_CFN_RESOURCE_TYPE_NAME() *string

func CfnVolume_IsCfnElement

func CfnVolume_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVolume_IsCfnResource

func CfnVolume_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVolume_IsConstruct

func CfnVolume_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 ClientVpnAuthorizationRule_IsConstruct

func ClientVpnAuthorizationRule_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 ClientVpnAuthorizationRule_IsResource

func ClientVpnAuthorizationRule_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func ClientVpnEndpoint_IsConstruct

func ClientVpnEndpoint_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 ClientVpnEndpoint_IsResource

func ClientVpnEndpoint_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func ClientVpnRoute_IsConstruct

func ClientVpnRoute_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 ClientVpnRoute_IsResource

func ClientVpnRoute_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func FlowLog_IsConstruct

func FlowLog_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 FlowLog_IsResource

func FlowLog_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func GatewayVpcEndpoint_IsConstruct

func GatewayVpcEndpoint_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 GatewayVpcEndpoint_IsResource

func GatewayVpcEndpoint_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func Instance_IsConstruct

func Instance_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 Instance_IsResource

func Instance_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func InterfaceVpcEndpoint_IsConstruct

func InterfaceVpcEndpoint_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 InterfaceVpcEndpoint_IsResource

func InterfaceVpcEndpoint_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func LaunchTemplateSpecialVersions_DEFAULT_VERSION

func LaunchTemplateSpecialVersions_DEFAULT_VERSION() *string

func LaunchTemplateSpecialVersions_LATEST_VERSION

func LaunchTemplateSpecialVersions_LATEST_VERSION() *string

func LaunchTemplate_IsConstruct

func LaunchTemplate_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 LaunchTemplate_IsResource

func LaunchTemplate_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func MultipartBody_CLOUD_BOOTHOOK

func MultipartBody_CLOUD_BOOTHOOK() *string

func MultipartBody_SHELL_SCRIPT

func MultipartBody_SHELL_SCRIPT() *string

func NetworkAclEntry_IsConstruct

func NetworkAclEntry_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 NetworkAclEntry_IsResource

func NetworkAclEntry_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func NetworkAcl_IsConstruct

func NetworkAcl_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 NetworkAcl_IsResource

func NetworkAcl_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func NewAclCidr_Override

func NewAclCidr_Override(a AclCidr)

func NewAclTraffic_Override

func NewAclTraffic_Override(a AclTraffic)

func NewAmazonLinuxImage_Override

func NewAmazonLinuxImage_Override(a AmazonLinuxImage, props *AmazonLinuxImageProps)

func NewBastionHostLinux_Override

func NewBastionHostLinux_Override(b BastionHostLinux, scope constructs.Construct, id *string, props *BastionHostLinuxProps)

func NewBlockDeviceVolume_Override

func NewBlockDeviceVolume_Override(b BlockDeviceVolume, ebsDevice *EbsDeviceProps, virtualName *string)

func NewCfnCapacityReservationFleet_Override

func NewCfnCapacityReservationFleet_Override(c CfnCapacityReservationFleet, scope constructs.Construct, id *string, props *CfnCapacityReservationFleetProps)

Create a new `AWS::EC2::CapacityReservationFleet`.

func NewCfnCapacityReservation_Override

func NewCfnCapacityReservation_Override(c CfnCapacityReservation, scope constructs.Construct, id *string, props *CfnCapacityReservationProps)

Create a new `AWS::EC2::CapacityReservation`.

func NewCfnCarrierGateway_Override

func NewCfnCarrierGateway_Override(c CfnCarrierGateway, scope constructs.Construct, id *string, props *CfnCarrierGatewayProps)

Create a new `AWS::EC2::CarrierGateway`.

func NewCfnClientVpnAuthorizationRule_Override

func NewCfnClientVpnAuthorizationRule_Override(c CfnClientVpnAuthorizationRule, scope constructs.Construct, id *string, props *CfnClientVpnAuthorizationRuleProps)

Create a new `AWS::EC2::ClientVpnAuthorizationRule`.

func NewCfnClientVpnEndpoint_Override

func NewCfnClientVpnEndpoint_Override(c CfnClientVpnEndpoint, scope constructs.Construct, id *string, props *CfnClientVpnEndpointProps)

Create a new `AWS::EC2::ClientVpnEndpoint`.

func NewCfnClientVpnRoute_Override

func NewCfnClientVpnRoute_Override(c CfnClientVpnRoute, scope constructs.Construct, id *string, props *CfnClientVpnRouteProps)

Create a new `AWS::EC2::ClientVpnRoute`.

func NewCfnClientVpnTargetNetworkAssociation_Override

func NewCfnClientVpnTargetNetworkAssociation_Override(c CfnClientVpnTargetNetworkAssociation, scope constructs.Construct, id *string, props *CfnClientVpnTargetNetworkAssociationProps)

Create a new `AWS::EC2::ClientVpnTargetNetworkAssociation`.

func NewCfnCustomerGateway_Override

func NewCfnCustomerGateway_Override(c CfnCustomerGateway, scope constructs.Construct, id *string, props *CfnCustomerGatewayProps)

Create a new `AWS::EC2::CustomerGateway`.

func NewCfnDHCPOptions_Override

func NewCfnDHCPOptions_Override(c CfnDHCPOptions, scope constructs.Construct, id *string, props *CfnDHCPOptionsProps)

Create a new `AWS::EC2::DHCPOptions`.

func NewCfnEC2Fleet_Override

func NewCfnEC2Fleet_Override(c CfnEC2Fleet, scope constructs.Construct, id *string, props *CfnEC2FleetProps)

Create a new `AWS::EC2::EC2Fleet`.

func NewCfnEIPAssociation_Override

func NewCfnEIPAssociation_Override(c CfnEIPAssociation, scope constructs.Construct, id *string, props *CfnEIPAssociationProps)

Create a new `AWS::EC2::EIPAssociation`.

func NewCfnEIP_Override

func NewCfnEIP_Override(c CfnEIP, scope constructs.Construct, id *string, props *CfnEIPProps)

Create a new `AWS::EC2::EIP`.

func NewCfnEgressOnlyInternetGateway_Override

func NewCfnEgressOnlyInternetGateway_Override(c CfnEgressOnlyInternetGateway, scope constructs.Construct, id *string, props *CfnEgressOnlyInternetGatewayProps)

Create a new `AWS::EC2::EgressOnlyInternetGateway`.

func NewCfnEnclaveCertificateIamRoleAssociation_Override

func NewCfnEnclaveCertificateIamRoleAssociation_Override(c CfnEnclaveCertificateIamRoleAssociation, scope constructs.Construct, id *string, props *CfnEnclaveCertificateIamRoleAssociationProps)

Create a new `AWS::EC2::EnclaveCertificateIamRoleAssociation`.

func NewCfnFlowLog_Override

func NewCfnFlowLog_Override(c CfnFlowLog, scope constructs.Construct, id *string, props *CfnFlowLogProps)

Create a new `AWS::EC2::FlowLog`.

func NewCfnGatewayRouteTableAssociation_Override

func NewCfnGatewayRouteTableAssociation_Override(c CfnGatewayRouteTableAssociation, scope constructs.Construct, id *string, props *CfnGatewayRouteTableAssociationProps)

Create a new `AWS::EC2::GatewayRouteTableAssociation`.

func NewCfnHost_Override

func NewCfnHost_Override(c CfnHost, scope constructs.Construct, id *string, props *CfnHostProps)

Create a new `AWS::EC2::Host`.

func NewCfnIPAMAllocation_Override added in v2.2.0

func NewCfnIPAMAllocation_Override(c CfnIPAMAllocation, scope constructs.Construct, id *string, props *CfnIPAMAllocationProps)

Create a new `AWS::EC2::IPAMAllocation`.

func NewCfnIPAMPool_Override added in v2.2.0

func NewCfnIPAMPool_Override(c CfnIPAMPool, scope constructs.Construct, id *string, props *CfnIPAMPoolProps)

Create a new `AWS::EC2::IPAMPool`.

func NewCfnIPAMScope_Override added in v2.2.0

func NewCfnIPAMScope_Override(c CfnIPAMScope, scope constructs.Construct, id *string, props *CfnIPAMScopeProps)

Create a new `AWS::EC2::IPAMScope`.

func NewCfnIPAM_Override added in v2.2.0

func NewCfnIPAM_Override(c CfnIPAM, scope constructs.Construct, id *string, props *CfnIPAMProps)

Create a new `AWS::EC2::IPAM`.

func NewCfnInstance_Override

func NewCfnInstance_Override(c CfnInstance, scope constructs.Construct, id *string, props *CfnInstanceProps)

Create a new `AWS::EC2::Instance`.

func NewCfnInternetGateway_Override

func NewCfnInternetGateway_Override(c CfnInternetGateway, scope constructs.Construct, id *string, props *CfnInternetGatewayProps)

Create a new `AWS::EC2::InternetGateway`.

func NewCfnLaunchTemplate_Override

func NewCfnLaunchTemplate_Override(c CfnLaunchTemplate, scope constructs.Construct, id *string, props *CfnLaunchTemplateProps)

Create a new `AWS::EC2::LaunchTemplate`.

func NewCfnLocalGatewayRouteTableVPCAssociation_Override

func NewCfnLocalGatewayRouteTableVPCAssociation_Override(c CfnLocalGatewayRouteTableVPCAssociation, scope constructs.Construct, id *string, props *CfnLocalGatewayRouteTableVPCAssociationProps)

Create a new `AWS::EC2::LocalGatewayRouteTableVPCAssociation`.

func NewCfnLocalGatewayRoute_Override

func NewCfnLocalGatewayRoute_Override(c CfnLocalGatewayRoute, scope constructs.Construct, id *string, props *CfnLocalGatewayRouteProps)

Create a new `AWS::EC2::LocalGatewayRoute`.

func NewCfnNatGateway_Override

func NewCfnNatGateway_Override(c CfnNatGateway, scope constructs.Construct, id *string, props *CfnNatGatewayProps)

Create a new `AWS::EC2::NatGateway`.

func NewCfnNetworkAclEntry_Override

func NewCfnNetworkAclEntry_Override(c CfnNetworkAclEntry, scope constructs.Construct, id *string, props *CfnNetworkAclEntryProps)

Create a new `AWS::EC2::NetworkAclEntry`.

func NewCfnNetworkAcl_Override

func NewCfnNetworkAcl_Override(c CfnNetworkAcl, scope constructs.Construct, id *string, props *CfnNetworkAclProps)

Create a new `AWS::EC2::NetworkAcl`.

func NewCfnNetworkInsightsAccessScopeAnalysis_Override added in v2.9.0

func NewCfnNetworkInsightsAccessScopeAnalysis_Override(c CfnNetworkInsightsAccessScopeAnalysis, scope constructs.Construct, id *string, props *CfnNetworkInsightsAccessScopeAnalysisProps)

Create a new `AWS::EC2::NetworkInsightsAccessScopeAnalysis`.

func NewCfnNetworkInsightsAccessScope_Override added in v2.9.0

func NewCfnNetworkInsightsAccessScope_Override(c CfnNetworkInsightsAccessScope, scope constructs.Construct, id *string, props *CfnNetworkInsightsAccessScopeProps)

Create a new `AWS::EC2::NetworkInsightsAccessScope`.

func NewCfnNetworkInsightsAnalysis_Override

func NewCfnNetworkInsightsAnalysis_Override(c CfnNetworkInsightsAnalysis, scope constructs.Construct, id *string, props *CfnNetworkInsightsAnalysisProps)

Create a new `AWS::EC2::NetworkInsightsAnalysis`.

func NewCfnNetworkInsightsPath_Override

func NewCfnNetworkInsightsPath_Override(c CfnNetworkInsightsPath, scope constructs.Construct, id *string, props *CfnNetworkInsightsPathProps)

Create a new `AWS::EC2::NetworkInsightsPath`.

func NewCfnNetworkInterfaceAttachment_Override

func NewCfnNetworkInterfaceAttachment_Override(c CfnNetworkInterfaceAttachment, scope constructs.Construct, id *string, props *CfnNetworkInterfaceAttachmentProps)

Create a new `AWS::EC2::NetworkInterfaceAttachment`.

func NewCfnNetworkInterfacePermission_Override

func NewCfnNetworkInterfacePermission_Override(c CfnNetworkInterfacePermission, scope constructs.Construct, id *string, props *CfnNetworkInterfacePermissionProps)

Create a new `AWS::EC2::NetworkInterfacePermission`.

func NewCfnNetworkInterface_Override

func NewCfnNetworkInterface_Override(c CfnNetworkInterface, scope constructs.Construct, id *string, props *CfnNetworkInterfaceProps)

Create a new `AWS::EC2::NetworkInterface`.

func NewCfnPlacementGroup_Override

func NewCfnPlacementGroup_Override(c CfnPlacementGroup, scope constructs.Construct, id *string, props *CfnPlacementGroupProps)

Create a new `AWS::EC2::PlacementGroup`.

func NewCfnPrefixList_Override

func NewCfnPrefixList_Override(c CfnPrefixList, scope constructs.Construct, id *string, props *CfnPrefixListProps)

Create a new `AWS::EC2::PrefixList`.

func NewCfnRouteTable_Override

func NewCfnRouteTable_Override(c CfnRouteTable, scope constructs.Construct, id *string, props *CfnRouteTableProps)

Create a new `AWS::EC2::RouteTable`.

func NewCfnRoute_Override

func NewCfnRoute_Override(c CfnRoute, scope constructs.Construct, id *string, props *CfnRouteProps)

Create a new `AWS::EC2::Route`.

func NewCfnSecurityGroupEgress_Override

func NewCfnSecurityGroupEgress_Override(c CfnSecurityGroupEgress, scope constructs.Construct, id *string, props *CfnSecurityGroupEgressProps)

Create a new `AWS::EC2::SecurityGroupEgress`.

func NewCfnSecurityGroupIngress_Override

func NewCfnSecurityGroupIngress_Override(c CfnSecurityGroupIngress, scope constructs.Construct, id *string, props *CfnSecurityGroupIngressProps)

Create a new `AWS::EC2::SecurityGroupIngress`.

func NewCfnSecurityGroup_Override

func NewCfnSecurityGroup_Override(c CfnSecurityGroup, scope constructs.Construct, id *string, props *CfnSecurityGroupProps)

Create a new `AWS::EC2::SecurityGroup`.

func NewCfnSpotFleet_Override

func NewCfnSpotFleet_Override(c CfnSpotFleet, scope constructs.Construct, id *string, props *CfnSpotFleetProps)

Create a new `AWS::EC2::SpotFleet`.

func NewCfnSubnetCidrBlock_Override

func NewCfnSubnetCidrBlock_Override(c CfnSubnetCidrBlock, scope constructs.Construct, id *string, props *CfnSubnetCidrBlockProps)

Create a new `AWS::EC2::SubnetCidrBlock`.

func NewCfnSubnetNetworkAclAssociation_Override

func NewCfnSubnetNetworkAclAssociation_Override(c CfnSubnetNetworkAclAssociation, scope constructs.Construct, id *string, props *CfnSubnetNetworkAclAssociationProps)

Create a new `AWS::EC2::SubnetNetworkAclAssociation`.

func NewCfnSubnetRouteTableAssociation_Override

func NewCfnSubnetRouteTableAssociation_Override(c CfnSubnetRouteTableAssociation, scope constructs.Construct, id *string, props *CfnSubnetRouteTableAssociationProps)

Create a new `AWS::EC2::SubnetRouteTableAssociation`.

func NewCfnSubnet_Override

func NewCfnSubnet_Override(c CfnSubnet, scope constructs.Construct, id *string, props *CfnSubnetProps)

Create a new `AWS::EC2::Subnet`.

func NewCfnTrafficMirrorFilterRule_Override

func NewCfnTrafficMirrorFilterRule_Override(c CfnTrafficMirrorFilterRule, scope constructs.Construct, id *string, props *CfnTrafficMirrorFilterRuleProps)

Create a new `AWS::EC2::TrafficMirrorFilterRule`.

func NewCfnTrafficMirrorFilter_Override

func NewCfnTrafficMirrorFilter_Override(c CfnTrafficMirrorFilter, scope constructs.Construct, id *string, props *CfnTrafficMirrorFilterProps)

Create a new `AWS::EC2::TrafficMirrorFilter`.

func NewCfnTrafficMirrorSession_Override

func NewCfnTrafficMirrorSession_Override(c CfnTrafficMirrorSession, scope constructs.Construct, id *string, props *CfnTrafficMirrorSessionProps)

Create a new `AWS::EC2::TrafficMirrorSession`.

func NewCfnTrafficMirrorTarget_Override

func NewCfnTrafficMirrorTarget_Override(c CfnTrafficMirrorTarget, scope constructs.Construct, id *string, props *CfnTrafficMirrorTargetProps)

Create a new `AWS::EC2::TrafficMirrorTarget`.

func NewCfnTransitGatewayAttachment_Override

func NewCfnTransitGatewayAttachment_Override(c CfnTransitGatewayAttachment, scope constructs.Construct, id *string, props *CfnTransitGatewayAttachmentProps)

Create a new `AWS::EC2::TransitGatewayAttachment`.

func NewCfnTransitGatewayConnect_Override

func NewCfnTransitGatewayConnect_Override(c CfnTransitGatewayConnect, scope constructs.Construct, id *string, props *CfnTransitGatewayConnectProps)

Create a new `AWS::EC2::TransitGatewayConnect`.

func NewCfnTransitGatewayMulticastDomainAssociation_Override

func NewCfnTransitGatewayMulticastDomainAssociation_Override(c CfnTransitGatewayMulticastDomainAssociation, scope constructs.Construct, id *string, props *CfnTransitGatewayMulticastDomainAssociationProps)

Create a new `AWS::EC2::TransitGatewayMulticastDomainAssociation`.

func NewCfnTransitGatewayMulticastDomain_Override

func NewCfnTransitGatewayMulticastDomain_Override(c CfnTransitGatewayMulticastDomain, scope constructs.Construct, id *string, props *CfnTransitGatewayMulticastDomainProps)

Create a new `AWS::EC2::TransitGatewayMulticastDomain`.

func NewCfnTransitGatewayMulticastGroupMember_Override

func NewCfnTransitGatewayMulticastGroupMember_Override(c CfnTransitGatewayMulticastGroupMember, scope constructs.Construct, id *string, props *CfnTransitGatewayMulticastGroupMemberProps)

Create a new `AWS::EC2::TransitGatewayMulticastGroupMember`.

func NewCfnTransitGatewayMulticastGroupSource_Override

func NewCfnTransitGatewayMulticastGroupSource_Override(c CfnTransitGatewayMulticastGroupSource, scope constructs.Construct, id *string, props *CfnTransitGatewayMulticastGroupSourceProps)

Create a new `AWS::EC2::TransitGatewayMulticastGroupSource`.

func NewCfnTransitGatewayPeeringAttachment_Override

func NewCfnTransitGatewayPeeringAttachment_Override(c CfnTransitGatewayPeeringAttachment, scope constructs.Construct, id *string, props *CfnTransitGatewayPeeringAttachmentProps)

Create a new `AWS::EC2::TransitGatewayPeeringAttachment`.

func NewCfnTransitGatewayRouteTableAssociation_Override

func NewCfnTransitGatewayRouteTableAssociation_Override(c CfnTransitGatewayRouteTableAssociation, scope constructs.Construct, id *string, props *CfnTransitGatewayRouteTableAssociationProps)

Create a new `AWS::EC2::TransitGatewayRouteTableAssociation`.

func NewCfnTransitGatewayRouteTablePropagation_Override

func NewCfnTransitGatewayRouteTablePropagation_Override(c CfnTransitGatewayRouteTablePropagation, scope constructs.Construct, id *string, props *CfnTransitGatewayRouteTablePropagationProps)

Create a new `AWS::EC2::TransitGatewayRouteTablePropagation`.

func NewCfnTransitGatewayRouteTable_Override

func NewCfnTransitGatewayRouteTable_Override(c CfnTransitGatewayRouteTable, scope constructs.Construct, id *string, props *CfnTransitGatewayRouteTableProps)

Create a new `AWS::EC2::TransitGatewayRouteTable`.

func NewCfnTransitGatewayRoute_Override

func NewCfnTransitGatewayRoute_Override(c CfnTransitGatewayRoute, scope constructs.Construct, id *string, props *CfnTransitGatewayRouteProps)

Create a new `AWS::EC2::TransitGatewayRoute`.

func NewCfnTransitGatewayVpcAttachment_Override

func NewCfnTransitGatewayVpcAttachment_Override(c CfnTransitGatewayVpcAttachment, scope constructs.Construct, id *string, props *CfnTransitGatewayVpcAttachmentProps)

Create a new `AWS::EC2::TransitGatewayVpcAttachment`.

func NewCfnTransitGateway_Override

func NewCfnTransitGateway_Override(c CfnTransitGateway, scope constructs.Construct, id *string, props *CfnTransitGatewayProps)

Create a new `AWS::EC2::TransitGateway`.

func NewCfnVPCCidrBlock_Override

func NewCfnVPCCidrBlock_Override(c CfnVPCCidrBlock, scope constructs.Construct, id *string, props *CfnVPCCidrBlockProps)

Create a new `AWS::EC2::VPCCidrBlock`.

func NewCfnVPCDHCPOptionsAssociation_Override

func NewCfnVPCDHCPOptionsAssociation_Override(c CfnVPCDHCPOptionsAssociation, scope constructs.Construct, id *string, props *CfnVPCDHCPOptionsAssociationProps)

Create a new `AWS::EC2::VPCDHCPOptionsAssociation`.

func NewCfnVPCEndpointConnectionNotification_Override

func NewCfnVPCEndpointConnectionNotification_Override(c CfnVPCEndpointConnectionNotification, scope constructs.Construct, id *string, props *CfnVPCEndpointConnectionNotificationProps)

Create a new `AWS::EC2::VPCEndpointConnectionNotification`.

func NewCfnVPCEndpointServicePermissions_Override

func NewCfnVPCEndpointServicePermissions_Override(c CfnVPCEndpointServicePermissions, scope constructs.Construct, id *string, props *CfnVPCEndpointServicePermissionsProps)

Create a new `AWS::EC2::VPCEndpointServicePermissions`.

func NewCfnVPCEndpointService_Override

func NewCfnVPCEndpointService_Override(c CfnVPCEndpointService, scope constructs.Construct, id *string, props *CfnVPCEndpointServiceProps)

Create a new `AWS::EC2::VPCEndpointService`.

func NewCfnVPCEndpoint_Override

func NewCfnVPCEndpoint_Override(c CfnVPCEndpoint, scope constructs.Construct, id *string, props *CfnVPCEndpointProps)

Create a new `AWS::EC2::VPCEndpoint`.

func NewCfnVPCGatewayAttachment_Override

func NewCfnVPCGatewayAttachment_Override(c CfnVPCGatewayAttachment, scope constructs.Construct, id *string, props *CfnVPCGatewayAttachmentProps)

Create a new `AWS::EC2::VPCGatewayAttachment`.

func NewCfnVPCPeeringConnection_Override

func NewCfnVPCPeeringConnection_Override(c CfnVPCPeeringConnection, scope constructs.Construct, id *string, props *CfnVPCPeeringConnectionProps)

Create a new `AWS::EC2::VPCPeeringConnection`.

func NewCfnVPC_Override

func NewCfnVPC_Override(c CfnVPC, scope constructs.Construct, id *string, props *CfnVPCProps)

Create a new `AWS::EC2::VPC`.

func NewCfnVPNConnectionRoute_Override

func NewCfnVPNConnectionRoute_Override(c CfnVPNConnectionRoute, scope constructs.Construct, id *string, props *CfnVPNConnectionRouteProps)

Create a new `AWS::EC2::VPNConnectionRoute`.

func NewCfnVPNConnection_Override

func NewCfnVPNConnection_Override(c CfnVPNConnection, scope constructs.Construct, id *string, props *CfnVPNConnectionProps)

Create a new `AWS::EC2::VPNConnection`.

func NewCfnVPNGatewayRoutePropagation_Override

func NewCfnVPNGatewayRoutePropagation_Override(c CfnVPNGatewayRoutePropagation, scope constructs.Construct, id *string, props *CfnVPNGatewayRoutePropagationProps)

Create a new `AWS::EC2::VPNGatewayRoutePropagation`.

func NewCfnVPNGateway_Override

func NewCfnVPNGateway_Override(c CfnVPNGateway, scope constructs.Construct, id *string, props *CfnVPNGatewayProps)

Create a new `AWS::EC2::VPNGateway`.

func NewCfnVolumeAttachment_Override

func NewCfnVolumeAttachment_Override(c CfnVolumeAttachment, scope constructs.Construct, id *string, props *CfnVolumeAttachmentProps)

Create a new `AWS::EC2::VolumeAttachment`.

func NewCfnVolume_Override

func NewCfnVolume_Override(c CfnVolume, scope constructs.Construct, id *string, props *CfnVolumeProps)

Create a new `AWS::EC2::Volume`.

func NewClientVpnAuthorizationRule_Override

func NewClientVpnAuthorizationRule_Override(c ClientVpnAuthorizationRule, scope constructs.Construct, id *string, props *ClientVpnAuthorizationRuleProps)

func NewClientVpnEndpoint_Override

func NewClientVpnEndpoint_Override(c ClientVpnEndpoint, scope constructs.Construct, id *string, props *ClientVpnEndpointProps)

func NewClientVpnRouteTarget_Override

func NewClientVpnRouteTarget_Override(c ClientVpnRouteTarget)

func NewClientVpnRoute_Override

func NewClientVpnRoute_Override(c ClientVpnRoute, scope constructs.Construct, id *string, props *ClientVpnRouteProps)

func NewClientVpnUserBasedAuthentication_Override

func NewClientVpnUserBasedAuthentication_Override(c ClientVpnUserBasedAuthentication)

func NewConnections_Override

func NewConnections_Override(c Connections, props *ConnectionsProps)

func NewFlowLogDestination_Override

func NewFlowLogDestination_Override(f FlowLogDestination)

func NewFlowLogResourceType_Override

func NewFlowLogResourceType_Override(f FlowLogResourceType)

func NewFlowLog_Override

func NewFlowLog_Override(f FlowLog, scope constructs.Construct, id *string, props *FlowLogProps)

func NewGatewayVpcEndpointAwsService_Override

func NewGatewayVpcEndpointAwsService_Override(g GatewayVpcEndpointAwsService, name *string, prefix *string)

func NewGatewayVpcEndpoint_Override

func NewGatewayVpcEndpoint_Override(g GatewayVpcEndpoint, scope constructs.Construct, id *string, props *GatewayVpcEndpointProps)

func NewGenericLinuxImage_Override

func NewGenericLinuxImage_Override(g GenericLinuxImage, amiMap *map[string]*string, props *GenericLinuxImageProps)

func NewGenericSSMParameterImage_Override

func NewGenericSSMParameterImage_Override(g GenericSSMParameterImage, parameterName *string, os OperatingSystemType, userData UserData)

func NewGenericWindowsImage_Override

func NewGenericWindowsImage_Override(g GenericWindowsImage, amiMap *map[string]*string, props *GenericWindowsImageProps)

func NewInitCommandWaitDuration_Override

func NewInitCommandWaitDuration_Override(i InitCommandWaitDuration)

func NewInitConfig_Override

func NewInitConfig_Override(i InitConfig, elements *[]InitElement)

func NewInitElement_Override

func NewInitElement_Override(i InitElement)

func NewInitFile_Override

func NewInitFile_Override(i InitFile, fileName *string, options *InitFileOptions)

func NewInitGroup_Override

func NewInitGroup_Override(i InitGroup, groupName *string, groupId *float64)

func NewInitPackage_Override

func NewInitPackage_Override(i InitPackage, type_ *string, versions *[]*string, packageName *string, serviceHandles *[]InitServiceRestartHandle)

func NewInitServiceRestartHandle_Override

func NewInitServiceRestartHandle_Override(i InitServiceRestartHandle)

func NewInitSource_Override

func NewInitSource_Override(i InitSource, targetDirectory *string, serviceHandles *[]InitServiceRestartHandle)

func NewInitUser_Override

func NewInitUser_Override(i InitUser, userName *string, userOptions *InitUserOptions)

func NewInstanceType_Override

func NewInstanceType_Override(i InstanceType, instanceTypeIdentifier *string)

func NewInstance_Override

func NewInstance_Override(i Instance, scope constructs.Construct, id *string, props *InstanceProps)

func NewInterfaceVpcEndpointAwsService_Override

func NewInterfaceVpcEndpointAwsService_Override(i InterfaceVpcEndpointAwsService, name *string, prefix *string, port *float64)

func NewInterfaceVpcEndpointService_Override

func NewInterfaceVpcEndpointService_Override(i InterfaceVpcEndpointService, name *string, port *float64)

func NewInterfaceVpcEndpoint_Override

func NewInterfaceVpcEndpoint_Override(i InterfaceVpcEndpoint, scope constructs.Construct, id *string, props *InterfaceVpcEndpointProps)

func NewLaunchTemplateSpecialVersions_Override

func NewLaunchTemplateSpecialVersions_Override(l LaunchTemplateSpecialVersions)

func NewLaunchTemplate_Override

func NewLaunchTemplate_Override(l LaunchTemplate, scope constructs.Construct, id *string, props *LaunchTemplateProps)

func NewLookupMachineImage_Override

func NewLookupMachineImage_Override(l LookupMachineImage, props *LookupMachineImageProps)

func NewMachineImage_Override

func NewMachineImage_Override(m MachineImage)

func NewMultipartBody_Override

func NewMultipartBody_Override(m MultipartBody)

func NewMultipartUserData_Override

func NewMultipartUserData_Override(m MultipartUserData, opts *MultipartUserDataOptions)

func NewNatInstanceImage_Override

func NewNatInstanceImage_Override(n NatInstanceImage)

func NewNatInstanceProvider_Override

func NewNatInstanceProvider_Override(n NatInstanceProvider, props *NatInstanceProps)

func NewNatProvider_Override

func NewNatProvider_Override(n NatProvider)

func NewNetworkAclEntry_Override

func NewNetworkAclEntry_Override(n NetworkAclEntry, scope constructs.Construct, id *string, props *NetworkAclEntryProps)

func NewNetworkAcl_Override

func NewNetworkAcl_Override(n NetworkAcl, scope constructs.Construct, id *string, props *NetworkAclProps)

func NewPeer_Override

func NewPeer_Override(p Peer)

func NewPort_Override

func NewPort_Override(p Port, props *PortProps)

func NewPrivateSubnet_Override

func NewPrivateSubnet_Override(p PrivateSubnet, scope constructs.Construct, id *string, props *PrivateSubnetProps)

func NewPublicSubnet_Override

func NewPublicSubnet_Override(p PublicSubnet, scope constructs.Construct, id *string, props *PublicSubnetProps)

func NewSecurityGroup_Override

func NewSecurityGroup_Override(s SecurityGroup, scope constructs.Construct, id *string, props *SecurityGroupProps)

func NewSubnetFilter_Override

func NewSubnetFilter_Override(s SubnetFilter)

func NewSubnetNetworkAclAssociation_Override

func NewSubnetNetworkAclAssociation_Override(s SubnetNetworkAclAssociation, scope constructs.Construct, id *string, props *SubnetNetworkAclAssociationProps)

func NewSubnet_Override

func NewSubnet_Override(s Subnet, scope constructs.Construct, id *string, props *SubnetProps)

func NewUserData_Override

func NewUserData_Override(u UserData)

func NewVolume_Override

func NewVolume_Override(v Volume, scope constructs.Construct, id *string, props *VolumeProps)

func NewVpcEndpointService_Override

func NewVpcEndpointService_Override(v VpcEndpointService, scope constructs.Construct, id *string, props *VpcEndpointServiceProps)

func NewVpcEndpoint_Override

func NewVpcEndpoint_Override(v VpcEndpoint, scope constructs.Construct, id *string, props *awscdk.ResourceProps)

func NewVpc_Override

func NewVpc_Override(v Vpc, scope constructs.Construct, id *string, props *VpcProps)

Vpc creates a VPC that spans a whole region.

It will automatically divide the provided VPC CIDR range, and create public and private subnets per Availability Zone. Network routing for the public subnets will be configured to allow outbound access directly via an Internet Gateway. Network routing for the private subnets will be configured to allow outbound access via a set of resilient NAT Gateways (one per AZ).

func NewVpnConnection_Override

func NewVpnConnection_Override(v VpnConnection, scope constructs.Construct, id *string, props *VpnConnectionProps)

func NewVpnGateway_Override

func NewVpnGateway_Override(v VpnGateway, scope constructs.Construct, id *string, props *VpnGatewayProps)

func NewWindowsImage_Override

func NewWindowsImage_Override(w WindowsImage, version WindowsVersion, props *WindowsImageProps)

func PrivateSubnet_IsConstruct

func PrivateSubnet_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 PrivateSubnet_IsResource

func PrivateSubnet_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func PrivateSubnet_IsVpcSubnet

func PrivateSubnet_IsVpcSubnet(x interface{}) *bool

func PublicSubnet_IsConstruct

func PublicSubnet_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 PublicSubnet_IsResource

func PublicSubnet_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func PublicSubnet_IsVpcSubnet

func PublicSubnet_IsVpcSubnet(x interface{}) *bool

func SecurityGroup_IsConstruct

func SecurityGroup_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 SecurityGroup_IsResource

func SecurityGroup_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func SecurityGroup_IsSecurityGroup

func SecurityGroup_IsSecurityGroup(x interface{}) *bool

Return whether the indicated object is a security group.

func SubnetNetworkAclAssociation_IsConstruct

func SubnetNetworkAclAssociation_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 SubnetNetworkAclAssociation_IsResource

func SubnetNetworkAclAssociation_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func Subnet_IsConstruct

func Subnet_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 Subnet_IsResource

func Subnet_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func Subnet_IsVpcSubnet

func Subnet_IsVpcSubnet(x interface{}) *bool

func Volume_IsConstruct

func Volume_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 Volume_IsResource

func Volume_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func VpcEndpointService_IsConstruct

func VpcEndpointService_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 VpcEndpointService_IsResource

func VpcEndpointService_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func VpcEndpoint_IsConstruct

func VpcEndpoint_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 VpcEndpoint_IsResource

func VpcEndpoint_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func Vpc_DEFAULT_CIDR_RANGE

func Vpc_DEFAULT_CIDR_RANGE() *string

func Vpc_DEFAULT_SUBNETS

func Vpc_DEFAULT_SUBNETS() *[]*SubnetConfiguration

func Vpc_DEFAULT_SUBNETS_NO_NAT

func Vpc_DEFAULT_SUBNETS_NO_NAT() *[]*SubnetConfiguration

func Vpc_IsConstruct

func Vpc_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 Vpc_IsResource

func Vpc_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func VpnConnection_IsConstruct

func VpnConnection_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 VpnConnection_IsResource

func VpnConnection_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func VpnConnection_MetricAll

func VpnConnection_MetricAll(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric

Return the given named metric for all VPN connections in the account/region.

func VpnConnection_MetricAllTunnelDataIn

func VpnConnection_MetricAllTunnelDataIn(props *awscloudwatch.MetricOptions) awscloudwatch.Metric

Metric for the tunnel data in of all VPN connections in the account/region.

func VpnConnection_MetricAllTunnelDataOut

func VpnConnection_MetricAllTunnelDataOut(props *awscloudwatch.MetricOptions) awscloudwatch.Metric

Metric for the tunnel data out of all VPN connections.

func VpnConnection_MetricAllTunnelState

func VpnConnection_MetricAllTunnelState(props *awscloudwatch.MetricOptions) awscloudwatch.Metric

Metric for the tunnel state of all VPN connections in the account/region.

func VpnGateway_IsConstruct

func VpnGateway_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 VpnGateway_IsResource

func VpnGateway_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

Types

type AclCidr

type AclCidr interface {
	ToCidrConfig() *AclCidrConfig
}

Either an IPv4 or an IPv6 CIDR.

TODO: EXAMPLE

func AclCidr_AnyIpv4

func AclCidr_AnyIpv4() AclCidr

The CIDR containing all IPv4 addresses (i.e., 0.0.0.0/0).

func AclCidr_AnyIpv6

func AclCidr_AnyIpv6() AclCidr

The CIDR containing all IPv6 addresses (i.e., ::/0).

func AclCidr_Ipv4

func AclCidr_Ipv4(ipv4Cidr *string) AclCidr

An IP network range in CIDR notation (for example, 172.16.0.0/24).

func AclCidr_Ipv6

func AclCidr_Ipv6(ipv6Cidr *string) AclCidr

An IPv6 network range in CIDR notation (for example, 2001:db8::/48).

type AclCidrConfig

type AclCidrConfig struct {
	// Ipv4 CIDR.
	CidrBlock *string `json:"cidrBlock" yaml:"cidrBlock"`
	// Ipv6 CIDR.
	Ipv6CidrBlock *string `json:"ipv6CidrBlock" yaml:"ipv6CidrBlock"`
}

Acl Configuration for CIDR.

TODO: EXAMPLE

type AclIcmp

type AclIcmp struct {
	// The Internet Control Message Protocol (ICMP) code.
	//
	// You can use -1 to specify all ICMP
	// codes for the given ICMP type. Requirement is conditional: Required if you
	// specify 1 (ICMP) for the protocol parameter.
	Code *float64 `json:"code" yaml:"code"`
	// The Internet Control Message Protocol (ICMP) type.
	//
	// You can use -1 to specify all ICMP types.
	// Conditional requirement: Required if you specify 1 (ICMP) for the CreateNetworkAclEntry protocol parameter.
	Type *float64 `json:"type" yaml:"type"`
}

Properties to create Icmp.

TODO: EXAMPLE

type AclPortRange

type AclPortRange struct {
	// The first port in the range.
	//
	// Required if you specify 6 (TCP) or 17 (UDP) for the protocol parameter.
	From *float64 `json:"from" yaml:"from"`
	// The last port in the range.
	//
	// Required if you specify 6 (TCP) or 17 (UDP) for the protocol parameter.
	To *float64 `json:"to" yaml:"to"`
}

Properties to create PortRange.

TODO: EXAMPLE

type AclTraffic

type AclTraffic interface {
	ToTrafficConfig() *AclTrafficConfig
}

The traffic that is configured using a Network ACL entry.

TODO: EXAMPLE

func AclTraffic_AllTraffic

func AclTraffic_AllTraffic() AclTraffic

Apply the ACL entry to all traffic.

func AclTraffic_Icmp

func AclTraffic_Icmp(props *AclIcmp) AclTraffic

Apply the ACL entry to ICMP traffic of given type and code.

func AclTraffic_Icmpv6

func AclTraffic_Icmpv6(props *AclIcmp) AclTraffic

Apply the ACL entry to ICMPv6 traffic of given type and code.

Requires an IPv6 CIDR block.

func AclTraffic_TcpPort

func AclTraffic_TcpPort(port *float64) AclTraffic

Apply the ACL entry to TCP traffic on a given port.

func AclTraffic_TcpPortRange

func AclTraffic_TcpPortRange(startPort *float64, endPort *float64) AclTraffic

Apply the ACL entry to TCP traffic on a given port range.

func AclTraffic_UdpPort

func AclTraffic_UdpPort(port *float64) AclTraffic

Apply the ACL entry to UDP traffic on a given port.

func AclTraffic_UdpPortRange

func AclTraffic_UdpPortRange(startPort *float64, endPort *float64) AclTraffic

Apply the ACL entry to UDP traffic on a given port range.

type AclTrafficConfig

type AclTrafficConfig struct {
	// The protocol number.
	//
	// A value of "-1" means all protocols.
	//
	// If you specify "-1" or a protocol number other than "6" (TCP), "17" (UDP),
	// or "1" (ICMP), traffic on all ports is allowed, regardless of any ports or
	// ICMP types or codes that you specify.
	//
	// If you specify protocol "58" (ICMPv6) and specify an IPv4 CIDR
	// block, traffic for all ICMP types and codes allowed, regardless of any that
	// you specify. If you specify protocol "58" (ICMPv6) and specify an IPv6 CIDR
	// block, you must specify an ICMP type and code.
	Protocol *float64 `json:"protocol" yaml:"protocol"`
	// The Internet Control Message Protocol (ICMP) code and type.
	Icmp *AclIcmp `json:"icmp" yaml:"icmp"`
	// The range of port numbers for the UDP/TCP protocol.
	PortRange *AclPortRange `json:"portRange" yaml:"portRange"`
}

Acl Configuration for traffic.

TODO: EXAMPLE

type Action

type Action string

What action to apply to traffic matching the ACL.

const (
	Action_ALLOW Action = "ALLOW"
	Action_DENY  Action = "DENY"
)

type AddRouteOptions

type AddRouteOptions struct {
	// The ID of the router.
	//
	// Can be an instance ID, gateway ID, etc, depending on the router type.
	RouterId *string `json:"routerId" yaml:"routerId"`
	// What type of router to route this traffic to.
	RouterType RouterType `json:"routerType" yaml:"routerType"`
	// IPv4 range this route applies to.
	DestinationCidrBlock *string `json:"destinationCidrBlock" yaml:"destinationCidrBlock"`
	// IPv6 range this route applies to.
	DestinationIpv6CidrBlock *string `json:"destinationIpv6CidrBlock" yaml:"destinationIpv6CidrBlock"`
	// Whether this route will enable internet connectivity.
	//
	// If true, this route will be added before any AWS resources that depend
	// on internet connectivity in the VPC will be created.
	EnablesInternetConnectivity *bool `json:"enablesInternetConnectivity" yaml:"enablesInternetConnectivity"`
}

Options for adding a new route to a subnet.

TODO: EXAMPLE

type AmazonLinuxCpuType

type AmazonLinuxCpuType string

CPU type.

TODO: EXAMPLE

const (
	AmazonLinuxCpuType_ARM_64 AmazonLinuxCpuType = "ARM_64"
	AmazonLinuxCpuType_X86_64 AmazonLinuxCpuType = "X86_64"
)

type AmazonLinuxEdition

type AmazonLinuxEdition string

Amazon Linux edition.

TODO: EXAMPLE

const (
	AmazonLinuxEdition_STANDARD AmazonLinuxEdition = "STANDARD"
	AmazonLinuxEdition_MINIMAL  AmazonLinuxEdition = "MINIMAL"
)

type AmazonLinuxGeneration

type AmazonLinuxGeneration string

What generation of Amazon Linux to use.

TODO: EXAMPLE

const (
	AmazonLinuxGeneration_AMAZON_LINUX      AmazonLinuxGeneration = "AMAZON_LINUX"
	AmazonLinuxGeneration_AMAZON_LINUX_2    AmazonLinuxGeneration = "AMAZON_LINUX_2"
	AmazonLinuxGeneration_AMAZON_LINUX_2022 AmazonLinuxGeneration = "AMAZON_LINUX_2022"
)

type AmazonLinuxImage

type AmazonLinuxImage interface {
	GenericSSMParameterImage
	ParameterName() *string
	GetImage(scope constructs.Construct) *MachineImageConfig
}

Selects the latest version of Amazon Linux.

This Machine Image automatically updates to the latest version on every deployment. Be aware this will cause your instances to be replaced when a new version of the image becomes available. Do not store stateful information on the instance if you are using this image.

The AMI ID is selected using the values published to the SSM parameter store.

TODO: EXAMPLE

func NewAmazonLinuxImage

func NewAmazonLinuxImage(props *AmazonLinuxImageProps) AmazonLinuxImage

type AmazonLinuxImageProps

type AmazonLinuxImageProps struct {
	// Whether the AMI ID is cached to be stable between deployments.
	//
	// By default, the newest image is used on each deployment. This will cause
	// instances to be replaced whenever a new version is released, and may cause
	// downtime if there aren't enough running instances in the AutoScalingGroup
	// to reschedule the tasks on.
	//
	// If set to true, the AMI ID will be cached in `cdk.context.json` and the
	// same value will be used on future runs. Your instances will not be replaced
	// but your AMI version will grow old over time. To refresh the AMI 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.
	//
	// Can not be set to `true` in environment-agnostic stacks.
	CachedInContext *bool `json:"cachedInContext" yaml:"cachedInContext"`
	// CPU Type.
	CpuType AmazonLinuxCpuType `json:"cpuType" yaml:"cpuType"`
	// What edition of Amazon Linux to use.
	Edition AmazonLinuxEdition `json:"edition" yaml:"edition"`
	// What generation of Amazon Linux to use.
	Generation AmazonLinuxGeneration `json:"generation" yaml:"generation"`
	// What kernel version of Amazon Linux to use.
	Kernel AmazonLinuxKernel `json:"kernel" yaml:"kernel"`
	// What storage backed image to use.
	Storage AmazonLinuxStorage `json:"storage" yaml:"storage"`
	// Initial user data.
	UserData UserData `json:"userData" yaml:"userData"`
	// Virtualization type.
	Virtualization AmazonLinuxVirt `json:"virtualization" yaml:"virtualization"`
}

Amazon Linux image properties.

TODO: EXAMPLE

type AmazonLinuxKernel added in v2.9.0

type AmazonLinuxKernel string

Amazon Linux Kernel.

TODO: EXAMPLE

const (
	AmazonLinuxKernel_KERNEL5_X AmazonLinuxKernel = "KERNEL5_X"
)

type AmazonLinuxStorage

type AmazonLinuxStorage string

TODO: EXAMPLE

const (
	AmazonLinuxStorage_EBS             AmazonLinuxStorage = "EBS"
	AmazonLinuxStorage_S3              AmazonLinuxStorage = "S3"
	AmazonLinuxStorage_GENERAL_PURPOSE AmazonLinuxStorage = "GENERAL_PURPOSE"
)

type AmazonLinuxVirt

type AmazonLinuxVirt string

Virtualization type for Amazon Linux.

TODO: EXAMPLE

const (
	AmazonLinuxVirt_HVM AmazonLinuxVirt = "HVM"
	AmazonLinuxVirt_PV  AmazonLinuxVirt = "PV"
)

type ApplyCloudFormationInitOptions

type ApplyCloudFormationInitOptions struct {
	// ConfigSet to activate.
	ConfigSets *[]*string `json:"configSets" yaml:"configSets"`
	// Force instance replacement by embedding a config fingerprint.
	//
	// If `true` (the default), a hash of the config will be embedded into the
	// UserData, so that if the config changes, the UserData changes.
	//
	// - If the EC2 instance is instance-store backed or
	//    `userDataCausesReplacement` is set, this will cause the instance to be
	//    replaced and the new configuration to be applied.
	// - If the instance is EBS-backed and `userDataCausesReplacement` is not
	//    set, the change of UserData will make the instance restart but not be
	//    replaced, and the configuration will not be applied automatically.
	//
	// If `false`, no hash will be embedded, and if the CloudFormation Init
	// config changes nothing will happen to the running instance. If a
	// config update introduces errors, you will not notice until after the
	// CloudFormation deployment successfully finishes and the next instance
	// fails to launch.
	EmbedFingerprint *bool `json:"embedFingerprint" yaml:"embedFingerprint"`
	// Don't fail the instance creation when cfn-init fails.
	//
	// You can use this to prevent CloudFormation from rolling back when
	// instances fail to start up, to help in debugging.
	IgnoreFailures *bool `json:"ignoreFailures" yaml:"ignoreFailures"`
	// Include --role argument when running cfn-init and cfn-signal commands.
	//
	// This will be the IAM instance profile attached to the EC2 instance
	IncludeRole *bool `json:"includeRole" yaml:"includeRole"`
	// Include --url argument when running cfn-init and cfn-signal commands.
	//
	// This will be the cloudformation endpoint in the deployed region
	// e.g. https://cloudformation.us-east-1.amazonaws.com
	IncludeUrl *bool `json:"includeUrl" yaml:"includeUrl"`
	// Print the results of running cfn-init to the Instance System Log.
	//
	// By default, the output of running cfn-init is written to a log file
	// on the instance. Set this to `true` to print it to the System Log
	// (visible from the EC2 Console), `false` to not print it.
	//
	// (Be aware that the system log is refreshed at certain points in
	// time of the instance life cycle, and successful execution may
	// not always show up).
	PrintLog *bool `json:"printLog" yaml:"printLog"`
	// Timeout waiting for the configuration to be applied.
	Timeout awscdk.Duration `json:"timeout" yaml:"timeout"`
}

Options for applying CloudFormation init to an instance or instance group.

TODO: EXAMPLE

type AttachInitOptions

type AttachInitOptions struct {
	// Instance role of the consuming instance or fleet.
	InstanceRole awsiam.IRole `json:"instanceRole" yaml:"instanceRole"`
	// OS Platform the init config will be used for.
	Platform OperatingSystemType `json:"platform" yaml:"platform"`
	// UserData to add commands to.
	UserData UserData `json:"userData" yaml:"userData"`
	// ConfigSet to activate.
	ConfigSets *[]*string `json:"configSets" yaml:"configSets"`
	// Whether to embed a hash into the userData.
	//
	// If `true` (the default), a hash of the config will be embedded into the
	// UserData, so that if the config changes, the UserData changes and
	// the instance will be replaced.
	//
	// If `false`, no such hash will be embedded, and if the CloudFormation Init
	// config changes nothing will happen to the running instance.
	EmbedFingerprint *bool `json:"embedFingerprint" yaml:"embedFingerprint"`
	// Don't fail the instance creation when cfn-init fails.
	//
	// You can use this to prevent CloudFormation from rolling back when
	// instances fail to start up, to help in debugging.
	IgnoreFailures *bool `json:"ignoreFailures" yaml:"ignoreFailures"`
	// Include --role argument when running cfn-init and cfn-signal commands.
	//
	// This will be the IAM instance profile attached to the EC2 instance
	IncludeRole *bool `json:"includeRole" yaml:"includeRole"`
	// Include --url argument when running cfn-init and cfn-signal commands.
	//
	// This will be the cloudformation endpoint in the deployed region
	// e.g. https://cloudformation.us-east-1.amazonaws.com
	IncludeUrl *bool `json:"includeUrl" yaml:"includeUrl"`
	// Print the results of running cfn-init to the Instance System Log.
	//
	// By default, the output of running cfn-init is written to a log file
	// on the instance. Set this to `true` to print it to the System Log
	// (visible from the EC2 Console), `false` to not print it.
	//
	// (Be aware that the system log is refreshed at certain points in
	// time of the instance life cycle, and successful execution may
	// not always show up).
	PrintLog *bool `json:"printLog" yaml:"printLog"`
	// When provided, signals this resource instead of the attached resource.
	//
	// You can use this to support signaling LaunchTemplate while attaching AutoScalingGroup
	SignalResource awscdk.CfnResource `json:"signalResource" yaml:"signalResource"`
}

Options for attaching a CloudFormationInit to a resource.

TODO: EXAMPLE

type BastionHostLinux

type BastionHostLinux interface {
	awscdk.Resource
	IInstance
	Connections() Connections
	Env() *awscdk.ResourceEnvironment
	GrantPrincipal() awsiam.IPrincipal
	Instance() Instance
	InstanceAvailabilityZone() *string
	InstanceId() *string
	InstancePrivateDnsName() *string
	InstancePrivateIp() *string
	InstancePublicDnsName() *string
	InstancePublicIp() *string
	Node() constructs.Node
	PhysicalName() *string
	Role() awsiam.IRole
	Stack() awscdk.Stack
	AllowSshAccessFrom(peer ...IPeer)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

This creates a linux bastion host you can use to connect to other instances or services in your VPC.

The recommended way to connect to the bastion host is by using AWS Systems Manager Session Manager.

The operating system is Amazon Linux 2 with the latest SSM agent installed

You can also configure this bastion host to allow connections via SSH

TODO: EXAMPLE

func NewBastionHostLinux

func NewBastionHostLinux(scope constructs.Construct, id *string, props *BastionHostLinuxProps) BastionHostLinux

type BastionHostLinuxProps

type BastionHostLinuxProps struct {
	// VPC to launch the instance in.
	Vpc IVpc `json:"vpc" yaml:"vpc"`
	// In which AZ to place the instance within the VPC.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes.
	//
	// Each instance that is launched has an associated root device volume,
	// either an Amazon EBS volume or an instance store volume.
	// You can use block device mappings to specify additional EBS volumes or
	// instance store volumes to attach to an instance when it is launched.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html
	//
	BlockDevices *[]*BlockDevice `json:"blockDevices" yaml:"blockDevices"`
	// Apply the given CloudFormation Init configuration to the instance at startup.
	Init CloudFormationInit `json:"init" yaml:"init"`
	// Use the given options for applying CloudFormation Init.
	//
	// Describes the configsets to use and the timeout to wait
	InitOptions *ApplyCloudFormationInitOptions `json:"initOptions" yaml:"initOptions"`
	// The name of the instance.
	InstanceName *string `json:"instanceName" yaml:"instanceName"`
	// Type of instance to launch.
	InstanceType InstanceType `json:"instanceType" yaml:"instanceType"`
	// The machine image to use, assumed to have SSM Agent preinstalled.
	MachineImage IMachineImage `json:"machineImage" yaml:"machineImage"`
	// Whether IMDSv2 should be required on this instance.
	RequireImdsv2 *bool `json:"requireImdsv2" yaml:"requireImdsv2"`
	// Security Group to assign to this instance.
	SecurityGroup ISecurityGroup `json:"securityGroup" yaml:"securityGroup"`
	// Select the subnets to run the bastion host in.
	//
	// Set this to PUBLIC if you need to connect to this instance via the internet and cannot use SSM.
	// You have to allow port 22 manually by using the connections field
	SubnetSelection *SubnetSelection `json:"subnetSelection" yaml:"subnetSelection"`
}

Properties of the bastion host.

TODO: EXAMPLE

type BlockDevice

type BlockDevice struct {
	// The device name exposed to the EC2 instance.
	//
	// For example, a value like `/dev/sdh`, `xvdh`.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html
	//
	DeviceName *string `json:"deviceName" yaml:"deviceName"`
	// Defines the block device volume, to be either an Amazon EBS volume or an ephemeral instance store volume.
	//
	// For example, a value like `BlockDeviceVolume.ebs(15)`, `BlockDeviceVolume.ephemeral(0)`.
	Volume BlockDeviceVolume `json:"volume" yaml:"volume"`
	// If false, the device mapping will be suppressed.
	//
	// If set to false for the root device, the instance might fail the Amazon EC2 health check.
	// Amazon EC2 Auto Scaling launches a replacement instance if the instance fails the health check.
	MappingEnabled *bool `json:"mappingEnabled" yaml:"mappingEnabled"`
}

Block device.

TODO: EXAMPLE

type BlockDeviceVolume

type BlockDeviceVolume interface {
	EbsDevice() *EbsDeviceProps
	VirtualName() *string
}

Describes a block device mapping for an EC2 instance or Auto Scaling group.

TODO: EXAMPLE

func BlockDeviceVolume_Ebs

func BlockDeviceVolume_Ebs(volumeSize *float64, options *EbsDeviceOptions) BlockDeviceVolume

Creates a new Elastic Block Storage device.

func BlockDeviceVolume_EbsFromSnapshot

func BlockDeviceVolume_EbsFromSnapshot(snapshotId *string, options *EbsDeviceSnapshotOptions) BlockDeviceVolume

Creates a new Elastic Block Storage device from an existing snapshot.

func BlockDeviceVolume_Ephemeral

func BlockDeviceVolume_Ephemeral(volumeIndex *float64) BlockDeviceVolume

Creates a virtual, ephemeral device.

The name will be in the form ephemeral{volumeIndex}.

func NewBlockDeviceVolume

func NewBlockDeviceVolume(ebsDevice *EbsDeviceProps, virtualName *string) BlockDeviceVolume

type CfnCapacityReservation

type CfnCapacityReservation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrAvailabilityZone() *string
	AttrAvailableInstanceCount() *float64
	AttrInstanceType() *string
	AttrTenancy() *string
	AttrTotalInstanceCount() *float64
	AvailabilityZone() *string
	SetAvailabilityZone(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	EbsOptimized() interface{}
	SetEbsOptimized(val interface{})
	EndDate() *string
	SetEndDate(val *string)
	EndDateType() *string
	SetEndDateType(val *string)
	EphemeralStorage() interface{}
	SetEphemeralStorage(val interface{})
	InstanceCount() *float64
	SetInstanceCount(val *float64)
	InstanceMatchCriteria() *string
	SetInstanceMatchCriteria(val *string)
	InstancePlatform() *string
	SetInstancePlatform(val *string)
	InstanceType() *string
	SetInstanceType(val *string)
	LogicalId() *string
	Node() constructs.Node
	OutPostArn() *string
	SetOutPostArn(val *string)
	PlacementGroupArn() *string
	SetPlacementGroupArn(val *string)
	Ref() *string
	Stack() awscdk.Stack
	TagSpecifications() interface{}
	SetTagSpecifications(val interface{})
	Tenancy() *string
	SetTenancy(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::CapacityReservation`.

Creates a new Capacity Reservation with the specified attributes. For more information, see [Capacity Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) in the *Amazon EC2 User Guide* .

TODO: EXAMPLE

func NewCfnCapacityReservation

func NewCfnCapacityReservation(scope constructs.Construct, id *string, props *CfnCapacityReservationProps) CfnCapacityReservation

Create a new `AWS::EC2::CapacityReservation`.

type CfnCapacityReservationFleet

type CfnCapacityReservationFleet interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AllocationStrategy() *string
	SetAllocationStrategy(val *string)
	AttrCapacityReservationFleetId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	EndDate() *string
	SetEndDate(val *string)
	InstanceMatchCriteria() *string
	SetInstanceMatchCriteria(val *string)
	InstanceTypeSpecifications() interface{}
	SetInstanceTypeSpecifications(val interface{})
	LogicalId() *string
	Node() constructs.Node
	NoRemoveEndDate() interface{}
	SetNoRemoveEndDate(val interface{})
	Ref() *string
	RemoveEndDate() interface{}
	SetRemoveEndDate(val interface{})
	Stack() awscdk.Stack
	TagSpecifications() interface{}
	SetTagSpecifications(val interface{})
	Tenancy() *string
	SetTenancy(val *string)
	TotalTargetCapacity() *float64
	SetTotalTargetCapacity(val *float64)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::CapacityReservationFleet`.

Creates a new Capacity Reservation Fleet with the specified attributes. For more information, see [Capacity Reservation Fleets](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-fleets.html) in the *Amazon EC2 User Guide* .

TODO: EXAMPLE

func NewCfnCapacityReservationFleet

func NewCfnCapacityReservationFleet(scope constructs.Construct, id *string, props *CfnCapacityReservationFleetProps) CfnCapacityReservationFleet

Create a new `AWS::EC2::CapacityReservationFleet`.

type CfnCapacityReservationFleetProps

type CfnCapacityReservationFleetProps struct {
	// The strategy used by the Capacity Reservation Fleet to determine which of the specified instance types to use.
	//
	// Currently, only the `prioritized` allocation strategy is supported. For more information, see [Allocation strategy](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#allocation-strategy) in the Amazon EC2 User Guide.
	//
	// Valid values: `prioritized`
	AllocationStrategy *string `json:"allocationStrategy" yaml:"allocationStrategy"`
	// The date and time at which the Capacity Reservation Fleet expires.
	//
	// When the Capacity Reservation Fleet expires, its state changes to `expired` and all of the Capacity Reservations in the Fleet expire.
	//
	// The Capacity Reservation Fleet expires within an hour after the specified time. For example, if you specify `5/31/2019` , `13:30:55` , the Capacity Reservation Fleet is guaranteed to expire between `13:30:55` and `14:30:55` on `5/31/2019` .
	EndDate *string `json:"endDate" yaml:"endDate"`
	// Indicates the type of instance launches that the Capacity Reservation Fleet accepts.
	//
	// All Capacity Reservations in the Fleet inherit this instance matching criteria.
	//
	// Currently, Capacity Reservation Fleets support `open` instance matching criteria only. This means that instances that have matching attributes (instance type, platform, and Availability Zone) run in the Capacity Reservations automatically. Instances do not need to explicitly target a Capacity Reservation Fleet to use its reserved capacity.
	InstanceMatchCriteria *string `json:"instanceMatchCriteria" yaml:"instanceMatchCriteria"`
	// Information about the instance types for which to reserve the capacity.
	InstanceTypeSpecifications interface{} `json:"instanceTypeSpecifications" yaml:"instanceTypeSpecifications"`
	// `AWS::EC2::CapacityReservationFleet.NoRemoveEndDate`.
	NoRemoveEndDate interface{} `json:"noRemoveEndDate" yaml:"noRemoveEndDate"`
	// `AWS::EC2::CapacityReservationFleet.RemoveEndDate`.
	RemoveEndDate interface{} `json:"removeEndDate" yaml:"removeEndDate"`
	// The tags to assign to the Capacity Reservation Fleet.
	//
	// The tags are automatically assigned to the Capacity Reservations in the Fleet.
	TagSpecifications interface{} `json:"tagSpecifications" yaml:"tagSpecifications"`
	// Indicates the tenancy of the Capacity Reservation Fleet.
	//
	// All Capacity Reservations in the Fleet inherit this tenancy. The Capacity Reservation Fleet can have one of the following tenancy settings:
	//
	// - `default` - The Capacity Reservation Fleet is created on hardware that is shared with other AWS accounts .
	// - `dedicated` - The Capacity Reservations are created on single-tenant hardware that is dedicated to a single AWS account .
	Tenancy *string `json:"tenancy" yaml:"tenancy"`
	// The total number of capacity units to be reserved by the Capacity Reservation Fleet.
	//
	// This value, together with the instance type weights that you assign to each instance type used by the Fleet determine the number of instances for which the Fleet reserves capacity. Both values are based on units that make sense for your workload. For more information, see [Total target capacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) in the Amazon EC2 User Guide.
	TotalTargetCapacity *float64 `json:"totalTargetCapacity" yaml:"totalTargetCapacity"`
}

Properties for defining a `CfnCapacityReservationFleet`.

TODO: EXAMPLE

type CfnCapacityReservationFleet_InstanceTypeSpecificationProperty

type CfnCapacityReservationFleet_InstanceTypeSpecificationProperty struct {
	// The Availability Zone in which the Capacity Reservation Fleet reserves the capacity.
	//
	// A Capacity Reservation Fleet can't span Availability Zones. All instance type specifications that you specify for the Fleet must use the same Availability Zone.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The ID of the Availability Zone in which the Capacity Reservation Fleet reserves the capacity.
	//
	// A Capacity Reservation Fleet can't span Availability Zones. All instance type specifications that you specify for the Fleet must use the same Availability Zone.
	AvailabilityZoneId *string `json:"availabilityZoneId" yaml:"availabilityZoneId"`
	// Indicates whether the Capacity Reservation Fleet supports EBS-optimized instances types.
	//
	// This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using EBS-optimized instance types.
	EbsOptimized interface{} `json:"ebsOptimized" yaml:"ebsOptimized"`
	// The type of operating system for which the Capacity Reservation Fleet reserves capacity.
	InstancePlatform *string `json:"instancePlatform" yaml:"instancePlatform"`
	// The instance type for which the Capacity Reservation Fleet reserves capacity.
	InstanceType *string `json:"instanceType" yaml:"instanceType"`
	// The priority to assign to the instance type.
	//
	// This value is used to determine which of the instance types specified for the Fleet should be prioritized for use. A lower value indicates a high priority. For more information, see [Instance type priority](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#instance-priority) in the Amazon EC2 User Guide.
	Priority *float64 `json:"priority" yaml:"priority"`
	// The number of capacity units provided by the specified instance type.
	//
	// This value, together with the total target capacity that you specify for the Fleet determine the number of instances for which the Fleet reserves capacity. Both values are based on units that make sense for your workload. For more information, see [Total target capacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) in the Amazon EC2 User Guide.
	//
	// Valid Range: Minimum value of `0.001` . Maximum value of `99.999` .
	Weight *float64 `json:"weight" yaml:"weight"`
}

Specifies information about an instance type to use in a Capacity Reservation Fleet.

`InstanceTypeSpecification` is a property of the [AWS::EC2::CapacityReservationFleet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html) resource.

TODO: EXAMPLE

type CfnCapacityReservationFleet_TagSpecificationProperty

type CfnCapacityReservationFleet_TagSpecificationProperty struct {
	// The type of resource to tag on creation. Specify `capacity-reservation-fleet` .
	//
	// To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html) .
	ResourceType *string `json:"resourceType" yaml:"resourceType"`
	// The tags to apply to the resource.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

The tags to apply to a resource when the resource is being created.

TODO: EXAMPLE

type CfnCapacityReservationProps

type CfnCapacityReservationProps struct {
	// The Availability Zone in which to create the Capacity Reservation.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The number of instances for which to reserve capacity.
	//
	// Valid range: 1 - 1000
	InstanceCount *float64 `json:"instanceCount" yaml:"instanceCount"`
	// The type of operating system for which to reserve capacity.
	InstancePlatform *string `json:"instancePlatform" yaml:"instancePlatform"`
	// The instance type for which to reserve capacity.
	//
	// For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide* .
	InstanceType *string `json:"instanceType" yaml:"instanceType"`
	// Indicates whether the Capacity Reservation supports EBS-optimized instances.
	//
	// This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS- optimized instance.
	EbsOptimized interface{} `json:"ebsOptimized" yaml:"ebsOptimized"`
	// The date and time at which the Capacity Reservation expires.
	//
	// When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it. The Capacity Reservation's state changes to `expired` when it reaches its end date and time.
	//
	// You must provide an `EndDate` value if `EndDateType` is `limited` . Omit `EndDate` if `EndDateType` is `unlimited` .
	//
	// If the `EndDateType` is `limited` , the Capacity Reservation is cancelled within an hour from the specified time. For example, if you specify 5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to end between 13:30:55 and 14:30:55 on 5/31/2019.
	EndDate *string `json:"endDate" yaml:"endDate"`
	// Indicates the way in which the Capacity Reservation ends.
	//
	// A Capacity Reservation can have one of the following end types:
	//
	// - `unlimited` - The Capacity Reservation remains active until you explicitly cancel it. Do not provide an `EndDate` if the `EndDateType` is `unlimited` .
	// - `limited` - The Capacity Reservation expires automatically at a specified date and time. You must provide an `EndDate` value if the `EndDateType` value is `limited` .
	EndDateType *string `json:"endDateType" yaml:"endDateType"`
	// Indicates whether the Capacity Reservation supports instances with temporary, block-level storage.
	EphemeralStorage interface{} `json:"ephemeralStorage" yaml:"ephemeralStorage"`
	// Indicates the type of instance launches that the Capacity Reservation accepts. The options include:.
	//
	// - `open` - The Capacity Reservation automatically matches all instances that have matching attributes (instance type, platform, and Availability Zone). Instances that have matching attributes run in the Capacity Reservation automatically without specifying any additional parameters.
	// - `targeted` - The Capacity Reservation only accepts instances that have matching attributes (instance type, platform, and Availability Zone), and explicitly target the Capacity Reservation. This ensures that only permitted instances can use the reserved capacity.
	//
	// Default: `open`
	InstanceMatchCriteria *string `json:"instanceMatchCriteria" yaml:"instanceMatchCriteria"`
	// The Amazon Resource Name (ARN) of the Outpost on which to create the Capacity Reservation.
	OutPostArn *string `json:"outPostArn" yaml:"outPostArn"`
	// The Amazon Resource Name (ARN) of the cluster placement group in which to create the Capacity Reservation.
	//
	// For more information, see [Capacity Reservations for cluster placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-cpg.html) in the *Amazon EC2 User Guide* .
	PlacementGroupArn *string `json:"placementGroupArn" yaml:"placementGroupArn"`
	// The tags to apply to the Capacity Reservation during launch.
	TagSpecifications interface{} `json:"tagSpecifications" yaml:"tagSpecifications"`
	// Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one of the following tenancy settings:.
	//
	// - `default` - The Capacity Reservation is created on hardware that is shared with other AWS accounts .
	// - `dedicated` - The Capacity Reservation is created on single-tenant hardware that is dedicated to a single AWS account .
	Tenancy *string `json:"tenancy" yaml:"tenancy"`
}

Properties for defining a `CfnCapacityReservation`.

TODO: EXAMPLE

type CfnCapacityReservation_TagSpecificationProperty

type CfnCapacityReservation_TagSpecificationProperty struct {
	// The type of resource to tag.
	//
	// Specify `capacity-reservation` .
	ResourceType *string `json:"resourceType" yaml:"resourceType"`
	// The tags to apply to the resource.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

An array of key-value pairs to apply to this resource.

For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .

TODO: EXAMPLE

type CfnCarrierGateway

type CfnCarrierGateway interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrCarrierGatewayId() *string
	AttrOwnerId() *string
	AttrState() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	VpcId() *string
	SetVpcId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::CarrierGateway`.

Creates a carrier gateway. For more information about carrier gateways, see [Carrier gateways](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#wavelength-carrier-gateway) in the *AWS Wavelength Developer Guide* .

TODO: EXAMPLE

func NewCfnCarrierGateway

func NewCfnCarrierGateway(scope constructs.Construct, id *string, props *CfnCarrierGatewayProps) CfnCarrierGateway

Create a new `AWS::EC2::CarrierGateway`.

type CfnCarrierGatewayProps

type CfnCarrierGatewayProps struct {
	// The ID of the VPC associated with the carrier gateway.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// The tags assigned to the carrier gateway.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnCarrierGateway`.

TODO: EXAMPLE

type CfnClientVpnAuthorizationRule

type CfnClientVpnAuthorizationRule interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AccessGroupId() *string
	SetAccessGroupId(val *string)
	AuthorizeAllGroups() interface{}
	SetAuthorizeAllGroups(val interface{})
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	ClientVpnEndpointId() *string
	SetClientVpnEndpointId(val *string)
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	TargetNetworkCidr() *string
	SetTargetNetworkCidr(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::ClientVpnAuthorizationRule`.

Specifies an ingress authorization rule to add to a Client VPN endpoint. Ingress authorization rules act as firewall rules that grant access to networks. You must configure ingress authorization rules to enable clients to access resources in AWS or on-premises networks.

TODO: EXAMPLE

func NewCfnClientVpnAuthorizationRule

func NewCfnClientVpnAuthorizationRule(scope constructs.Construct, id *string, props *CfnClientVpnAuthorizationRuleProps) CfnClientVpnAuthorizationRule

Create a new `AWS::EC2::ClientVpnAuthorizationRule`.

type CfnClientVpnAuthorizationRuleProps

type CfnClientVpnAuthorizationRuleProps struct {
	// The ID of the Client VPN endpoint.
	ClientVpnEndpointId *string `json:"clientVpnEndpointId" yaml:"clientVpnEndpointId"`
	// The IPv4 address range, in CIDR notation, of the network for which access is being authorized.
	TargetNetworkCidr *string `json:"targetNetworkCidr" yaml:"targetNetworkCidr"`
	// The ID of the group to grant access to, for example, the Active Directory group or identity provider (IdP) group.
	//
	// Required if `AuthorizeAllGroups` is `false` or not specified.
	AccessGroupId *string `json:"accessGroupId" yaml:"accessGroupId"`
	// Indicates whether to grant access to all clients.
	//
	// Specify `true` to grant all clients who successfully establish a VPN connection access to the network. Must be set to `true` if `AccessGroupId` is not specified.
	AuthorizeAllGroups interface{} `json:"authorizeAllGroups" yaml:"authorizeAllGroups"`
	// A brief description of the authorization rule.
	Description *string `json:"description" yaml:"description"`
}

Properties for defining a `CfnClientVpnAuthorizationRule`.

TODO: EXAMPLE

type CfnClientVpnEndpoint

type CfnClientVpnEndpoint interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AuthenticationOptions() interface{}
	SetAuthenticationOptions(val interface{})
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	ClientCidrBlock() *string
	SetClientCidrBlock(val *string)
	ClientConnectOptions() interface{}
	SetClientConnectOptions(val interface{})
	ClientLoginBannerOptions() interface{}
	SetClientLoginBannerOptions(val interface{})
	ConnectionLogOptions() interface{}
	SetConnectionLogOptions(val interface{})
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	DnsServers() *[]*string
	SetDnsServers(val *[]*string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	SecurityGroupIds() *[]*string
	SetSecurityGroupIds(val *[]*string)
	SelfServicePortal() *string
	SetSelfServicePortal(val *string)
	ServerCertificateArn() *string
	SetServerCertificateArn(val *string)
	SessionTimeoutHours() *float64
	SetSessionTimeoutHours(val *float64)
	SplitTunnel() interface{}
	SetSplitTunnel(val interface{})
	Stack() awscdk.Stack
	TagSpecifications() interface{}
	SetTagSpecifications(val interface{})
	TransportProtocol() *string
	SetTransportProtocol(val *string)
	UpdatedProperites() *map[string]interface{}
	VpcId() *string
	SetVpcId(val *string)
	VpnPort() *float64
	SetVpnPort(val *float64)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::ClientVpnEndpoint`.

Specifies a Client VPN endpoint. A Client VPN endpoint is the resource you create and configure to enable and manage client VPN sessions. It is the destination endpoint at which all client VPN sessions are terminated.

TODO: EXAMPLE

func NewCfnClientVpnEndpoint

func NewCfnClientVpnEndpoint(scope constructs.Construct, id *string, props *CfnClientVpnEndpointProps) CfnClientVpnEndpoint

Create a new `AWS::EC2::ClientVpnEndpoint`.

type CfnClientVpnEndpointProps

type CfnClientVpnEndpointProps struct {
	// Information about the authentication method to be used to authenticate clients.
	AuthenticationOptions interface{} `json:"authenticationOptions" yaml:"authenticationOptions"`
	// The IPv4 address range, in CIDR notation, from which to assign client IP addresses.
	//
	// The address range cannot overlap with the local CIDR of the VPC in which the associated subnet is located, or the routes that you add manually. The address range cannot be changed after the Client VPN endpoint has been created. The CIDR block should be /22 or greater.
	ClientCidrBlock *string `json:"clientCidrBlock" yaml:"clientCidrBlock"`
	// Information about the client connection logging options.
	//
	// If you enable client connection logging, data about client connections is sent to a Cloudwatch Logs log stream. The following information is logged:
	//
	// - Client connection requests
	// - Client connection results (successful and unsuccessful)
	// - Reasons for unsuccessful client connection requests
	// - Client connection termination time
	ConnectionLogOptions interface{} `json:"connectionLogOptions" yaml:"connectionLogOptions"`
	// The ARN of the server certificate.
	//
	// For more information, see the [AWS Certificate Manager User Guide](https://docs.aws.amazon.com/acm/latest/userguide/) .
	ServerCertificateArn *string `json:"serverCertificateArn" yaml:"serverCertificateArn"`
	// The options for managing connection authorization for new client connections.
	ClientConnectOptions interface{} `json:"clientConnectOptions" yaml:"clientConnectOptions"`
	// Options for enabling a customizable text banner that will be displayed on AWS provided clients when a VPN session is established.
	ClientLoginBannerOptions interface{} `json:"clientLoginBannerOptions" yaml:"clientLoginBannerOptions"`
	// A brief description of the Client VPN endpoint.
	Description *string `json:"description" yaml:"description"`
	// Information about the DNS servers to be used for DNS resolution.
	//
	// A Client VPN endpoint can have up to two DNS servers. If no DNS server is specified, the DNS address configured on the device is used for the DNS server.
	DnsServers *[]*string `json:"dnsServers" yaml:"dnsServers"`
	// The IDs of one or more security groups to apply to the target network.
	//
	// You must also specify the ID of the VPC that contains the security groups.
	SecurityGroupIds *[]*string `json:"securityGroupIds" yaml:"securityGroupIds"`
	// Specify whether to enable the self-service portal for the Client VPN endpoint.
	//
	// Default Value: `enabled`
	SelfServicePortal *string `json:"selfServicePortal" yaml:"selfServicePortal"`
	// The maximum VPN session duration time in hours.
	//
	// Valid values: `8 | 10 | 12 | 24`
	//
	// Default value: `24`
	SessionTimeoutHours *float64 `json:"sessionTimeoutHours" yaml:"sessionTimeoutHours"`
	// Indicates whether split-tunnel is enabled on the AWS Client VPN endpoint.
	//
	// By default, split-tunnel on a VPN endpoint is disabled.
	//
	// For information about split-tunnel VPN endpoints, see [Split-tunnel AWS Client VPN endpoint](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html) in the *AWS Client VPN Administrator Guide* .
	SplitTunnel interface{} `json:"splitTunnel" yaml:"splitTunnel"`
	// The tags to apply to the Client VPN endpoint during creation.
	TagSpecifications interface{} `json:"tagSpecifications" yaml:"tagSpecifications"`
	// The transport protocol to be used by the VPN session.
	//
	// Default value: `udp`
	TransportProtocol *string `json:"transportProtocol" yaml:"transportProtocol"`
	// The ID of the VPC to associate with the Client VPN endpoint.
	//
	// If no security group IDs are specified in the request, the default security group for the VPC is applied.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// The port number to assign to the Client VPN endpoint for TCP and UDP traffic.
	//
	// Valid Values: `443` | `1194`
	//
	// Default Value: `443`
	VpnPort *float64 `json:"vpnPort" yaml:"vpnPort"`
}

Properties for defining a `CfnClientVpnEndpoint`.

TODO: EXAMPLE

type CfnClientVpnEndpoint_CertificateAuthenticationRequestProperty

type CfnClientVpnEndpoint_CertificateAuthenticationRequestProperty struct {
	// The ARN of the client certificate.
	//
	// The certificate must be signed by a certificate authority (CA) and it must be provisioned in AWS Certificate Manager (ACM).
	ClientRootCertificateChainArn *string `json:"clientRootCertificateChainArn" yaml:"clientRootCertificateChainArn"`
}

Information about the client certificate to be used for authentication.

TODO: EXAMPLE

type CfnClientVpnEndpoint_ClientAuthenticationRequestProperty

type CfnClientVpnEndpoint_ClientAuthenticationRequestProperty struct {
	// The type of client authentication to be used.
	Type *string `json:"type" yaml:"type"`
	// Information about the Active Directory to be used, if applicable.
	//
	// You must provide this information if *Type* is `directory-service-authentication` .
	ActiveDirectory interface{} `json:"activeDirectory" yaml:"activeDirectory"`
	// Information about the IAM SAML identity provider, if applicable.
	FederatedAuthentication interface{} `json:"federatedAuthentication" yaml:"federatedAuthentication"`
	// Information about the authentication certificates to be used, if applicable.
	//
	// You must provide this information if *Type* is `certificate-authentication` .
	MutualAuthentication interface{} `json:"mutualAuthentication" yaml:"mutualAuthentication"`
}

Describes the authentication method to be used by a Client VPN endpoint.

For more information, see [Authentication](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/authentication-authrization.html#client-authentication) in the *AWS Client VPN Administrator Guide* .

TODO: EXAMPLE

type CfnClientVpnEndpoint_ClientConnectOptionsProperty

type CfnClientVpnEndpoint_ClientConnectOptionsProperty struct {
	// Indicates whether client connect options are enabled.
	//
	// The default is `false` (not enabled).
	Enabled interface{} `json:"enabled" yaml:"enabled"`
	// The Amazon Resource Name (ARN) of the AWS Lambda function used for connection authorization.
	LambdaFunctionArn *string `json:"lambdaFunctionArn" yaml:"lambdaFunctionArn"`
}

Indicates whether client connect options are enabled.

The default is `false` (not enabled).

TODO: EXAMPLE

type CfnClientVpnEndpoint_ClientLoginBannerOptionsProperty added in v2.9.0

type CfnClientVpnEndpoint_ClientLoginBannerOptionsProperty struct {
	// Enable or disable a customizable text banner that will be displayed on AWS provided clients when a VPN session is established.
	//
	// Valid values: `true | false`
	//
	// Default value: `false`
	Enabled interface{} `json:"enabled" yaml:"enabled"`
	// Customizable text that will be displayed in a banner on AWS provided clients when a VPN session is established.
	//
	// UTF-8 encoded characters only. Maximum of 1400 characters.
	BannerText *string `json:"bannerText" yaml:"bannerText"`
}

Options for enabling a customizable text banner that will be displayed on AWS provided clients when a VPN session is established.

TODO: EXAMPLE

type CfnClientVpnEndpoint_ConnectionLogOptionsProperty

type CfnClientVpnEndpoint_ConnectionLogOptionsProperty struct {
	// Indicates whether connection logging is enabled.
	Enabled interface{} `json:"enabled" yaml:"enabled"`
	// The name of the CloudWatch Logs log group.
	//
	// Required if connection logging is enabled.
	CloudwatchLogGroup *string `json:"cloudwatchLogGroup" yaml:"cloudwatchLogGroup"`
	// The name of the CloudWatch Logs log stream to which the connection data is published.
	CloudwatchLogStream *string `json:"cloudwatchLogStream" yaml:"cloudwatchLogStream"`
}

Describes the client connection logging options for the Client VPN endpoint.

TODO: EXAMPLE

type CfnClientVpnEndpoint_DirectoryServiceAuthenticationRequestProperty

type CfnClientVpnEndpoint_DirectoryServiceAuthenticationRequestProperty struct {
	// The ID of the Active Directory to be used for authentication.
	DirectoryId *string `json:"directoryId" yaml:"directoryId"`
}

Describes the Active Directory to be used for client authentication.

TODO: EXAMPLE

type CfnClientVpnEndpoint_FederatedAuthenticationRequestProperty

type CfnClientVpnEndpoint_FederatedAuthenticationRequestProperty struct {
	// The Amazon Resource Name (ARN) of the IAM SAML identity provider.
	SamlProviderArn *string `json:"samlProviderArn" yaml:"samlProviderArn"`
	// The Amazon Resource Name (ARN) of the IAM SAML identity provider for the self-service portal.
	SelfServiceSamlProviderArn *string `json:"selfServiceSamlProviderArn" yaml:"selfServiceSamlProviderArn"`
}

The IAM SAML identity provider used for federated authentication.

TODO: EXAMPLE

type CfnClientVpnEndpoint_TagSpecificationProperty

type CfnClientVpnEndpoint_TagSpecificationProperty struct {
	// The type of resource to tag.
	ResourceType *string `json:"resourceType" yaml:"resourceType"`
	// The tags to apply to the resource.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

The tags to apply to a resource when the resource is being created.

TODO: EXAMPLE

type CfnClientVpnRoute

type CfnClientVpnRoute interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	ClientVpnEndpointId() *string
	SetClientVpnEndpointId(val *string)
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	DestinationCidrBlock() *string
	SetDestinationCidrBlock(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	TargetVpcSubnetId() *string
	SetTargetVpcSubnetId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::ClientVpnRoute`.

Specifies a network route to add to a Client VPN endpoint. Each Client VPN endpoint has a route table that describes the available destination network routes. Each route in the route table specifies the path for traffic to specific resources or networks.

A target network association must be created before you can specify a route. If you're setting up all the components of a Client VPN endpoint at the same time, you must use the [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the `AWS::EC2::ClientVpnTargetNetworkAssociation` resource.

TODO: EXAMPLE

func NewCfnClientVpnRoute

func NewCfnClientVpnRoute(scope constructs.Construct, id *string, props *CfnClientVpnRouteProps) CfnClientVpnRoute

Create a new `AWS::EC2::ClientVpnRoute`.

type CfnClientVpnRouteProps

type CfnClientVpnRouteProps struct {
	// The ID of the Client VPN endpoint to which to add the route.
	ClientVpnEndpointId *string `json:"clientVpnEndpointId" yaml:"clientVpnEndpointId"`
	// The IPv4 address range, in CIDR notation, of the route destination. For example:.
	//
	// - To add a route for Internet access, enter `0.0.0.0/0`
	// - To add a route for a peered VPC, enter the peered VPC's IPv4 CIDR range
	// - To add a route for an on-premises network, enter the AWS Site-to-Site VPN connection's IPv4 CIDR range
	// - To add a route for the local network, enter the client CIDR range
	DestinationCidrBlock *string `json:"destinationCidrBlock" yaml:"destinationCidrBlock"`
	// The ID of the subnet through which you want to route traffic.
	//
	// The specified subnet must be an existing target network of the Client VPN endpoint.
	//
	// Alternatively, if you're adding a route for the local network, specify `local` .
	TargetVpcSubnetId *string `json:"targetVpcSubnetId" yaml:"targetVpcSubnetId"`
	// A brief description of the route.
	Description *string `json:"description" yaml:"description"`
}

Properties for defining a `CfnClientVpnRoute`.

TODO: EXAMPLE

type CfnClientVpnTargetNetworkAssociation

type CfnClientVpnTargetNetworkAssociation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	ClientVpnEndpointId() *string
	SetClientVpnEndpointId(val *string)
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	SubnetId() *string
	SetSubnetId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::ClientVpnTargetNetworkAssociation`.

Specifies a target network to associate with a Client VPN endpoint. A target network is a subnet in a VPC. You can associate multiple subnets from the same VPC with a Client VPN endpoint. You can associate only one subnet in each Availability Zone. We recommend that you associate at least two subnets to provide Availability Zone redundancy.

TODO: EXAMPLE

func NewCfnClientVpnTargetNetworkAssociation

func NewCfnClientVpnTargetNetworkAssociation(scope constructs.Construct, id *string, props *CfnClientVpnTargetNetworkAssociationProps) CfnClientVpnTargetNetworkAssociation

Create a new `AWS::EC2::ClientVpnTargetNetworkAssociation`.

type CfnClientVpnTargetNetworkAssociationProps

type CfnClientVpnTargetNetworkAssociationProps struct {
	// The ID of the Client VPN endpoint.
	ClientVpnEndpointId *string `json:"clientVpnEndpointId" yaml:"clientVpnEndpointId"`
	// The ID of the subnet to associate with the Client VPN endpoint.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
}

Properties for defining a `CfnClientVpnTargetNetworkAssociation`.

TODO: EXAMPLE

type CfnCustomerGateway

type CfnCustomerGateway interface {
	awscdk.CfnResource
	awscdk.IInspectable
	BgpAsn() *float64
	SetBgpAsn(val *float64)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	IpAddress() *string
	SetIpAddress(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	Type() *string
	SetType(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::CustomerGateway`.

Specifies a customer gateway.

TODO: EXAMPLE

func NewCfnCustomerGateway

func NewCfnCustomerGateway(scope constructs.Construct, id *string, props *CfnCustomerGatewayProps) CfnCustomerGateway

Create a new `AWS::EC2::CustomerGateway`.

type CfnCustomerGatewayProps

type CfnCustomerGatewayProps struct {
	// For devices that support BGP, the customer gateway's BGP ASN.
	//
	// Default: 65000
	BgpAsn *float64 `json:"bgpAsn" yaml:"bgpAsn"`
	// The Internet-routable IP address for the customer gateway's outside interface.
	//
	// The address must be static.
	IpAddress *string `json:"ipAddress" yaml:"ipAddress"`
	// The type of VPN connection that this customer gateway supports ( `ipsec.1` ).
	Type *string `json:"type" yaml:"type"`
	// One or more tags for the customer gateway.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnCustomerGateway`.

TODO: EXAMPLE

type CfnDHCPOptions

type CfnDHCPOptions interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrDhcpOptionsId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DomainName() *string
	SetDomainName(val *string)
	DomainNameServers() *[]*string
	SetDomainNameServers(val *[]*string)
	LogicalId() *string
	NetbiosNameServers() *[]*string
	SetNetbiosNameServers(val *[]*string)
	NetbiosNodeType() *float64
	SetNetbiosNodeType(val *float64)
	Node() constructs.Node
	NtpServers() *[]*string
	SetNtpServers(val *[]*string)
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::DHCPOptions`.

Specifies a set of DHCP options for your VPC.

You must specify at least one of the following properties: `DomainNameServers` , `NetbiosNameServers` , `NtpServers` . If you specify `NetbiosNameServers` , you must specify `NetbiosNodeType` .

TODO: EXAMPLE

func NewCfnDHCPOptions

func NewCfnDHCPOptions(scope constructs.Construct, id *string, props *CfnDHCPOptionsProps) CfnDHCPOptions

Create a new `AWS::EC2::DHCPOptions`.

type CfnDHCPOptionsProps

type CfnDHCPOptionsProps struct {
	// This value is used to complete unqualified DNS hostnames.
	//
	// If you're using AmazonProvidedDNS in `us-east-1` , specify `ec2.internal` . If you're using AmazonProvidedDNS in another Region, specify *region* . `compute.internal` (for example, `ap-northeast-1.compute.internal` ). Otherwise, specify a domain name (for example, *MyCompany.com* ).
	DomainName *string `json:"domainName" yaml:"domainName"`
	// The IPv4 addresses of up to four domain name servers, or `AmazonProvidedDNS` .
	//
	// The default is `AmazonProvidedDNS` . To have your instance receive a custom DNS hostname as specified in `DomainName` , you must set this property to a custom DNS server.
	DomainNameServers *[]*string `json:"domainNameServers" yaml:"domainNameServers"`
	// The IPv4 addresses of up to four NetBIOS name servers.
	NetbiosNameServers *[]*string `json:"netbiosNameServers" yaml:"netbiosNameServers"`
	// The NetBIOS node type (1, 2, 4, or 8).
	//
	// We recommend that you specify 2 (broadcast and multicast are not currently supported).
	NetbiosNodeType *float64 `json:"netbiosNodeType" yaml:"netbiosNodeType"`
	// The IPv4 addresses of up to four Network Time Protocol (NTP) servers.
	NtpServers *[]*string `json:"ntpServers" yaml:"ntpServers"`
	// Any tags assigned to the DHCP options set.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnDHCPOptions`.

TODO: EXAMPLE

type CfnEC2Fleet

type CfnEC2Fleet interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrFleetId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	Context() *string
	SetContext(val *string)
	CreationStack() *[]*string
	ExcessCapacityTerminationPolicy() *string
	SetExcessCapacityTerminationPolicy(val *string)
	LaunchTemplateConfigs() interface{}
	SetLaunchTemplateConfigs(val interface{})
	LogicalId() *string
	Node() constructs.Node
	OnDemandOptions() interface{}
	SetOnDemandOptions(val interface{})
	Ref() *string
	ReplaceUnhealthyInstances() interface{}
	SetReplaceUnhealthyInstances(val interface{})
	SpotOptions() interface{}
	SetSpotOptions(val interface{})
	Stack() awscdk.Stack
	TagSpecifications() interface{}
	SetTagSpecifications(val interface{})
	TargetCapacitySpecification() interface{}
	SetTargetCapacitySpecification(val interface{})
	TerminateInstancesWithExpiration() interface{}
	SetTerminateInstancesWithExpiration(val interface{})
	Type() *string
	SetType(val *string)
	UpdatedProperites() *map[string]interface{}
	ValidFrom() *string
	SetValidFrom(val *string)
	ValidUntil() *string
	SetValidUntil(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::EC2Fleet`.

Specifies the configuration information to launch a fleet--or group--of instances. An EC2 Fleet can launch multiple instance types across multiple Availability Zones, using the On-Demand Instance, Reserved Instance, and Spot Instance purchasing models together. Using EC2 Fleet, you can define separate On-Demand and Spot capacity targets, specify the instance types that work best for your applications, and specify how Amazon EC2 should distribute your fleet capacity within each purchasing model. For more information, see [Launching an EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html) in the *Amazon EC2 User Guide for Linux Instances* .

TODO: EXAMPLE

func NewCfnEC2Fleet

func NewCfnEC2Fleet(scope constructs.Construct, id *string, props *CfnEC2FleetProps) CfnEC2Fleet

Create a new `AWS::EC2::EC2Fleet`.

type CfnEC2FleetProps

type CfnEC2FleetProps struct {
	// The configuration for the EC2 Fleet.
	LaunchTemplateConfigs interface{} `json:"launchTemplateConfigs" yaml:"launchTemplateConfigs"`
	// The number of units to request.
	TargetCapacitySpecification interface{} `json:"targetCapacitySpecification" yaml:"targetCapacitySpecification"`
	// Reserved.
	Context *string `json:"context" yaml:"context"`
	// Indicates whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet.
	ExcessCapacityTerminationPolicy *string `json:"excessCapacityTerminationPolicy" yaml:"excessCapacityTerminationPolicy"`
	// Describes the configuration of On-Demand Instances in an EC2 Fleet.
	OnDemandOptions interface{} `json:"onDemandOptions" yaml:"onDemandOptions"`
	// Indicates whether EC2 Fleet should replace unhealthy Spot Instances.
	//
	// Supported only for fleets of type `maintain` . For more information, see [EC2 Fleet health checks](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#ec2-fleet-health-checks) in the *Amazon EC2 User Guide* .
	ReplaceUnhealthyInstances interface{} `json:"replaceUnhealthyInstances" yaml:"replaceUnhealthyInstances"`
	// Describes the configuration of Spot Instances in an EC2 Fleet.
	SpotOptions interface{} `json:"spotOptions" yaml:"spotOptions"`
	// The key-value pair for tagging the EC2 Fleet request on creation. For more information, see [Tagging your resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources) .
	//
	// If the fleet type is `instant` , specify a resource type of `fleet` to tag the fleet or `instance` to tag the instances at launch.
	//
	// If the fleet type is `maintain` or `request` , specify a resource type of `fleet` to tag the fleet. You cannot specify a resource type of `instance` . To tag instances at launch, specify the tags in a [launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template) .
	TagSpecifications interface{} `json:"tagSpecifications" yaml:"tagSpecifications"`
	// Indicates whether running instances should be terminated when the EC2 Fleet expires.
	TerminateInstancesWithExpiration interface{} `json:"terminateInstancesWithExpiration" yaml:"terminateInstancesWithExpiration"`
	// The fleet type. The default value is `maintain` .
	//
	// - `maintain` - The EC2 Fleet places an asynchronous request for your desired capacity, and continues to maintain your desired Spot capacity by replenishing interrupted Spot Instances.
	// - `request` - The EC2 Fleet places an asynchronous one-time request for your desired capacity, but does submit Spot requests in alternative capacity pools if Spot capacity is unavailable, and does not maintain Spot capacity if Spot Instances are interrupted.
	// - `instant` - The EC2 Fleet places a synchronous one-time request for your desired capacity, and returns errors for any instances that could not be launched.
	//
	// For more information, see [EC2 Fleet request types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-request-type.html) in the *Amazon EC2 User Guide* .
	Type *string `json:"type" yaml:"type"`
	// The start date and time of the request, in UTC format (for example, *YYYY* - *MM* - *DD* T *HH* : *MM* : *SS* Z).
	//
	// The default is to start fulfilling the request immediately.
	ValidFrom *string `json:"validFrom" yaml:"validFrom"`
	// The end date and time of the request, in UTC format (for example, *YYYY* - *MM* - *DD* T *HH* : *MM* : *SS* Z).
	//
	// At this point, no new EC2 Fleet requests are placed or able to fulfill the request. If no value is specified, the request remains until you cancel it.
	ValidUntil *string `json:"validUntil" yaml:"validUntil"`
}

Properties for defining a `CfnEC2Fleet`.

TODO: EXAMPLE

type CfnEC2Fleet_AcceleratorCountRequestProperty

type CfnEC2Fleet_AcceleratorCountRequestProperty struct {
	// The maximum number of accelerators.
	//
	// To specify no maximum limit, omit this parameter. To exclude accelerator-enabled instance types, set `Max` to `0` .
	Max *float64 `json:"max" yaml:"max"`
	// The minimum number of accelerators.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance.

To exclude accelerator-enabled instance types, set `Max` to `0` .

TODO: EXAMPLE

type CfnEC2Fleet_AcceleratorTotalMemoryMiBRequestProperty

type CfnEC2Fleet_AcceleratorTotalMemoryMiBRequestProperty struct {
	// The maximum amount of accelerator memory, in MiB.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum amount of accelerator memory, in MiB.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum amount of total accelerator memory, in MiB.

TODO: EXAMPLE

type CfnEC2Fleet_BaselineEbsBandwidthMbpsRequestProperty

type CfnEC2Fleet_BaselineEbsBandwidthMbpsRequestProperty struct {
	// The maximum baseline bandwidth, in Mbps.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum baseline bandwidth, in Mbps.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps.

For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide* .

TODO: EXAMPLE

type CfnEC2Fleet_CapacityRebalanceProperty

type CfnEC2Fleet_CapacityRebalanceProperty struct {
	// The replacement strategy to use. Only available for fleets of type `maintain` .
	//
	// `launch` - EC2 Fleet launches a replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet. EC2 Fleet does not terminate the instances that receive a rebalance notification. You can terminate the old instances, or you can leave them running. You are charged for all instances while they are running.
	//
	// `launch-before-terminate` - EC2 Fleet launches a replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet, and then, after a delay that you specify (in `TerminationDelay` ), terminates the instances that received a rebalance notification.
	ReplacementStrategy *string `json:"replacementStrategy" yaml:"replacementStrategy"`
	// The amount of time (in seconds) that Amazon EC2 waits before terminating the old Spot Instance after launching a new replacement Spot Instance.
	//
	// Required when `ReplacementStrategy` is set to `launch-before-terminate` .
	//
	// Not valid when `ReplacementStrategy` is set to `launch` .
	//
	// Valid values: Minimum value of `120` seconds. Maximum value of `7200` seconds.
	TerminationDelay *float64 `json:"terminationDelay" yaml:"terminationDelay"`
}

The Spot Instance replacement strategy to use when Amazon EC2 emits a rebalance notification signal that your Spot Instance is at an elevated risk of being interrupted.

For more information, see [Capacity rebalancing](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-capacity-rebalance.html) in the *Amazon EC2 User Guide* .

TODO: EXAMPLE

type CfnEC2Fleet_CapacityReservationOptionsRequestProperty

type CfnEC2Fleet_CapacityReservationOptionsRequestProperty struct {
	// Indicates whether to use unused Capacity Reservations for fulfilling On-Demand capacity.
	//
	// If you specify `use-capacity-reservations-first` , the fleet uses unused Capacity Reservations to fulfill On-Demand capacity up to the target On-Demand capacity. If multiple instance pools have unused Capacity Reservations, the On-Demand allocation strategy ( `lowest-price` or `prioritized` ) is applied. If the number of unused Capacity Reservations is less than the On-Demand target capacity, the remaining On-Demand target capacity is launched according to the On-Demand allocation strategy ( `lowest-price` or `prioritized` ).
	//
	// If you do not specify a value, the fleet fulfils the On-Demand capacity according to the chosen On-Demand allocation strategy.
	UsageStrategy *string `json:"usageStrategy" yaml:"usageStrategy"`
}

Describes the strategy for using unused Capacity Reservations for fulfilling On-Demand capacity.

> This strategy can only be used if the EC2 Fleet is of type `instant` .

For more information about Capacity Reservations, see [On-Demand Capacity Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) in the *Amazon EC2 User Guide* . For examples of using Capacity Reservations in an EC2 Fleet, see [EC2 Fleet example configurations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-examples.html) in the *Amazon EC2 User Guide* .

TODO: EXAMPLE

type CfnEC2Fleet_FleetLaunchTemplateConfigRequestProperty

type CfnEC2Fleet_FleetLaunchTemplateConfigRequestProperty struct {
	// The launch template to use.
	//
	// You must specify either the launch template ID or launch template name in the request.
	LaunchTemplateSpecification interface{} `json:"launchTemplateSpecification" yaml:"launchTemplateSpecification"`
	// Any parameters that you specify override the same parameters in the launch template.
	//
	// For fleets of type `request` and `maintain` , a maximum of 300 items is allowed across all launch templates.
	Overrides interface{} `json:"overrides" yaml:"overrides"`
}

Specifies a launch template and overrides for an EC2 Fleet.

`FleetLaunchTemplateConfigRequest` is a property of the [AWS::EC2::EC2Fleet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html) resource.

TODO: EXAMPLE

type CfnEC2Fleet_FleetLaunchTemplateOverridesRequestProperty

type CfnEC2Fleet_FleetLaunchTemplateOverridesRequestProperty struct {
	// The Availability Zone in which to launch the instances.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The attributes for the instance types.
	//
	// When you specify instance attributes, Amazon EC2 will identify instance types with those attributes.
	//
	// > If you specify `InstanceRequirements` , you can't specify `InstanceTypes` .
	InstanceRequirements interface{} `json:"instanceRequirements" yaml:"instanceRequirements"`
	// The instance type.
	//
	// > If you specify `InstanceTypes` , you can't specify `InstanceRequirements` .
	InstanceType *string `json:"instanceType" yaml:"instanceType"`
	// The maximum price per unit hour that you are willing to pay for a Spot Instance.
	MaxPrice *string `json:"maxPrice" yaml:"maxPrice"`
	// The location where the instance launched, if applicable.
	Placement interface{} `json:"placement" yaml:"placement"`
	// The priority for the launch template override. The highest priority is launched first.
	//
	// If the On-Demand `AllocationStrategy` is set to `prioritized` , EC2 Fleet uses priority to determine which launch template override to use first in fulfilling On-Demand capacity.
	//
	// If the Spot `AllocationStrategy` is set to `capacity-optimized-prioritized` , EC2 Fleet uses priority on a best-effort basis to determine which launch template override to use in fulfilling Spot capacity, but optimizes for capacity first.
	//
	// Valid values are whole numbers starting at `0` . The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority. You can set the same priority for different launch template overrides.
	Priority *float64 `json:"priority" yaml:"priority"`
	// The IDs of the subnets in which to launch the instances.
	//
	// Separate multiple subnet IDs using commas (for example, `subnet-1234abcdeexample1, subnet-0987cdef6example2` ). A request of type `instant` can have only one subnet ID.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
	// The number of units provided by the specified instance type.
	WeightedCapacity *float64 `json:"weightedCapacity" yaml:"weightedCapacity"`
}

Specifies overrides for a launch template for an EC2 Fleet.

`FleetLaunchTemplateOverridesRequest` is a property of the [FleetLaunchTemplateConfigRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateconfigrequest.html) property type.

TODO: EXAMPLE

type CfnEC2Fleet_FleetLaunchTemplateSpecificationRequestProperty

type CfnEC2Fleet_FleetLaunchTemplateSpecificationRequestProperty struct {
	// The ID of the launch template.
	//
	// If you specify the template ID, you can't specify the template name.
	LaunchTemplateId *string `json:"launchTemplateId" yaml:"launchTemplateId"`
	// The name of the launch template.
	//
	// If you specify the template name, you can't specify the template ID.
	LaunchTemplateName *string `json:"launchTemplateName" yaml:"launchTemplateName"`
	// The launch template version number, `$Latest` , or `$Default` . You must specify a value, otherwise the request fails.
	//
	// If the value is `$Latest` , Amazon EC2 uses the latest version of the launch template.
	//
	// If the value is `$Default` , Amazon EC2 uses the default version of the launch template.
	Version *string `json:"version" yaml:"version"`
}

Specifies the launch template to use for an EC2 Fleet.

You must specify either the launch template ID or launch template name in the request.

`FleetLaunchTemplateSpecificationRequest` is a property of the [FleetLaunchTemplateConfigRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateconfigrequest.html) property type.

TODO: EXAMPLE

type CfnEC2Fleet_InstanceRequirementsRequestProperty

type CfnEC2Fleet_InstanceRequirementsRequestProperty struct {
	// The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance.
	//
	// To exclude accelerator-enabled instance types, set `Max` to `0` .
	//
	// Default: No minimum or maximum limits
	AcceleratorCount interface{} `json:"acceleratorCount" yaml:"acceleratorCount"`
	// Indicates whether instance types must have accelerators by specific manufacturers.
	//
	// - For instance types with NVIDIA devices, specify `nvidia` .
	// - For instance types with AMD devices, specify `amd` .
	// - For instance types with AWS devices, specify `amazon-web-services` .
	// - For instance types with Xilinx devices, specify `xilinx` .
	//
	// Default: Any manufacturer
	AcceleratorManufacturers *[]*string `json:"acceleratorManufacturers" yaml:"acceleratorManufacturers"`
	// The accelerators that must be on the instance type.
	//
	// - For instance types with NVIDIA A100 GPUs, specify `a100` .
	// - For instance types with NVIDIA V100 GPUs, specify `v100` .
	// - For instance types with NVIDIA K80 GPUs, specify `k80` .
	// - For instance types with NVIDIA T4 GPUs, specify `t4` .
	// - For instance types with NVIDIA M60 GPUs, specify `m60` .
	// - For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520` .
	// - For instance types with Xilinx VU9P FPGAs, specify `vu9p` .
	//
	// Default: Any accelerator
	AcceleratorNames *[]*string `json:"acceleratorNames" yaml:"acceleratorNames"`
	// The minimum and maximum amount of total accelerator memory, in MiB.
	//
	// Default: No minimum or maximum limits
	AcceleratorTotalMemoryMiB interface{} `json:"acceleratorTotalMemoryMiB" yaml:"acceleratorTotalMemoryMiB"`
	// The accelerator types that must be on the instance type.
	//
	// - To include instance types with GPU hardware, specify `gpu` .
	// - To include instance types with FPGA hardware, specify `fpga` .
	// - To include instance types with inference hardware, specify `inference` .
	//
	// Default: Any accelerator type
	AcceleratorTypes *[]*string `json:"acceleratorTypes" yaml:"acceleratorTypes"`
	// Indicates whether bare metal instance types must be included, excluded, or required.
	//
	// - To include bare metal instance types, specify `included` .
	// - To require only bare metal instance types, specify `required` .
	// - To exclude bare metal instance types, specify `excluded` .
	//
	// Default: `excluded`
	BareMetal *string `json:"bareMetal" yaml:"bareMetal"`
	// The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps.
	//
	// For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide* .
	//
	// Default: No minimum or maximum limits
	BaselineEbsBandwidthMbps interface{} `json:"baselineEbsBandwidthMbps" yaml:"baselineEbsBandwidthMbps"`
	// Indicates whether burstable performance T instance types are included, excluded, or required.
	//
	// For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) .
	//
	// - To include burstable performance instance types, specify `included` .
	// - To require only burstable performance instance types, specify `required` .
	// - To exclude burstable performance instance types, specify `excluded` .
	//
	// Default: `excluded`
	BurstablePerformance *string `json:"burstablePerformance" yaml:"burstablePerformance"`
	// The CPU manufacturers to include.
	//
	// - For instance types with Intel CPUs, specify `intel` .
	// - For instance types with AMD CPUs, specify `amd` .
	// - For instance types with AWS CPUs, specify `amazon-web-services` .
	//
	// > Don't confuse the CPU manufacturer with the CPU architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
	//
	// Default: Any manufacturer
	CpuManufacturers *[]*string `json:"cpuManufacturers" yaml:"cpuManufacturers"`
	// The instance types to exclude.
	//
	// You can use strings with one or more wild cards, represented by an asterisk ( `*` ), to exclude an instance family, type, size, or generation. The following are examples: `m5.8xlarge` , `c5*.*` , `m5a.*` , `r*` , `*3*` .
	//
	// For example, if you specify `c5*` ,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*` , Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types.
	//
	// Default: No excluded instance types
	ExcludedInstanceTypes *[]*string `json:"excludedInstanceTypes" yaml:"excludedInstanceTypes"`
	// Indicates whether current or previous generation instance types are included.
	//
	// The current generation instance types are recommended for use. Current generation instance types are typically the latest two to three generations in each instance family. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide* .
	//
	// For current generation instance types, specify `current` .
	//
	// For previous generation instance types, specify `previous` .
	//
	// Default: Current and previous generation instance types
	InstanceGenerations *[]*string `json:"instanceGenerations" yaml:"instanceGenerations"`
	// Indicates whether instance types with instance store volumes are included, excluded, or required.
	//
	// For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide* .
	//
	// - To include instance types with instance store volumes, specify `included` .
	// - To require only instance types with instance store volumes, specify `required` .
	// - To exclude instance types with instance store volumes, specify `excluded` .
	//
	// Default: `included`
	LocalStorage *string `json:"localStorage" yaml:"localStorage"`
	// The type of local storage that is required.
	//
	// - For instance types with hard disk drive (HDD) storage, specify `hdd` .
	// - For instance types with solid state drive (SDD) storage, specify `sdd` .
	//
	// Default: `hdd` and `sdd`
	LocalStorageTypes *[]*string `json:"localStorageTypes" yaml:"localStorageTypes"`
	// The minimum and maximum amount of memory per vCPU, in GiB.
	//
	// Default: No minimum or maximum limits
	MemoryGiBPerVCpu interface{} `json:"memoryGiBPerVCpu" yaml:"memoryGiBPerVCpu"`
	// The minimum and maximum amount of memory, in MiB.
	MemoryMiB interface{} `json:"memoryMiB" yaml:"memoryMiB"`
	// The minimum and maximum number of network interfaces.
	//
	// Default: No minimum or maximum limits
	NetworkInterfaceCount interface{} `json:"networkInterfaceCount" yaml:"networkInterfaceCount"`
	// The price protection threshold for On-Demand Instances.
	//
	// This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage above the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.
	//
	// The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
	//
	// To turn off price protection, specify a high value, such as `999999` .
	//
	// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html) .
	//
	// > If you set `TargetCapacityUnitType` to `vcpu` or `memory-mib` , the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.
	//
	// Default: `20`
	OnDemandMaxPricePercentageOverLowestPrice *float64 `json:"onDemandMaxPricePercentageOverLowestPrice" yaml:"onDemandMaxPricePercentageOverLowestPrice"`
	// Indicates whether instance types must support hibernation for On-Demand Instances.
	//
	// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) .
	//
	// Default: `false`
	RequireHibernateSupport interface{} `json:"requireHibernateSupport" yaml:"requireHibernateSupport"`
	// The price protection threshold for Spot Instance.
	//
	// This is the maximum you’ll pay for an Spot Instance, expressed as a percentage above the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.
	//
	// The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
	//
	// To turn off price protection, specify a high value, such as `999999` .
	//
	// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html) .
	//
	// > If you set `TargetCapacityUnitType` to `vcpu` or `memory-mib` , the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.
	//
	// Default: `100`
	SpotMaxPricePercentageOverLowestPrice *float64 `json:"spotMaxPricePercentageOverLowestPrice" yaml:"spotMaxPricePercentageOverLowestPrice"`
	// The minimum and maximum amount of total local storage, in GB.
	//
	// Default: No minimum or maximum limits
	TotalLocalStorageGb interface{} `json:"totalLocalStorageGb" yaml:"totalLocalStorageGb"`
	// The minimum and maximum number of vCPUs.
	VCpuCount interface{} `json:"vCpuCount" yaml:"vCpuCount"`
}

The attributes for the instance types.

When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.

When you specify multiple parameters, you get instance types that satisfy all of the specified parameters. If you specify multiple values for a parameter, you get instance types that satisfy any of the specified values.

> You must specify `VCpuCount` and `MemoryMiB` . All other parameters are optional. Any unspecified optional parameter is set to its default.

For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) , [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html) , and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide* .

TODO: EXAMPLE

type CfnEC2Fleet_MaintenanceStrategiesProperty

type CfnEC2Fleet_MaintenanceStrategiesProperty struct {
	// The strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted.
	CapacityRebalance interface{} `json:"capacityRebalance" yaml:"capacityRebalance"`
}

The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.

TODO: EXAMPLE

type CfnEC2Fleet_MemoryGiBPerVCpuRequestProperty

type CfnEC2Fleet_MemoryGiBPerVCpuRequestProperty struct {
	// The maximum amount of memory per vCPU, in GiB.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum amount of memory per vCPU, in GiB.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum amount of memory per vCPU, in GiB.

TODO: EXAMPLE

type CfnEC2Fleet_MemoryMiBRequestProperty

type CfnEC2Fleet_MemoryMiBRequestProperty struct {
	// The maximum amount of memory, in MiB.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum amount of memory, in MiB.
	//
	// To specify no minimum limit, specify `0` .
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum amount of memory, in MiB.

TODO: EXAMPLE

type CfnEC2Fleet_NetworkInterfaceCountRequestProperty

type CfnEC2Fleet_NetworkInterfaceCountRequestProperty struct {
	// The maximum number of network interfaces.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum number of network interfaces.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum number of network interfaces.

TODO: EXAMPLE

type CfnEC2Fleet_OnDemandOptionsRequestProperty

type CfnEC2Fleet_OnDemandOptionsRequestProperty struct {
	// The strategy that determines the order of the launch template overrides to use in fulfilling On-Demand capacity.
	//
	// `lowest-price` - EC2 Fleet uses price to determine the order, launching the lowest price first.
	//
	// `prioritized` - EC2 Fleet uses the priority that you assigned to each launch template override, launching the highest priority first.
	//
	// Default: `lowest-price`
	AllocationStrategy *string `json:"allocationStrategy" yaml:"allocationStrategy"`
	// The strategy for using unused Capacity Reservations for fulfilling On-Demand capacity.
	//
	// Supported only for fleets of type `instant` .
	CapacityReservationOptions interface{} `json:"capacityReservationOptions" yaml:"capacityReservationOptions"`
	// The maximum amount per hour for On-Demand Instances that you're willing to pay.
	MaxTotalPrice *string `json:"maxTotalPrice" yaml:"maxTotalPrice"`
	// The minimum target capacity for On-Demand Instances in the fleet.
	//
	// If the minimum target capacity is not reached, the fleet launches no instances.
	//
	// Supported only for fleets of type `instant` .
	//
	// At least one of the following must be specified: `SingleAvailabilityZone` | `SingleInstanceType`
	MinTargetCapacity *float64 `json:"minTargetCapacity" yaml:"minTargetCapacity"`
	// Indicates that the fleet launches all On-Demand Instances into a single Availability Zone.
	//
	// Supported only for fleets of type `instant` .
	SingleAvailabilityZone interface{} `json:"singleAvailabilityZone" yaml:"singleAvailabilityZone"`
	// Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the fleet.
	//
	// Supported only for fleets of type `instant` .
	SingleInstanceType interface{} `json:"singleInstanceType" yaml:"singleInstanceType"`
}

Specifies the allocation strategy of On-Demand Instances in an EC2 Fleet.

`OnDemandOptionsRequest` is a property of the [AWS::EC2::EC2Fleet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html) resource.

TODO: EXAMPLE

type CfnEC2Fleet_PlacementProperty

type CfnEC2Fleet_PlacementProperty struct {
	// The affinity setting for the instance on the Dedicated Host. This parameter is not supported for the [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html) command.
	//
	// This parameter is not supported by [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) .
	Affinity *string `json:"affinity" yaml:"affinity"`
	// The Availability Zone of the instance.
	//
	// If not specified, an Availability Zone will be automatically chosen for you based on the load balancing criteria for the Region.
	//
	// This parameter is not supported by [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) .
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The name of the placement group the instance is in.
	GroupName *string `json:"groupName" yaml:"groupName"`
	// The ID of the Dedicated Host on which the instance resides.
	//
	// This parameter is not supported for the [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html) command.
	//
	// This parameter is not supported by [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) .
	HostId *string `json:"hostId" yaml:"hostId"`
	// The ARN of the host resource group in which to launch the instances.
	//
	// If you specify a host resource group ARN, omit the *Tenancy* parameter or set it to `host` .
	//
	// This parameter is not supported by [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) .
	HostResourceGroupArn *string `json:"hostResourceGroupArn" yaml:"hostResourceGroupArn"`
	// The number of the partition that the instance is in.
	//
	// Valid only if the placement group strategy is set to `partition` .
	//
	// This parameter is not supported by [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) .
	PartitionNumber *float64 `json:"partitionNumber" yaml:"partitionNumber"`
	// Reserved for future use.
	//
	// This parameter is not supported by [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) .
	SpreadDomain *string `json:"spreadDomain" yaml:"spreadDomain"`
	// The tenancy of the instance (if the instance is running in a VPC).
	//
	// An instance with a tenancy of `dedicated` runs on single-tenant hardware. The `host` tenancy is not supported for the [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html) command.
	//
	// This parameter is not supported by [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) .
	//
	// T3 instances that use the `unlimited` CPU credit option do not support `host` tenancy.
	Tenancy *string `json:"tenancy" yaml:"tenancy"`
}

Describes the placement of an instance.

TODO: EXAMPLE

type CfnEC2Fleet_SpotOptionsRequestProperty

type CfnEC2Fleet_SpotOptionsRequestProperty struct {
	// Indicates how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the EC2 Fleet.
	//
	// If the allocation strategy is `lowestPrice` , EC2 Fleet launches instances from the Spot Instance pools with the lowest price. This is the default allocation strategy.
	//
	// If the allocation strategy is `diversified` , EC2 Fleet launches instances from all the Spot Instance pools that you specify.
	//
	// If the allocation strategy is `capacityOptimized` , EC2 Fleet launches instances from Spot Instance pools that are optimally chosen based on the available Spot Instance capacity.
	//
	// *Allowed Values* : `lowestPrice` | `diversified` | `capacityOptimized` | `capacityOptimizedPrioritized`
	AllocationStrategy *string `json:"allocationStrategy" yaml:"allocationStrategy"`
	// The behavior when a Spot Instance is interrupted.
	//
	// Default: `terminate`
	InstanceInterruptionBehavior *string `json:"instanceInterruptionBehavior" yaml:"instanceInterruptionBehavior"`
	// The number of Spot pools across which to allocate your target Spot capacity.
	//
	// Supported only when Spot `AllocationStrategy` is set to `lowest-price` . EC2 Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify.
	//
	// Note that EC2 Fleet attempts to draw Spot Instances from the number of pools that you specify on a best effort basis. If a pool runs out of Spot capacity before fulfilling your target capacity, EC2 Fleet will continue to fulfill your request by drawing from the next cheapest pool. To ensure that your target capacity is met, you might receive Spot Instances from more than the number of pools that you specified. Similarly, if most of the pools have no Spot capacity, you might receive your full target capacity from fewer than the number of pools that you specified.
	InstancePoolsToUseCount *float64 `json:"instancePoolsToUseCount" yaml:"instancePoolsToUseCount"`
	// The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.
	MaintenanceStrategies interface{} `json:"maintenanceStrategies" yaml:"maintenanceStrategies"`
	// The maximum amount per hour for Spot Instances that you're willing to pay.
	MaxTotalPrice *string `json:"maxTotalPrice" yaml:"maxTotalPrice"`
	// The minimum target capacity for Spot Instances in the fleet.
	//
	// If the minimum target capacity is not reached, the fleet launches no instances.
	//
	// Supported only for fleets of type `instant` .
	//
	// At least one of the following must be specified: `SingleAvailabilityZone` | `SingleInstanceType`
	MinTargetCapacity *float64 `json:"minTargetCapacity" yaml:"minTargetCapacity"`
	// Indicates that the fleet launches all Spot Instances into a single Availability Zone.
	//
	// Supported only for fleets of type `instant` .
	SingleAvailabilityZone interface{} `json:"singleAvailabilityZone" yaml:"singleAvailabilityZone"`
	// Indicates that the fleet uses a single instance type to launch all Spot Instances in the fleet.
	//
	// Supported only for fleets of type `instant` .
	SingleInstanceType interface{} `json:"singleInstanceType" yaml:"singleInstanceType"`
}

Specifies the configuration of Spot Instances for an EC2 Fleet.

`SpotOptionsRequest` is a property of the [AWS::EC2::EC2Fleet](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html) resource.

TODO: EXAMPLE

type CfnEC2Fleet_TagSpecificationProperty

type CfnEC2Fleet_TagSpecificationProperty struct {
	// The type of resource to tag.
	//
	// `ResourceType` must be `fleet` .
	ResourceType *string `json:"resourceType" yaml:"resourceType"`
	// The tags to apply to the resource.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Specifies the tags to apply to a resource when the resource is being created for an EC2 Fleet.

`TagSpecification` is a property of the [AWS::EC2::EC2Fleet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html) resource.

TODO: EXAMPLE

type CfnEC2Fleet_TargetCapacitySpecificationRequestProperty

type CfnEC2Fleet_TargetCapacitySpecificationRequestProperty struct {
	// The number of units to request, filled using `DefaultTargetCapacityType` .
	TotalTargetCapacity *float64 `json:"totalTargetCapacity" yaml:"totalTargetCapacity"`
	// The default `TotalTargetCapacity` , which is either `Spot` or `On-Demand` .
	DefaultTargetCapacityType *string `json:"defaultTargetCapacityType" yaml:"defaultTargetCapacityType"`
	// The number of On-Demand units to request.
	OnDemandTargetCapacity *float64 `json:"onDemandTargetCapacity" yaml:"onDemandTargetCapacity"`
	// The number of Spot units to request.
	SpotTargetCapacity *float64 `json:"spotTargetCapacity" yaml:"spotTargetCapacity"`
	// The unit for the target capacity.
	//
	// Default: `units` (translates to number of instances)
	TargetCapacityUnitType *string `json:"targetCapacityUnitType" yaml:"targetCapacityUnitType"`
}

Specifies the number of units to request for an EC2 Fleet.

You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. If the request type is `maintain` , you can specify a target capacity of `0` and add capacity later.

`TargetCapacitySpecificationRequest` is a property of the [AWS::EC2::EC2Fleet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html) resource.

TODO: EXAMPLE

type CfnEC2Fleet_TotalLocalStorageGBRequestProperty

type CfnEC2Fleet_TotalLocalStorageGBRequestProperty struct {
	// The maximum amount of total local storage, in GB.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum amount of total local storage, in GB.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum amount of total local storage, in GB.

TODO: EXAMPLE

type CfnEC2Fleet_VCpuCountRangeRequestProperty

type CfnEC2Fleet_VCpuCountRangeRequestProperty struct {
	// The maximum number of vCPUs.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum number of vCPUs.
	//
	// To specify no minimum limit, specify `0` .
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum number of vCPUs.

TODO: EXAMPLE

type CfnEIP

type CfnEIP interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrAllocationId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Domain() *string
	SetDomain(val *string)
	InstanceId() *string
	SetInstanceId(val *string)
	LogicalId() *string
	Node() constructs.Node
	PublicIpv4Pool() *string
	SetPublicIpv4Pool(val *string)
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::EIP`.

Specifies an Elastic IP (EIP) address and can, optionally, associate it with an Amazon EC2 instance.

You can allocate an Elastic IP address from an address pool owned by AWS or from an address pool created from a public IPv4 address range that you have brought to AWS for use with your AWS resources using bring your own IP addresses (BYOIP). For more information, see [Bring Your Own IP Addresses (BYOIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html) in the *Amazon EC2 User Guide* .

[EC2-VPC] If you release an Elastic IP address, you might be able to recover it. You cannot recover an Elastic IP address that you released after it is allocated to another AWS account. You cannot recover an Elastic IP address for EC2-Classic. To attempt to recover an Elastic IP address that you released, specify it in this operation.

An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. By default, you can allocate 5 Elastic IP addresses for EC2-Classic per Region and 5 Elastic IP addresses for EC2-VPC per Region.

For more information, see [Elastic IP Addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) in the *Amazon EC2 User Guide* .

TODO: EXAMPLE

func NewCfnEIP

func NewCfnEIP(scope constructs.Construct, id *string, props *CfnEIPProps) CfnEIP

Create a new `AWS::EC2::EIP`.

type CfnEIPAssociation

type CfnEIPAssociation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AllocationId() *string
	SetAllocationId(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Eip() *string
	SetEip(val *string)
	InstanceId() *string
	SetInstanceId(val *string)
	LogicalId() *string
	NetworkInterfaceId() *string
	SetNetworkInterfaceId(val *string)
	Node() constructs.Node
	PrivateIpAddress() *string
	SetPrivateIpAddress(val *string)
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::EIPAssociation`.

Associates an Elastic IP address with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see [Elastic IP Addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) in the *Amazon EC2 User Guide* .

[EC2-Classic, VPC in an EC2-VPC-only account] If the Elastic IP address is already associated with a different instance, it is disassociated from that instance and associated with the specified instance. If you associate an Elastic IP address with an instance that has an existing Elastic IP address, the existing address is disassociated from the instance, but remains allocated to your account.

[VPC in an EC2-Classic account] If you don't specify a private IP address, the Elastic IP address is associated with the primary IP address. If the Elastic IP address is already associated with a different instance or a network interface, you get an error unless you allow reassociation. You cannot associate an Elastic IP address with an instance or network interface that has an existing Elastic IP address.

TODO: EXAMPLE

func NewCfnEIPAssociation

func NewCfnEIPAssociation(scope constructs.Construct, id *string, props *CfnEIPAssociationProps) CfnEIPAssociation

Create a new `AWS::EC2::EIPAssociation`.

type CfnEIPAssociationProps

type CfnEIPAssociationProps struct {
	// [EC2-VPC] The allocation ID.
	//
	// This is required for EC2-VPC.
	AllocationId *string `json:"allocationId" yaml:"allocationId"`
	// [EC2-Classic] The Elastic IP address to associate with the instance.
	//
	// This is required for EC2-Classic.
	Eip *string `json:"eip" yaml:"eip"`
	// The ID of the instance.
	//
	// The instance must have exactly one attached network interface. For EC2-VPC, you can specify either the instance ID or the network interface ID, but not both. For EC2-Classic, you must specify an instance ID and the instance must be in the running state.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
	// [EC2-VPC] The ID of the network interface.
	//
	// If the instance has more than one network interface, you must specify a network interface ID.
	//
	// For EC2-VPC, you can specify either the instance ID or the network interface ID, but not both.
	NetworkInterfaceId *string `json:"networkInterfaceId" yaml:"networkInterfaceId"`
	// [EC2-VPC] The primary or secondary private IP address to associate with the Elastic IP address.
	//
	// If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.
	PrivateIpAddress *string `json:"privateIpAddress" yaml:"privateIpAddress"`
}

Properties for defining a `CfnEIPAssociation`.

TODO: EXAMPLE

type CfnEIPProps

type CfnEIPProps struct {
	// Indicates whether the Elastic IP address is for use with instances in a VPC or instance in EC2-Classic.
	//
	// Default: If the Region supports EC2-Classic, the default is `standard` . Otherwise, the default is `vpc` .
	//
	// Use when allocating an address for use with a VPC if the Region supports EC2-Classic.
	//
	// If you define an Elastic IP address and associate it with a VPC that is defined in the same template, you must declare a dependency on the VPC-gateway attachment by using the [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) on this resource.
	Domain *string `json:"domain" yaml:"domain"`
	// The ID of the instance.
	//
	// > Updates to the `InstanceId` property may require *some interruptions* . Updates on an EIP reassociates the address on its associated resource.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
	// The ID of an address pool that you own.
	//
	// Use this parameter to let Amazon EC2 select an address from the address pool.
	//
	// > Updates to the `PublicIpv4Pool` property may require *some interruptions* . Updates on an EIP reassociates the address on its associated resource.
	PublicIpv4Pool *string `json:"publicIpv4Pool" yaml:"publicIpv4Pool"`
	// Any tags assigned to the Elastic IP address.
	//
	// > Updates to the `Tags` property may require *some interruptions* . Updates on an EIP reassociates the address on its associated resource.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnEIP`.

TODO: EXAMPLE

type CfnEgressOnlyInternetGateway

type CfnEgressOnlyInternetGateway interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	VpcId() *string
	SetVpcId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::EgressOnlyInternetGateway`.

[IPv6 only] Specifies an egress-only internet gateway for your VPC. An egress-only internet gateway is used to enable outbound communication over IPv6 from instances in your VPC to the internet, and prevents hosts outside of your VPC from initiating an IPv6 connection with your instance.

TODO: EXAMPLE

func NewCfnEgressOnlyInternetGateway

func NewCfnEgressOnlyInternetGateway(scope constructs.Construct, id *string, props *CfnEgressOnlyInternetGatewayProps) CfnEgressOnlyInternetGateway

Create a new `AWS::EC2::EgressOnlyInternetGateway`.

type CfnEgressOnlyInternetGatewayProps

type CfnEgressOnlyInternetGatewayProps struct {
	// The ID of the VPC for which to create the egress-only internet gateway.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
}

Properties for defining a `CfnEgressOnlyInternetGateway`.

TODO: EXAMPLE

type CfnEnclaveCertificateIamRoleAssociation

type CfnEnclaveCertificateIamRoleAssociation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrCertificateS3BucketName() *string
	AttrCertificateS3ObjectKey() *string
	AttrEncryptionKmsKeyId() *string
	CertificateArn() *string
	SetCertificateArn(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	RoleArn() *string
	SetRoleArn(val *string)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::EnclaveCertificateIamRoleAssociation`.

Associates an AWS Identity and Access Management (IAM) role with an AWS Certificate Manager (ACM) certificate. This enables the certificate to be used by the ACM for Nitro Enclaves application inside an enclave. For more information, see [AWS Certificate Manager for Nitro Enclaves](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html) in the *AWS Nitro Enclaves User Guide* .

When the IAM role is associated with the ACM certificate, the certificate, certificate chain, and encrypted private key are placed in an Amazon S3 bucket that only the associated IAM role can access. The private key of the certificate is encrypted with an AWS managed key that has an attached attestation-based key policy.

To enable the IAM role to access the Amazon S3 object, you must grant it permission to call `s3:GetObject` on the Amazon S3 bucket returned by the command. To enable the IAM role to access the KMS key, you must grant it permission to call `kms:Decrypt` on the KMS key returned by the command. For more information, see [Grant the role permission to access the certificate and encryption key](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html#add-policy) in the *AWS Nitro Enclaves User Guide* .

TODO: EXAMPLE

func NewCfnEnclaveCertificateIamRoleAssociation

func NewCfnEnclaveCertificateIamRoleAssociation(scope constructs.Construct, id *string, props *CfnEnclaveCertificateIamRoleAssociationProps) CfnEnclaveCertificateIamRoleAssociation

Create a new `AWS::EC2::EnclaveCertificateIamRoleAssociation`.

type CfnEnclaveCertificateIamRoleAssociationProps

type CfnEnclaveCertificateIamRoleAssociationProps struct {
	// The ARN of the ACM certificate with which to associate the IAM role.
	CertificateArn *string `json:"certificateArn" yaml:"certificateArn"`
	// The ARN of the IAM role to associate with the ACM certificate.
	//
	// You can associate up to 16 IAM roles with an ACM certificate.
	RoleArn *string `json:"roleArn" yaml:"roleArn"`
}

Properties for defining a `CfnEnclaveCertificateIamRoleAssociation`.

TODO: EXAMPLE

type CfnFlowLog

type CfnFlowLog interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DeliverLogsPermissionArn() *string
	SetDeliverLogsPermissionArn(val *string)
	DestinationOptions() interface{}
	SetDestinationOptions(val interface{})
	LogDestination() *string
	SetLogDestination(val *string)
	LogDestinationType() *string
	SetLogDestinationType(val *string)
	LogFormat() *string
	SetLogFormat(val *string)
	LogGroupName() *string
	SetLogGroupName(val *string)
	LogicalId() *string
	MaxAggregationInterval() *float64
	SetMaxAggregationInterval(val *float64)
	Node() constructs.Node
	Ref() *string
	ResourceId() *string
	SetResourceId(val *string)
	ResourceType() *string
	SetResourceType(val *string)
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	TrafficType() *string
	SetTrafficType(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::FlowLog`.

Specifies a VPC flow log that captures IP traffic for a specified network interface, subnet, or VPC. To view the log data, use Amazon CloudWatch Logs (CloudWatch Logs) to help troubleshoot connection issues. For example, you can use a flow log to investigate why certain traffic isn't reaching an instance, which can help you diagnose overly restrictive security group rules. For more information, see [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) in the *Amazon VPC User Guide* .

TODO: EXAMPLE

func NewCfnFlowLog

func NewCfnFlowLog(scope constructs.Construct, id *string, props *CfnFlowLogProps) CfnFlowLog

Create a new `AWS::EC2::FlowLog`.

type CfnFlowLogProps

type CfnFlowLogProps struct {
	// The ID of the subnet, network interface, or VPC for which you want to create a flow log.
	ResourceId *string `json:"resourceId" yaml:"resourceId"`
	// The type of resource for which to create the flow log.
	//
	// For example, if you specified a VPC ID for the `ResourceId` property, specify `VPC` for this property.
	ResourceType *string `json:"resourceType" yaml:"resourceType"`
	// The type of traffic to log.
	//
	// You can log traffic that the resource accepts or rejects, or all traffic.
	TrafficType *string `json:"trafficType" yaml:"trafficType"`
	// The ARN for the IAM role that permits Amazon EC2 to publish flow logs to a CloudWatch Logs log group in your account.
	//
	// If you specify `LogDestinationType` as `s3` , do not specify `DeliverLogsPermissionArn` or `LogGroupName` .
	DeliverLogsPermissionArn *string `json:"deliverLogsPermissionArn" yaml:"deliverLogsPermissionArn"`
	// The destination options. The following options are supported:.
	//
	// - `FileFormat` - The format for the flow log ( `plain-text` | `parquet` ). The default is `plain-text` .
	// - `HiveCompatiblePartitions` - Indicates whether to use Hive-compatible prefixes for flow logs stored in Amazon S3 ( `true` | `false` ). The default is `false` .
	// - `PerHourPartition` - Indicates whether to partition the flow log per hour ( `true` | `false` ). The default is `false` .
	DestinationOptions interface{} `json:"destinationOptions" yaml:"destinationOptions"`
	// The destination to which the flow log data is to be published.
	//
	// Flow log data can be published to a CloudWatch Logs log group or an Amazon S3 bucket. The value specified for this parameter depends on the value specified for `LogDestinationType` .
	//
	// If `LogDestinationType` is not specified or `cloud-watch-logs` , specify the Amazon Resource Name (ARN) of the CloudWatch Logs log group. For example, to publish to a log group called `my-logs` , specify `arn:aws:logs:us-east-1:123456789012:log-group:my-logs` . Alternatively, use `LogGroupName` instead.
	//
	// If LogDestinationType is `s3` , specify the ARN of the Amazon S3 bucket. You can also specify a subfolder in the bucket. To specify a subfolder in the bucket, use the following ARN format: `bucket_ARN/subfolder_name/` . For example, to specify a subfolder named `my-logs` in a bucket named `my-bucket` , use the following ARN: `arn:aws:s3:::my-bucket/my-logs/` . You cannot use `AWSLogs` as a subfolder name. This is a reserved term.
	LogDestination *string `json:"logDestination" yaml:"logDestination"`
	// 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. To publish flow log data to CloudWatch Logs, specify `cloud-watch-logs` . To publish flow log data to Amazon S3, specify `s3` .
	//
	// If you specify `LogDestinationType` as `s3` , do not specify `DeliverLogsPermissionArn` or `LogGroupName` .
	//
	// Default: `cloud-watch-logs`
	LogDestinationType *string `json:"logDestinationType" yaml:"logDestinationType"`
	// The fields to include in the flow log record, in the order in which they should appear.
	//
	// For a list of available fields, see [Flow Log Records](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records) . If you omit this parameter, the flow log is created using the default format. If you specify this parameter, you must specify at least one field.
	//
	// Specify the fields using the `${field-id}` format, separated by spaces.
	LogFormat *string `json:"logFormat" yaml:"logFormat"`
	// The name of a new or existing CloudWatch Logs log group where Amazon EC2 publishes your flow logs.
	//
	// If you specify `LogDestinationType` as `s3` , do not specify `DeliverLogsPermissionArn` or `LogGroupName` .
	LogGroupName *string `json:"logGroupName" yaml:"logGroupName"`
	// The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record.
	//
	// You can specify 60 seconds (1 minute) or 600 seconds (10 minutes).
	//
	// When a network interface is attached to a [Nitro-based instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances) , the aggregation interval is always 60 seconds or less, regardless of the value that you specify.
	//
	// Default: 600
	MaxAggregationInterval *float64 `json:"maxAggregationInterval" yaml:"maxAggregationInterval"`
	// The tags to apply to the flow logs.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnFlowLog`.

TODO: EXAMPLE

type CfnGatewayRouteTableAssociation

type CfnGatewayRouteTableAssociation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrAssociationId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	GatewayId() *string
	SetGatewayId(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	RouteTableId() *string
	SetRouteTableId(val *string)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::GatewayRouteTableAssociation`.

Associates a virtual private gateway or internet gateway with a route table. The gateway and route table must be in the same VPC. This association causes the incoming traffic to the gateway to be routed according to the routes in the route table.

TODO: EXAMPLE

func NewCfnGatewayRouteTableAssociation

func NewCfnGatewayRouteTableAssociation(scope constructs.Construct, id *string, props *CfnGatewayRouteTableAssociationProps) CfnGatewayRouteTableAssociation

Create a new `AWS::EC2::GatewayRouteTableAssociation`.

type CfnGatewayRouteTableAssociationProps

type CfnGatewayRouteTableAssociationProps struct {
	// The ID of the gateway.
	GatewayId *string `json:"gatewayId" yaml:"gatewayId"`
	// The ID of the route table.
	RouteTableId *string `json:"routeTableId" yaml:"routeTableId"`
}

Properties for defining a `CfnGatewayRouteTableAssociation`.

TODO: EXAMPLE

type CfnHost

type CfnHost interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrHostId() *string
	AutoPlacement() *string
	SetAutoPlacement(val *string)
	AvailabilityZone() *string
	SetAvailabilityZone(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	HostRecovery() *string
	SetHostRecovery(val *string)
	InstanceType() *string
	SetInstanceType(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::Host`.

Allocates a fully dedicated physical server for launching EC2 instances. Because the host is fully dedicated for your use, it can help you address compliance requirements and reduce costs by allowing you to use your existing server-bound software licenses. For more information, see [Dedicated Hosts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html) in the *Amazon EC2 User Guide for Linux Instances* .

TODO: EXAMPLE

func NewCfnHost

func NewCfnHost(scope constructs.Construct, id *string, props *CfnHostProps) CfnHost

Create a new `AWS::EC2::Host`.

type CfnHostProps

type CfnHostProps struct {
	// The Availability Zone in which to allocate the Dedicated Host.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// Specifies the instance type to be supported by the Dedicated Hosts.
	//
	// If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.
	InstanceType *string `json:"instanceType" yaml:"instanceType"`
	// Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID.
	//
	// For more information, see [Understanding auto-placement and affinity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-understanding) in the *Amazon EC2 User Guide* .
	//
	// Default: `on`
	AutoPlacement *string `json:"autoPlacement" yaml:"autoPlacement"`
	// Indicates whether to enable or disable host recovery for the Dedicated Host.
	//
	// Host recovery is disabled by default. For more information, see [Host recovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html) in the *Amazon EC2 User Guide* .
	//
	// Default: `off`
	HostRecovery *string `json:"hostRecovery" yaml:"hostRecovery"`
}

Properties for defining a `CfnHost`.

TODO: EXAMPLE

type CfnIPAM added in v2.2.0

type CfnIPAM interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrArn() *string
	AttrIpamId() *string
	AttrPrivateDefaultScopeId() *string
	AttrPublicDefaultScopeId() *string
	AttrScopeCount() *float64
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	LogicalId() *string
	Node() constructs.Node
	OperatingRegions() interface{}
	SetOperatingRegions(val interface{})
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::IPAM`.

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 throughout your AWS Organization. For more information, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide* .

TODO: EXAMPLE

func NewCfnIPAM added in v2.2.0

func NewCfnIPAM(scope constructs.Construct, id *string, props *CfnIPAMProps) CfnIPAM

Create a new `AWS::EC2::IPAM`.

type CfnIPAMAllocation added in v2.2.0

type CfnIPAMAllocation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrIpamPoolAllocationId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	Cidr() *string
	SetCidr(val *string)
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	IpamPoolId() *string
	SetIpamPoolId(val *string)
	LogicalId() *string
	NetmaskLength() *float64
	SetNetmaskLength(val *float64)
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::IPAMAllocation`.

In IPAM, an allocation is a CIDR assignment from an IPAM pool to another resource or IPAM pool.

TODO: EXAMPLE

func NewCfnIPAMAllocation added in v2.2.0

func NewCfnIPAMAllocation(scope constructs.Construct, id *string, props *CfnIPAMAllocationProps) CfnIPAMAllocation

Create a new `AWS::EC2::IPAMAllocation`.

type CfnIPAMAllocationProps added in v2.2.0

type CfnIPAMAllocationProps struct {
	// The ID of the IPAM pool from which you would like to allocate a CIDR.
	IpamPoolId *string `json:"ipamPoolId" yaml:"ipamPoolId"`
	// The CIDR you would like to allocate from the IPAM pool. Note the following:.
	//
	// - If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify either the NetmaskLength or the CIDR.
	// - If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be ignored.
	//
	// Possible values: Any available IPv4 or IPv6 CIDR.
	Cidr *string `json:"cidr" yaml:"cidr"`
	// A description for the allocation.
	Description *string `json:"description" yaml:"description"`
	// The netmask length of the CIDR you would like to allocate from the IPAM pool. Note the following:.
	//
	// - If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify either the NetmaskLength or the CIDR.
	// - If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be ignored.
	//
	// Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.
	NetmaskLength *float64 `json:"netmaskLength" yaml:"netmaskLength"`
}

Properties for defining a `CfnIPAMAllocation`.

TODO: EXAMPLE

type CfnIPAMPool added in v2.2.0

type CfnIPAMPool interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AddressFamily() *string
	SetAddressFamily(val *string)
	AllocationDefaultNetmaskLength() *float64
	SetAllocationDefaultNetmaskLength(val *float64)
	AllocationMaxNetmaskLength() *float64
	SetAllocationMaxNetmaskLength(val *float64)
	AllocationMinNetmaskLength() *float64
	SetAllocationMinNetmaskLength(val *float64)
	AllocationResourceTags() interface{}
	SetAllocationResourceTags(val interface{})
	AttrArn() *string
	AttrIpamArn() *string
	AttrIpamPoolId() *string
	AttrIpamScopeArn() *string
	AttrIpamScopeType() *string
	AttrPoolDepth() *float64
	AttrState() *string
	AttrStateMessage() *string
	AutoImport() interface{}
	SetAutoImport(val interface{})
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	IpamScopeId() *string
	SetIpamScopeId(val *string)
	Locale() *string
	SetLocale(val *string)
	LogicalId() *string
	Node() constructs.Node
	ProvisionedCidrs() interface{}
	SetProvisionedCidrs(val interface{})
	PubliclyAdvertisable() interface{}
	SetPubliclyAdvertisable(val interface{})
	Ref() *string
	SourceIpamPoolId() *string
	SetSourceIpamPoolId(val *string)
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::IPAMPool`.

In IPAM, a pool is a collection of contiguous IP addresses CIDRs. Pools enable you to organize your IP addresses according to your routing and security needs. For example, if you have separate routing and security needs for development and production applications, you can create a pool for each.

TODO: EXAMPLE

func NewCfnIPAMPool added in v2.2.0

func NewCfnIPAMPool(scope constructs.Construct, id *string, props *CfnIPAMPoolProps) CfnIPAMPool

Create a new `AWS::EC2::IPAMPool`.

type CfnIPAMPoolProps added in v2.2.0

type CfnIPAMPoolProps struct {
	// The address family of the pool.
	AddressFamily *string `json:"addressFamily" yaml:"addressFamily"`
	// The ID of the scope in which you would like to create the IPAM pool.
	IpamScopeId *string `json:"ipamScopeId" yaml:"ipamScopeId"`
	// The default netmask length for allocations added to this pool.
	//
	// If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16.
	AllocationDefaultNetmaskLength *float64 `json:"allocationDefaultNetmaskLength" yaml:"allocationDefaultNetmaskLength"`
	// The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant.
	//
	// The maximum netmask length must be greater than the minimum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.
	AllocationMaxNetmaskLength *float64 `json:"allocationMaxNetmaskLength" yaml:"allocationMaxNetmaskLength"`
	// The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant.
	//
	// The minimum netmask length must be less than the maximum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.
	AllocationMinNetmaskLength *float64 `json:"allocationMinNetmaskLength" yaml:"allocationMinNetmaskLength"`
	// Tags that are required for resources that use CIDRs from this IPAM pool.
	//
	// Resources that do not have these tags will not be allowed to allocate space from the pool. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant.
	AllocationResourceTags interface{} `json:"allocationResourceTags" yaml:"allocationResourceTags"`
	// If selected, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM.
	//
	// The CIDRs that will be allocated for these resources must not already be allocated to other resources in order for the import to succeed. IPAM will import a CIDR regardless of its compliance with the pool's allocation rules, so a resource might be imported and subsequently marked as noncompliant. If IPAM discovers multiple CIDRs that overlap, IPAM will import the largest CIDR only. If IPAM discovers multiple CIDRs with matching CIDRs, IPAM will randomly import one of them only.
	//
	// A locale must be set on the pool for this feature to work.
	AutoImport interface{} `json:"autoImport" yaml:"autoImport"`
	// The description of the IPAM pool.
	Description *string `json:"description" yaml:"description"`
	// The locale of the IPAM pool.
	//
	// In IPAM, the locale is the AWS Region where you want to make an IPAM pool available for allocations. Only resources in the same Region as the locale of the pool can get IP address allocations from the pool. You can only allocate a CIDR for a VPC, for example, from an IPAM pool that shares a locale with the VPC’s Region. Note that once you choose a Locale for a pool, you cannot modify it. If you choose an AWS Region for locale that has not been configured as an operating Region for the IPAM, you'll get an error.
	Locale *string `json:"locale" yaml:"locale"`
	// Information about the CIDRs provisioned to an IPAM pool.
	ProvisionedCidrs interface{} `json:"provisionedCidrs" yaml:"provisionedCidrs"`
	// Determines if a pool is publicly advertisable.
	//
	// This option is not available for pools with AddressFamily set to `ipv4` .
	PubliclyAdvertisable interface{} `json:"publiclyAdvertisable" yaml:"publiclyAdvertisable"`
	// The ID of the source IPAM pool.
	//
	// You can use this option to create an IPAM pool within an existing source pool.
	SourceIpamPoolId *string `json:"sourceIpamPoolId" yaml:"sourceIpamPoolId"`
	// The key/value combination of a tag assigned to the resource.
	//
	// Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key `Owner` and the value `TeamA` , specify `tag:Owner` for the filter name and `TeamA` for the filter value.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnIPAMPool`.

TODO: EXAMPLE

type CfnIPAMPool_ProvisionedCidrProperty added in v2.2.0

type CfnIPAMPool_ProvisionedCidrProperty struct {
	// The CIDR provisioned to the IPAM pool.
	//
	// A CIDR is a representation of an IP address and its associated network mask (or netmask) and refers to a range of IP addresses. An IPv4 CIDR example is `10.24.34.0/23` . An IPv6 CIDR example is `2001:DB8::/32` .
	Cidr *string `json:"cidr" yaml:"cidr"`
}

The CIDR provisioned to the IPAM pool.

A CIDR is a representation of an IP address and its associated network mask (or netmask) and refers to a range of IP addresses. An IPv4 CIDR example is `10.24.34.0/23` . An IPv6 CIDR example is `2001:DB8::/32` .

TODO: EXAMPLE

type CfnIPAMProps added in v2.2.0

type CfnIPAMProps struct {
	// The description for the IPAM.
	Description *string `json:"description" yaml:"description"`
	// The operating Regions for an IPAM.
	//
	// Operating Regions are AWS Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the AWS Regions you select as operating Regions.
	//
	// For more information about operating Regions, see [Create an IPAM](https://docs.aws.amazon.com//vpc/latest/ipam/create-ipam.html) in the *Amazon VPC IPAM User Guide* .
	OperatingRegions interface{} `json:"operatingRegions" yaml:"operatingRegions"`
	// The key/value combination of a tag assigned to the resource.
	//
	// Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key `Owner` and the value `TeamA` , specify `tag:Owner` for the filter name and `TeamA` for the filter value.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnIPAM`.

TODO: EXAMPLE

type CfnIPAMScope added in v2.2.0

type CfnIPAMScope interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrArn() *string
	AttrIpamArn() *string
	AttrIpamScopeId() *string
	AttrIpamScopeType() *string
	AttrIsDefault() awscdk.IResolvable
	AttrPoolCount() *float64
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	IpamId() *string
	SetIpamId(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::IPAMScope`.

In IPAM, a scope is the highest-level container within IPAM. An IPAM contains two default scopes. Each scope represents the IP space for a single network. The private scope is intended for all private IP address space. The public scope is intended for all public IP address space. Scopes enable you to reuse IP addresses across multiple unconnected networks without causing IP address overlap or conflict.

For more information, see [How IPAM works](https://docs.aws.amazon.com//vpc/latest/ipam/how-it-works-ipam.html) in the *Amazon VPC IPAM User Guide* .

TODO: EXAMPLE

func NewCfnIPAMScope added in v2.2.0

func NewCfnIPAMScope(scope constructs.Construct, id *string, props *CfnIPAMScopeProps) CfnIPAMScope

Create a new `AWS::EC2::IPAMScope`.

type CfnIPAMScopeProps added in v2.2.0

type CfnIPAMScopeProps struct {
	// The ID of the IPAM for which you're creating this scope.
	IpamId *string `json:"ipamId" yaml:"ipamId"`
	// The description of the scope.
	Description *string `json:"description" yaml:"description"`
	// The key/value combination of a tag assigned to the resource.
	//
	// Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key `Owner` and the value `TeamA` , specify `tag:Owner` for the filter name and `TeamA` for the filter value.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnIPAMScope`.

TODO: EXAMPLE

type CfnIPAM_IpamOperatingRegionProperty added in v2.2.0

type CfnIPAM_IpamOperatingRegionProperty struct {
	// The name of the operating Region.
	RegionName *string `json:"regionName" yaml:"regionName"`
}

The operating Regions for an IPAM.

Operating Regions are AWS Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the AWS Regions you select as operating Regions.

For more information about operating Regions, see [Create an IPAM](https://docs.aws.amazon.com//vpc/latest/ipam/create-ipam.html) in the *Amazon VPC IPAM User Guide* .

TODO: EXAMPLE

type CfnInstance

type CfnInstance interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AdditionalInfo() *string
	SetAdditionalInfo(val *string)
	Affinity() *string
	SetAffinity(val *string)
	AttrAvailabilityZone() *string
	AttrPrivateDnsName() *string
	AttrPrivateIp() *string
	AttrPublicDnsName() *string
	AttrPublicIp() *string
	AvailabilityZone() *string
	SetAvailabilityZone(val *string)
	BlockDeviceMappings() interface{}
	SetBlockDeviceMappings(val interface{})
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CpuOptions() interface{}
	SetCpuOptions(val interface{})
	CreationStack() *[]*string
	CreditSpecification() interface{}
	SetCreditSpecification(val interface{})
	DisableApiTermination() interface{}
	SetDisableApiTermination(val interface{})
	EbsOptimized() interface{}
	SetEbsOptimized(val interface{})
	ElasticGpuSpecifications() interface{}
	SetElasticGpuSpecifications(val interface{})
	ElasticInferenceAccelerators() interface{}
	SetElasticInferenceAccelerators(val interface{})
	EnclaveOptions() interface{}
	SetEnclaveOptions(val interface{})
	HibernationOptions() interface{}
	SetHibernationOptions(val interface{})
	HostId() *string
	SetHostId(val *string)
	HostResourceGroupArn() *string
	SetHostResourceGroupArn(val *string)
	IamInstanceProfile() *string
	SetIamInstanceProfile(val *string)
	ImageId() *string
	SetImageId(val *string)
	InstanceInitiatedShutdownBehavior() *string
	SetInstanceInitiatedShutdownBehavior(val *string)
	InstanceType() *string
	SetInstanceType(val *string)
	Ipv6AddressCount() *float64
	SetIpv6AddressCount(val *float64)
	Ipv6Addresses() interface{}
	SetIpv6Addresses(val interface{})
	KernelId() *string
	SetKernelId(val *string)
	KeyName() *string
	SetKeyName(val *string)
	LaunchTemplate() interface{}
	SetLaunchTemplate(val interface{})
	LicenseSpecifications() interface{}
	SetLicenseSpecifications(val interface{})
	LogicalId() *string
	Monitoring() interface{}
	SetMonitoring(val interface{})
	NetworkInterfaces() interface{}
	SetNetworkInterfaces(val interface{})
	Node() constructs.Node
	PlacementGroupName() *string
	SetPlacementGroupName(val *string)
	PrivateDnsNameOptions() interface{}
	SetPrivateDnsNameOptions(val interface{})
	PrivateIpAddress() *string
	SetPrivateIpAddress(val *string)
	PropagateTagsToVolumeOnCreation() interface{}
	SetPropagateTagsToVolumeOnCreation(val interface{})
	RamdiskId() *string
	SetRamdiskId(val *string)
	Ref() *string
	SecurityGroupIds() *[]*string
	SetSecurityGroupIds(val *[]*string)
	SecurityGroups() *[]*string
	SetSecurityGroups(val *[]*string)
	SourceDestCheck() interface{}
	SetSourceDestCheck(val interface{})
	SsmAssociations() interface{}
	SetSsmAssociations(val interface{})
	Stack() awscdk.Stack
	SubnetId() *string
	SetSubnetId(val *string)
	Tags() awscdk.TagManager
	Tenancy() *string
	SetTenancy(val *string)
	UpdatedProperites() *map[string]interface{}
	UserData() *string
	SetUserData(val *string)
	Volumes() interface{}
	SetVolumes(val interface{})
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::Instance`.

Specifies an EC2 instance.

If an Elastic IP address is attached to your instance, AWS CloudFormation reattaches the Elastic IP address after it updates the instance. For more information about updating stacks, see [AWS CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html) .

TODO: EXAMPLE

func NewCfnInstance

func NewCfnInstance(scope constructs.Construct, id *string, props *CfnInstanceProps) CfnInstance

Create a new `AWS::EC2::Instance`.

type CfnInstanceProps

type CfnInstanceProps struct {
	// This property is reserved for internal use.
	//
	// If you use it, the stack fails with this error: `Bad property set: [Testing this property] (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: 0XXXXXX-49c7-4b40-8bcc-76885dcXXXXX)` .
	AdditionalInfo *string `json:"additionalInfo" yaml:"additionalInfo"`
	// Indicates whether the instance is associated with a dedicated host.
	//
	// If you want the instance to always restart on the same host on which it was launched, specify `host` . If you want the instance to restart on any available host, but try to launch onto the last host it ran on (on a best-effort basis), specify `default` .
	Affinity *string `json:"affinity" yaml:"affinity"`
	// The Availability Zone of the instance.
	//
	// If not specified, an Availability Zone will be automatically chosen for you based on the load balancing criteria for the Region.
	//
	// This parameter is not supported by [DescribeImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImageAttribute.html) .
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The block device mapping entries that defines the block devices to attach to the instance at launch.
	//
	// By default, the block devices specified in the block device mapping for the AMI are used. You can override the AMI block device mapping using the instance block device mapping. For the root volume, you can override only the volume size, volume type, volume encryption settings, and the `DeleteOnTermination` setting.
	//
	// > After the instance is running, you can modify only the `DeleteOnTermination` parameter for the attached volumes without interrupting the instance. Modifying any other parameter results in instance [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) .
	BlockDeviceMappings interface{} `json:"blockDeviceMappings" yaml:"blockDeviceMappings"`
	// The CPU options for the instance.
	//
	// For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide* .
	CpuOptions interface{} `json:"cpuOptions" yaml:"cpuOptions"`
	// The credit option for CPU usage of the burstable performance instance.
	//
	// Valid values are `standard` and `unlimited` . To change this attribute after launch, use [ModifyInstanceCreditSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceCreditSpecification.html) . For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide* .
	//
	// Default: `standard` (T2 instances) or `unlimited` (T3/T3a instances)
	//
	// For T3 instances with `host` tenancy, only `standard` is supported.
	CreditSpecification interface{} `json:"creditSpecification" yaml:"creditSpecification"`
	// If you set this parameter to `true` , you can't terminate the instance using the Amazon EC2 console, CLI, or API;
	//
	// otherwise, you can. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html) . Alternatively, if you set `InstanceInitiatedShutdownBehavior` to `terminate` , you can terminate the instance by running the shutdown command from the instance.
	//
	// Default: `false`
	DisableApiTermination interface{} `json:"disableApiTermination" yaml:"disableApiTermination"`
	// Indicates whether the instance is optimized for Amazon EBS I/O.
	//
	// This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.
	//
	// Default: `false`
	EbsOptimized interface{} `json:"ebsOptimized" yaml:"ebsOptimized"`
	// An elastic GPU to associate with the instance.
	//
	// An Elastic GPU is a GPU resource that you can attach to your Windows instance to accelerate the graphics performance of your applications. For more information, see [Amazon EC2 Elastic GPUs](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html) in the *Amazon EC2 User Guide* .
	ElasticGpuSpecifications interface{} `json:"elasticGpuSpecifications" yaml:"elasticGpuSpecifications"`
	// An elastic inference accelerator to associate with the instance.
	//
	// Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads.
	//
	// You cannot specify accelerators from different generations in the same request.
	ElasticInferenceAccelerators interface{} `json:"elasticInferenceAccelerators" yaml:"elasticInferenceAccelerators"`
	// Indicates whether the instance is enabled for AWS Nitro Enclaves.
	EnclaveOptions interface{} `json:"enclaveOptions" yaml:"enclaveOptions"`
	// Indicates whether an instance is enabled for hibernation.
	//
	// For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide* .
	//
	// You can't enable hibernation and AWS Nitro Enclaves on the same instance.
	HibernationOptions interface{} `json:"hibernationOptions" yaml:"hibernationOptions"`
	// If you specify host for the `Affinity` property, the ID of a dedicated host that the instance is associated with.
	//
	// If you don't specify an ID, Amazon EC2 launches the instance onto any available, compatible dedicated host in your account. This type of launch is called an untargeted launch. Note that for untargeted launches, you must have a compatible, dedicated host available to successfully launch instances.
	HostId *string `json:"hostId" yaml:"hostId"`
	// The ARN of the host resource group in which to launch the instances.
	//
	// If you specify a host resource group ARN, omit the *Tenancy* parameter or set it to `host` .
	HostResourceGroupArn *string `json:"hostResourceGroupArn" yaml:"hostResourceGroupArn"`
	// The name of an IAM instance profile.
	//
	// To create a new IAM instance profile, use the [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html) resource.
	IamInstanceProfile *string `json:"iamInstanceProfile" yaml:"iamInstanceProfile"`
	// The ID of the AMI.
	//
	// An AMI ID is required to launch an instance and must be specified here or in a launch template.
	ImageId *string `json:"imageId" yaml:"imageId"`
	// Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).
	//
	// Default: `stop`
	InstanceInitiatedShutdownBehavior *string `json:"instanceInitiatedShutdownBehavior" yaml:"instanceInitiatedShutdownBehavior"`
	// The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide* .
	//
	// Default: `m1.small`
	InstanceType *string `json:"instanceType" yaml:"instanceType"`
	// [EC2-VPC] The number of IPv6 addresses to associate with the primary network interface.
	//
	// Amazon EC2 chooses the IPv6 addresses from the range of your subnet. You cannot specify this option and the option to assign specific IPv6 addresses in the same request. You can specify this option if you've specified a minimum number of instances to launch.
	//
	// You cannot specify this option and the network interfaces option in the same request.
	Ipv6AddressCount *float64 `json:"ipv6AddressCount" yaml:"ipv6AddressCount"`
	// [EC2-VPC] The IPv6 addresses from the range of the subnet to associate with the primary network interface.
	//
	// You cannot specify this option and the option to assign a number of IPv6 addresses in the same request. You cannot specify this option if you've specified a minimum number of instances to launch.
	//
	// You cannot specify this option and the network interfaces option in the same request.
	Ipv6Addresses interface{} `json:"ipv6Addresses" yaml:"ipv6Addresses"`
	// The ID of the kernel.
	//
	// > We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [PV-GRUB](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide* .
	KernelId *string `json:"kernelId" yaml:"kernelId"`
	// The name of the key pair. You can create a key pair using [CreateKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html) or [ImportKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html) .
	//
	// > If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.
	KeyName *string `json:"keyName" yaml:"keyName"`
	// The launch template to use to launch the instances.
	//
	// Any parameters that you specify in the AWS CloudFormation template override the same parameters in the launch template. You can specify either the name or ID of a launch template, but not both.
	LaunchTemplate interface{} `json:"launchTemplate" yaml:"launchTemplate"`
	// The license configurations.
	LicenseSpecifications interface{} `json:"licenseSpecifications" yaml:"licenseSpecifications"`
	// Specifies whether detailed monitoring is enabled for the instance.
	Monitoring interface{} `json:"monitoring" yaml:"monitoring"`
	// The network interfaces to associate with the instance.
	//
	// > If you use this property to point to a network interface, you must terminate the original interface before attaching a new one to allow the update of the instance to succeed.
	// >
	// > If this resource has a public IP address and is also in a VPC that is defined in the same template, you must use the [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the VPC-gateway attachment.
	NetworkInterfaces interface{} `json:"networkInterfaces" yaml:"networkInterfaces"`
	// The name of an existing placement group that you want to launch the instance into (cluster | partition | spread).
	PlacementGroupName *string `json:"placementGroupName" yaml:"placementGroupName"`
	// The options for the instance hostname.
	PrivateDnsNameOptions interface{} `json:"privateDnsNameOptions" yaml:"privateDnsNameOptions"`
	// [EC2-VPC] The primary IPv4 address. You must specify a value from the IPv4 address range of the subnet.
	//
	// Only one private IP address can be designated as primary. You can't specify this option if you've specified the option to designate a private IP address as the primary IP address in a network interface specification. You cannot specify this option if you're launching more than one instance in the request.
	//
	// You cannot specify this option and the network interfaces option in the same request.
	//
	// If you make an update to an instance that requires replacement, you must assign a new private IP address. During a replacement, AWS CloudFormation creates a new instance but doesn't delete the old instance until the stack has successfully updated. If the stack update fails, AWS CloudFormation uses the old instance to roll back the stack to the previous working state. The old and new instances cannot have the same private IP address.
	PrivateIpAddress *string `json:"privateIpAddress" yaml:"privateIpAddress"`
	// Indicates whether to assign the tags from the instance to all of the volumes attached to the instance at launch.
	//
	// If you specify `true` and you assign tags to the instance, those tags are automatically assigned to all of the volumes that you attach to the instance at launch. If you specify `false` , those tags are not assigned to the attached volumes.
	PropagateTagsToVolumeOnCreation interface{} `json:"propagateTagsToVolumeOnCreation" yaml:"propagateTagsToVolumeOnCreation"`
	// The ID of the RAM disk to select.
	//
	// Some kernels require additional drivers at launch. Check the kernel requirements for information about whether you need to specify a RAM disk. To find kernel requirements, go to the AWS Resource Center and search for the kernel ID.
	//
	// > We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [PV-GRUB](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide* .
	RamdiskId *string `json:"ramdiskId" yaml:"ramdiskId"`
	// The IDs of the security groups. You can create a security group using [CreateSecurityGroup](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html) .
	//
	// If you specify a network interface, you must specify any security groups as part of the network interface.
	SecurityGroupIds *[]*string `json:"securityGroupIds" yaml:"securityGroupIds"`
	// [EC2-Classic, default VPC] The names of the security groups.
	//
	// For a nondefault VPC, you must use security group IDs instead.
	//
	// You cannot specify this option and the network interfaces option in the same request. The list can contain both the name of existing Amazon EC2 security groups or references to AWS::EC2::SecurityGroup resources created in the template.
	//
	// Default: Amazon EC2 uses the default security group.
	SecurityGroups *[]*string `json:"securityGroups" yaml:"securityGroups"`
	// Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives.
	//
	// If the value is `true` , source/destination checks are enabled; otherwise, they are disabled. The default value is `true` . You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls.
	SourceDestCheck interface{} `json:"sourceDestCheck" yaml:"sourceDestCheck"`
	// The SSM [document](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html) and parameter values in AWS Systems Manager to associate with this instance. To use this property, you must specify an IAM instance profile role for the instance. For more information, see [Create an Instance Profile for Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-configuring-access-role.html) in the *AWS Systems Manager User Guide* .
	//
	// > You can currently associate only one document with an instance.
	SsmAssociations interface{} `json:"ssmAssociations" yaml:"ssmAssociations"`
	// [EC2-VPC] The ID of the subnet to launch the instance into.
	//
	// If you specify a network interface, you must specify any subnets as part of the network interface.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
	// The tags to add to the instance.
	//
	// These tags are not applied to the EBS volumes, such as the root volume.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
	// The tenancy of the instance (if the instance is running in a VPC).
	//
	// An instance with a tenancy of `dedicated` runs on single-tenant hardware.
	Tenancy *string `json:"tenancy" yaml:"tenancy"`
	// The user data to make available to the instance.
	//
	// For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) and [Run commands on your Windows instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-user-data.html) . If you are using a command line tool, base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide base64-encoded text. User data is limited to 16 KB.
	UserData *string `json:"userData" yaml:"userData"`
	// The volumes to attach to the instance.
	Volumes interface{} `json:"volumes" yaml:"volumes"`
}

Properties for defining a `CfnInstance`.

TODO: EXAMPLE

type CfnInstance_AssociationParameterProperty

type CfnInstance_AssociationParameterProperty struct {
	// The name of an input parameter that is in the associated SSM document.
	Key *string `json:"key" yaml:"key"`
	// The value of an input parameter.
	Value *[]*string `json:"value" yaml:"value"`
}

Specifies input parameter values for an SSM document in AWS Systems Manager .

`AssociationParameter` is a property of the [Amazon EC2 Instance SsmAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations.html) property.

TODO: EXAMPLE

type CfnInstance_BlockDeviceMappingProperty

type CfnInstance_BlockDeviceMappingProperty struct {
	// The device name (for example, `/dev/sdh` or `xvdh` ).
	//
	// > After the instance is running, this parameter is used to specify the device name of the block device mapping to update.
	DeviceName *string `json:"deviceName" yaml:"deviceName"`
	// Parameters used to automatically set up EBS volumes when the instance is launched.
	//
	// > After the instance is running, you can modify only the `DeleteOnTermination` parameter for the attached volumes without interrupting the instance. Modifying any other parameter results in instance [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) .
	Ebs interface{} `json:"ebs" yaml:"ebs"`
	// To omit the device from the block device mapping, specify an empty string.
	//
	// > After the instance is running, modifying this parameter results in instance [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) .
	NoDevice interface{} `json:"noDevice" yaml:"noDevice"`
	// The virtual device name ( `ephemeral` N).
	//
	// The name must be in the form `ephemeral` *X* where *X* is a number starting from zero (0). For example, an instance type with 2 available instance store volumes can specify mappings for `ephemeral0` and `ephemeral1` . The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume.
	//
	// NVMe instance store volumes are automatically enumerated and assigned a device name. Including them in your block device mapping has no effect.
	//
	// *Constraints* : For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI.
	//
	// > After the instance is running, modifying this parameter results in instance [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) .
	VirtualName *string `json:"virtualName" yaml:"virtualName"`
}

Specifies a block device mapping for an instance.

You must specify exactly one of the following properties: `VirtualName` , `Ebs` , or `NoDevice` .

`BlockDeviceMapping` is a property of the [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) resource.

> After the instance is running, you can modify only the `DeleteOnTermination` parameter for the attached volumes without interrupting the instance. Modifying any other parameter results in instance [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) .

TODO: EXAMPLE

type CfnInstance_CpuOptionsProperty

type CfnInstance_CpuOptionsProperty struct {
	// The number of CPU cores for the instance.
	CoreCount *float64 `json:"coreCount" yaml:"coreCount"`
	// The number of threads per CPU core.
	ThreadsPerCore *float64 `json:"threadsPerCore" yaml:"threadsPerCore"`
}

Specifies the CPU options for the instance.

When you specify CPU options, you must specify both the number of CPU cores and threads per core.

For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide* .

TODO: EXAMPLE

type CfnInstance_CreditSpecificationProperty

type CfnInstance_CreditSpecificationProperty struct {
	// The credit option for CPU usage of the instance.
	//
	// Valid values are `standard` and `unlimited` . `T3` instances launch as `unlimited` by default. `T2` instances launch as `standard` by default.
	CpuCredits *string `json:"cpuCredits" yaml:"cpuCredits"`
}

Specifies the credit option for CPU usage of a T2, T3, or T3a instance.

`CreditSpecification` is a property of the [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) resource.

TODO: EXAMPLE

type CfnInstance_EbsProperty

type CfnInstance_EbsProperty struct {
	// Indicates whether the EBS volume is deleted on instance termination.
	//
	// For more information, see [Preserving Amazon EBS volumes on instance termination](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination) in the *Amazon EC2 User Guide* .
	DeleteOnTermination interface{} `json:"deleteOnTermination" yaml:"deleteOnTermination"`
	// Indicates whether the volume should be encrypted.
	//
	// The effect of setting the encryption state to `true` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Encryption by default](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default) in the *Amazon Elastic Compute Cloud User Guide* .
	//
	// Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see [Supported instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances) .
	//
	// > After the instance is running, modifying this parameter results in instance [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) .
	Encrypted interface{} `json:"encrypted" yaml:"encrypted"`
	// The number of I/O operations per second (IOPS).
	//
	// For `gp3` , `io1` , and `io2` volumes, this represents the number of IOPS that are provisioned for the volume. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.
	//
	// The following are the supported values for each volume type:
	//
	// - `gp3` : 3,000-16,000 IOPS
	// - `io1` : 100-64,000 IOPS
	// - `io2` : 100-64,000 IOPS
	//
	// For `io1` and `io2` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances) . Other instance families guarantee performance up to 32,000 IOPS.
	//
	// This parameter is required for `io1` and `io2` volumes. The default for `gp3` volumes is 3,000 IOPS. This parameter is not supported for `gp2` , `st1` , `sc1` , or `standard` volumes.
	//
	// > After the instance is running, modifying this parameter results in instance [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) .
	Iops *float64 `json:"iops" yaml:"iops"`
	// The identifier of the AWS KMS key to use for Amazon EBS encryption.
	//
	// If `KmsKeyId` is specified, the encrypted state must be `true` . If the encrypted state is `true` but you do not specify `KmsKeyId` , your KMS key for EBS is used.
	//
	// You can specify the KMS key using any of the following:
	//
	// - Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.
	// - Key alias. For example, alias/ExampleAlias.
	// - Key ARN. For example, arn:aws:kms:us-east-1:012345678910:1234abcd-12ab-34cd-56ef-1234567890ab.
	// - Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
	//
	// > After the instance is running, modifying this parameter results in instance [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) .
	KmsKeyId *string `json:"kmsKeyId" yaml:"kmsKeyId"`
	// The ID of the snapshot.
	//
	// If you specify both `SnapshotId` and `VolumeSize` , `VolumeSize` must be equal or greater than the size of the snapshot.
	//
	// > After the instance is running, modifying this parameter results in instance [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) .
	SnapshotId *string `json:"snapshotId" yaml:"snapshotId"`
	// The size of the volume, in GiBs.
	//
	// You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size.
	//
	// The following are the supported volumes sizes for each volume type:
	//
	// - `gp2` and `gp3` :1-16,384
	// - `io1` and `io2` : 4-16,384
	// - `st1` and `sc1` : 125-16,384
	// - `standard` : 1-1,024
	//
	// > After the instance is running, modifying this parameter results in instance [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) .
	VolumeSize *float64 `json:"volumeSize" yaml:"volumeSize"`
	// The volume type.
	//
	// For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide* . If the volume type is `io1` or `io2` , you must specify the IOPS that the volume supports.
	//
	// > After the instance is running, modifying this parameter results in instance [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) .
	VolumeType *string `json:"volumeType" yaml:"volumeType"`
}

Specifies a block device for an EBS volume.

`Ebs` is a property of the [Amazon EC2 BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html) property.

> After the instance is running, you can modify only the `DeleteOnTermination` parameters for the attached volumes without interrupting the instance. Modifying any other parameter results in instance [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) .

TODO: EXAMPLE

type CfnInstance_ElasticGpuSpecificationProperty

type CfnInstance_ElasticGpuSpecificationProperty struct {
	// The type of Elastic Graphics accelerator.
	//
	// For more information about the values to specify for `Type` , see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics) , specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances* .
	Type *string `json:"type" yaml:"type"`
}

Specifies the type of Elastic GPU.

An Elastic GPU is a GPU resource that you can attach to your Amazon EC2 instance to accelerate the graphics performance of your applications. For more information, see [Amazon EC2 Elastic GPUs](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html) in the *Amazon EC2 User Guide for Windows Instances* .

`ElasticGpuSpecification` is a property of the [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) resource.

TODO: EXAMPLE

type CfnInstance_ElasticInferenceAcceleratorProperty

type CfnInstance_ElasticInferenceAcceleratorProperty struct {
	// The type of elastic inference accelerator.
	//
	// The possible values are `eia1.medium` , `eia1.large` , `eia1.xlarge` , `eia2.medium` , `eia2.large` , and `eia2.xlarge` .
	Type *string `json:"type" yaml:"type"`
	// The number of elastic inference accelerators to attach to the instance.
	Count *float64 `json:"count" yaml:"count"`
}

Specifies the Elastic Inference Accelerator for the instance.

`ElasticInferenceAccelerator` is a property of the [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) resource.

TODO: EXAMPLE

type CfnInstance_EnclaveOptionsProperty

type CfnInstance_EnclaveOptionsProperty struct {
	// If this parameter is set to `true` , the instance is enabled for AWS Nitro Enclaves;
	//
	// otherwise, it is not enabled for AWS Nitro Enclaves.
	Enabled interface{} `json:"enabled" yaml:"enabled"`
}

Indicates whether the instance is enabled for AWS Nitro Enclaves.

TODO: EXAMPLE

type CfnInstance_HibernationOptionsProperty

type CfnInstance_HibernationOptionsProperty struct {
	// If you set this parameter to `true` , your instance is enabled for hibernation.
	//
	// Default: `false`
	Configured interface{} `json:"configured" yaml:"configured"`
}

Specifies the hibernation options for the instance.

`HibernationOptions` is a property of the [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) resource.

TODO: EXAMPLE

type CfnInstance_InstanceIpv6AddressProperty

type CfnInstance_InstanceIpv6AddressProperty struct {
	// The IPv6 address.
	Ipv6Address *string `json:"ipv6Address" yaml:"ipv6Address"`
}

Specifies the IPv6 address for the instance.

`InstanceIpv6Address` is a property of the [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) resource.

TODO: EXAMPLE

type CfnInstance_LaunchTemplateSpecificationProperty

type CfnInstance_LaunchTemplateSpecificationProperty struct {
	// The version number of the launch template.
	//
	// AWS CloudFormation does not support specifying `$Latest` , or `$Default` for the template version number.
	Version *string `json:"version" yaml:"version"`
	// The ID of the launch template.
	LaunchTemplateId *string `json:"launchTemplateId" yaml:"launchTemplateId"`
	// The name of the launch template.
	LaunchTemplateName *string `json:"launchTemplateName" yaml:"launchTemplateName"`
}

Specifies a launch template. You must specify either the launch template ID or launch template name.

`LaunchTemplateSpecification` is a property of the [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) resource.

TODO: EXAMPLE

type CfnInstance_LicenseSpecificationProperty

type CfnInstance_LicenseSpecificationProperty struct {
	// The Amazon Resource Name (ARN) of the license configuration.
	LicenseConfigurationArn *string `json:"licenseConfigurationArn" yaml:"licenseConfigurationArn"`
}

Specifies the license configuration to use.

`LicenseSpecification` is a property of the [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) resource.

TODO: EXAMPLE

type CfnInstance_NetworkInterfaceProperty

type CfnInstance_NetworkInterfaceProperty struct {
	// The position of the network interface in the attachment order.
	//
	// A primary network interface has a device index of 0.
	//
	// If you create a network interface when launching an instance, you must specify the device index.
	DeviceIndex *string `json:"deviceIndex" yaml:"deviceIndex"`
	// Indicates whether to assign a public IPv4 address to an instance.
	//
	// Applies only if creating a network interface when launching an instance. The network interface must be the primary network interface. If launching into a default subnet, the default value is `true` .
	AssociatePublicIpAddress interface{} `json:"associatePublicIpAddress" yaml:"associatePublicIpAddress"`
	// Indicates whether the network interface is deleted when the instance is terminated.
	//
	// Applies only if creating a network interface when launching an instance.
	DeleteOnTermination interface{} `json:"deleteOnTermination" yaml:"deleteOnTermination"`
	// The description of the network interface.
	//
	// Applies only if creating a network interface when launching an instance.
	Description *string `json:"description" yaml:"description"`
	// The IDs of the security groups for the network interface.
	//
	// Applies only if creating a network interface when launching an instance.
	GroupSet *[]*string `json:"groupSet" yaml:"groupSet"`
	// A number of IPv6 addresses to assign to the network interface.
	//
	// Amazon EC2 chooses the IPv6 addresses from the range of the subnet. You cannot specify this option and the option to assign specific IPv6 addresses in the same request. You can specify this option if you've specified a minimum number of instances to launch.
	Ipv6AddressCount *float64 `json:"ipv6AddressCount" yaml:"ipv6AddressCount"`
	// One or more IPv6 addresses to assign to the network interface.
	//
	// You cannot specify this option and the option to assign a number of IPv6 addresses in the same request. You cannot specify this option if you've specified a minimum number of instances to launch.
	Ipv6Addresses interface{} `json:"ipv6Addresses" yaml:"ipv6Addresses"`
	// The ID of the network interface, when attaching an existing network interface.
	NetworkInterfaceId *string `json:"networkInterfaceId" yaml:"networkInterfaceId"`
	// The private IPv4 address of the network interface.
	//
	// Applies only if creating a network interface when launching an instance.
	PrivateIpAddress *string `json:"privateIpAddress" yaml:"privateIpAddress"`
	// One or more private IPv4 addresses to assign to the network interface.
	//
	// Only one private IPv4 address can be designated as primary.
	PrivateIpAddresses interface{} `json:"privateIpAddresses" yaml:"privateIpAddresses"`
	// The number of secondary private IPv4 addresses.
	//
	// You can't specify this option and specify more than one private IP address using the private IP addresses option.
	SecondaryPrivateIpAddressCount *float64 `json:"secondaryPrivateIpAddressCount" yaml:"secondaryPrivateIpAddressCount"`
	// The ID of the subnet associated with the network interface.
	//
	// Applies only if creating a network interface when launching an instance.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
}

Specifies a network interface that is to be attached to an instance.

You can create a network interface when launching an instance. For an example, see the [AWS::EC2::Instance examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#aws-properties-ec2-instance--examples--Automatically_assign_a_public_IP_address) .

Alternatively, you can attach an existing network interface when launching an instance. For an example, see the [AWS::EC2:NetworkInterface examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html#aws-resource-ec2-network-interface--examples--Basic_network_interface) .

TODO: EXAMPLE

type CfnInstance_NoDeviceProperty

type CfnInstance_NoDeviceProperty struct {
}

Suppresses the specified device included in the block device mapping of the AMI.

To suppress a device, specify an empty string.

`NoDevice` is a property of the [Amazon EC2 BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html) property.

TODO: EXAMPLE

type CfnInstance_PrivateDnsNameOptionsProperty added in v2.13.0

type CfnInstance_PrivateDnsNameOptionsProperty struct {
	// Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records.
	//
	// For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide* .
	EnableResourceNameDnsAaaaRecord interface{} `json:"enableResourceNameDnsAaaaRecord" yaml:"enableResourceNameDnsAaaaRecord"`
	// Indicates whether to respond to DNS queries for instance hostnames with DNS A records.
	//
	// For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide* .
	EnableResourceNameDnsARecord interface{} `json:"enableResourceNameDnsARecord" yaml:"enableResourceNameDnsARecord"`
	// The type of hostnames to assign to instances in the subnet at launch.
	//
	// For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address. For IPv6 only subnets, an instance DNS name must be based on the instance ID. For dual-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide* .
	HostnameType *string `json:"hostnameType" yaml:"hostnameType"`
}

The type of hostnames to assign to instances in the subnet at launch.

For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address. For IPv6 only subnets, an instance DNS name must be based on the instance ID. For dual-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide* .

TODO: EXAMPLE

type CfnInstance_PrivateIpAddressSpecificationProperty

type CfnInstance_PrivateIpAddressSpecificationProperty struct {
	// Indicates whether the private IPv4 address is the primary private IPv4 address.
	//
	// Only one IPv4 address can be designated as primary.
	Primary interface{} `json:"primary" yaml:"primary"`
	// The private IPv4 addresses.
	PrivateIpAddress *string `json:"privateIpAddress" yaml:"privateIpAddress"`
}

Specifies a secondary private IPv4 address for a network interface.

`PrivateIpAddressSpecification` is a property of the [AWS::EC2::NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html) resource.

TODO: EXAMPLE

type CfnInstance_SsmAssociationProperty

type CfnInstance_SsmAssociationProperty struct {
	// The name of an SSM document to associate with the instance.
	DocumentName *string `json:"documentName" yaml:"documentName"`
	// The input parameter values to use with the associated SSM document.
	AssociationParameters interface{} `json:"associationParameters" yaml:"associationParameters"`
}

Specifies the SSM document and parameter values in AWS Systems Manager to associate with an instance.

`SsmAssociations` is a property of the [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) resource.

TODO: EXAMPLE

type CfnInstance_VolumeProperty

type CfnInstance_VolumeProperty struct {
	// The device name (for example, `/dev/sdh` or `xvdh` ).
	Device *string `json:"device" yaml:"device"`
	// The ID of the EBS volume.
	//
	// The volume and instance must be within the same Availability Zone.
	VolumeId *string `json:"volumeId" yaml:"volumeId"`
}

Specifies a volume to attach to an instance.

`Volume` is an embedded property of the [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) resource.

TODO: EXAMPLE

type CfnInternetGateway

type CfnInternetGateway interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrInternetGatewayId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::InternetGateway`.

Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC.

TODO: EXAMPLE

func NewCfnInternetGateway

func NewCfnInternetGateway(scope constructs.Construct, id *string, props *CfnInternetGatewayProps) CfnInternetGateway

Create a new `AWS::EC2::InternetGateway`.

type CfnInternetGatewayProps

type CfnInternetGatewayProps struct {
	// Any tags to assign to the internet gateway.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnInternetGateway`.

TODO: EXAMPLE

type CfnLaunchTemplate

type CfnLaunchTemplate interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrDefaultVersionNumber() *string
	AttrLatestVersionNumber() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LaunchTemplateData() interface{}
	SetLaunchTemplateData(val interface{})
	LaunchTemplateName() *string
	SetLaunchTemplateName(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	TagSpecifications() interface{}
	SetTagSpecifications(val interface{})
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::LaunchTemplate`.

Specifies a launch template for an Amazon EC2 instance. A launch template contains the parameters to launch an instance. For more information, see [Launch an instance from a launch template](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-launch-templates.html) in the *Amazon EC2 User Guide* .

TODO: EXAMPLE

func NewCfnLaunchTemplate

func NewCfnLaunchTemplate(scope constructs.Construct, id *string, props *CfnLaunchTemplateProps) CfnLaunchTemplate

Create a new `AWS::EC2::LaunchTemplate`.

type CfnLaunchTemplateProps

type CfnLaunchTemplateProps struct {
	// The information for the launch template.
	LaunchTemplateData interface{} `json:"launchTemplateData" yaml:"launchTemplateData"`
	// A name for the launch template.
	LaunchTemplateName *string `json:"launchTemplateName" yaml:"launchTemplateName"`
	// The tags to apply to the launch template during creation.
	TagSpecifications interface{} `json:"tagSpecifications" yaml:"tagSpecifications"`
}

Properties for defining a `CfnLaunchTemplate`.

TODO: EXAMPLE

type CfnLaunchTemplate_AcceleratorCountProperty

type CfnLaunchTemplate_AcceleratorCountProperty struct {
	// The maximum number of accelerators.
	//
	// To specify no maximum limit, omit this parameter. To exclude accelerator-enabled instance types, set `Max` to `0` .
	Max *float64 `json:"max" yaml:"max"`
	// The minimum number of accelerators.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance.

TODO: EXAMPLE

type CfnLaunchTemplate_AcceleratorTotalMemoryMiBProperty

type CfnLaunchTemplate_AcceleratorTotalMemoryMiBProperty struct {
	// The maximum amount of accelerator memory, in MiB.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum amount of accelerator memory, in MiB.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum amount of total accelerator memory, in MiB.

TODO: EXAMPLE

type CfnLaunchTemplate_BaselineEbsBandwidthMbpsProperty

type CfnLaunchTemplate_BaselineEbsBandwidthMbpsProperty struct {
	// The maximum baseline bandwidth, in Mbps.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum baseline bandwidth, in Mbps.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps.

For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide* .

TODO: EXAMPLE

type CfnLaunchTemplate_BlockDeviceMappingProperty

type CfnLaunchTemplate_BlockDeviceMappingProperty struct {
	// The device name (for example, /dev/sdh or xvdh).
	DeviceName *string `json:"deviceName" yaml:"deviceName"`
	// Parameters used to automatically set up EBS volumes when the instance is launched.
	Ebs interface{} `json:"ebs" yaml:"ebs"`
	// To omit the device from the block device mapping, specify an empty string.
	NoDevice *string `json:"noDevice" yaml:"noDevice"`
	// The virtual device name (ephemeralN).
	//
	// Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1. The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume.
	VirtualName *string `json:"virtualName" yaml:"virtualName"`
}

Information about a block device mapping for an Amazon EC2 launch template.

`BlockDeviceMapping` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_CapacityReservationSpecificationProperty

type CfnLaunchTemplate_CapacityReservationSpecificationProperty struct {
	// Indicates the instance's Capacity Reservation preferences. Possible preferences include:.
	//
	// - `open` - The instance can run in any `open` Capacity Reservation that has matching attributes (instance type, platform, Availability Zone).
	// - `none` - The instance avoids running in a Capacity Reservation even if one is available. The instance runs in On-Demand capacity.
	CapacityReservationPreference *string `json:"capacityReservationPreference" yaml:"capacityReservationPreference"`
	// Information about the target Capacity Reservation or Capacity Reservation group.
	CapacityReservationTarget interface{} `json:"capacityReservationTarget" yaml:"capacityReservationTarget"`
}

Specifies an instance's Capacity Reservation targeting option. You can specify only one option at a time.

`CapacityReservationSpecification` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_CapacityReservationTargetProperty

type CfnLaunchTemplate_CapacityReservationTargetProperty struct {
	// The ID of the Capacity Reservation in which to run the instance.
	CapacityReservationId *string `json:"capacityReservationId" yaml:"capacityReservationId"`
	// The ARN of the Capacity Reservation resource group in which to run the instance.
	CapacityReservationResourceGroupArn *string `json:"capacityReservationResourceGroupArn" yaml:"capacityReservationResourceGroupArn"`
}

Specifies a target Capacity Reservation.

`CapacityReservationTarget` is a property of the [Amazon EC2 LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) property type.

TODO: EXAMPLE

type CfnLaunchTemplate_CpuOptionsProperty

type CfnLaunchTemplate_CpuOptionsProperty struct {
	// The number of CPU cores for the instance.
	CoreCount *float64 `json:"coreCount" yaml:"coreCount"`
	// The number of threads per CPU core.
	//
	// To disable multithreading for the instance, specify a value of 1. Otherwise, specify the default value of 2.
	ThreadsPerCore *float64 `json:"threadsPerCore" yaml:"threadsPerCore"`
}

Specifies the CPU options for an instance.

For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide* .

`CpuOptions` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_CreditSpecificationProperty

type CfnLaunchTemplate_CreditSpecificationProperty struct {
	// The credit option for CPU usage of a T2, T3, or T3a instance.
	//
	// Valid values are `standard` and `unlimited` .
	CpuCredits *string `json:"cpuCredits" yaml:"cpuCredits"`
}

Specifies the credit option for CPU usage of a T2, T3, or T3a instance.

`CreditSpecification` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_EbsProperty

type CfnLaunchTemplate_EbsProperty struct {
	// Indicates whether the EBS volume is deleted on instance termination.
	DeleteOnTermination interface{} `json:"deleteOnTermination" yaml:"deleteOnTermination"`
	// Indicates whether the EBS volume is encrypted.
	//
	// Encrypted volumes can only be attached to instances that support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value.
	Encrypted interface{} `json:"encrypted" yaml:"encrypted"`
	// The number of I/O operations per second (IOPS).
	//
	// For `gp3` , `io1` , and `io2` volumes, this represents the number of IOPS that are provisioned for the volume. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.
	//
	// The following are the supported values for each volume type:
	//
	// - `gp3` : 3,000-16,000 IOPS
	// - `io1` : 100-64,000 IOPS
	// - `io2` : 100-64,000 IOPS
	//
	// For `io1` and `io2` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances) . Other instance families guarantee performance up to 32,000 IOPS.
	//
	// This parameter is supported for `io1` , `io2` , and `gp3` volumes only. This parameter is not supported for `gp2` , `st1` , `sc1` , or `standard` volumes.
	Iops *float64 `json:"iops" yaml:"iops"`
	// The ARN of the symmetric AWS Key Management Service ( AWS KMS ) CMK used for encryption.
	KmsKeyId *string `json:"kmsKeyId" yaml:"kmsKeyId"`
	// The ID of the snapshot.
	SnapshotId *string `json:"snapshotId" yaml:"snapshotId"`
	// The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s.
	//
	// Valid Range: Minimum value of 125. Maximum value of 1000.
	Throughput *float64 `json:"throughput" yaml:"throughput"`
	// The size of the volume, in GiBs.
	//
	// You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type:
	//
	// - `gp2` and `gp3` : 1-16,384
	// - `io1` and `io2` : 4-16,384
	// - `st1` and `sc1` : 125-16,384
	// - `standard` : 1-1,024
	VolumeSize *float64 `json:"volumeSize" yaml:"volumeSize"`
	// The volume type.
	//
	// For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide* .
	VolumeType *string `json:"volumeType" yaml:"volumeType"`
}

Parameters for a block device for an EBS volume in an Amazon EC2 launch template.

`Ebs` is a property of [AWS::EC2::LaunchTemplate BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_ElasticGpuSpecificationProperty

type CfnLaunchTemplate_ElasticGpuSpecificationProperty struct {
	// The type of Elastic Graphics accelerator.
	//
	// For more information about the values to specify for `Type` , see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics) , specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances* .
	Type *string `json:"type" yaml:"type"`
}

Specifies a specification for an Elastic GPU for an Amazon EC2 launch template.

`ElasticGpuSpecification` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_EnclaveOptionsProperty

type CfnLaunchTemplate_EnclaveOptionsProperty struct {
	// If this parameter is set to `true` , the instance is enabled for AWS Nitro Enclaves;
	//
	// otherwise, it is not enabled for AWS Nitro Enclaves.
	Enabled interface{} `json:"enabled" yaml:"enabled"`
}

Indicates whether the instance is enabled for AWS Nitro Enclaves.

TODO: EXAMPLE

type CfnLaunchTemplate_HibernationOptionsProperty

type CfnLaunchTemplate_HibernationOptionsProperty struct {
	// If you set this parameter to `true` , the instance is enabled for hibernation.
	//
	// Default: `false`
	Configured interface{} `json:"configured" yaml:"configured"`
}

Specifies whether your instance is configured for hibernation.

This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites) . For more information, see [Hibernate Your Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide* .

`HibernationOptions` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_IamInstanceProfileProperty

type CfnLaunchTemplate_IamInstanceProfileProperty struct {
	// The Amazon Resource Name (ARN) of the instance profile.
	Arn *string `json:"arn" yaml:"arn"`
	// The name of the instance profile.
	Name *string `json:"name" yaml:"name"`
}

Specifies an IAM instance profile, which is a container for an IAM role for your instance.

You can use an IAM role to distribute your AWS credentials to your instances.

If you are creating the launch template for use with an Amazon EC2 Auto Scaling group, you can specify either the name or the ARN of the instance profile, but not both.

`IamInstanceProfile` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_InstanceMarketOptionsProperty

type CfnLaunchTemplate_InstanceMarketOptionsProperty struct {
	// The market type.
	MarketType *string `json:"marketType" yaml:"marketType"`
	// The options for Spot Instances.
	SpotOptions interface{} `json:"spotOptions" yaml:"spotOptions"`
}

Specifies the market (purchasing) option for an instance.

`InstanceMarketOptions` is a property of the [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_InstanceRequirementsProperty added in v2.9.0

type CfnLaunchTemplate_InstanceRequirementsProperty struct {
	// The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance.
	//
	// To exclude accelerator-enabled instance types, set `Max` to `0` .
	//
	// Default: No minimum or maximum limits
	AcceleratorCount interface{} `json:"acceleratorCount" yaml:"acceleratorCount"`
	// Indicates whether instance types must have accelerators by specific manufacturers.
	//
	// - For instance types with NVIDIA devices, specify `nvidia` .
	// - For instance types with AMD devices, specify `amd` .
	// - For instance types with AWS devices, specify `amazon-web-services` .
	// - For instance types with Xilinx devices, specify `xilinx` .
	//
	// Default: Any manufacturer
	AcceleratorManufacturers *[]*string `json:"acceleratorManufacturers" yaml:"acceleratorManufacturers"`
	// The accelerators that must be on the instance type.
	//
	// - For instance types with NVIDIA A100 GPUs, specify `a100` .
	// - For instance types with NVIDIA V100 GPUs, specify `v100` .
	// - For instance types with NVIDIA K80 GPUs, specify `k80` .
	// - For instance types with NVIDIA T4 GPUs, specify `t4` .
	// - For instance types with NVIDIA M60 GPUs, specify `m60` .
	// - For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520` .
	// - For instance types with Xilinx VU9P FPGAs, specify `vu9p` .
	//
	// Default: Any accelerator
	AcceleratorNames *[]*string `json:"acceleratorNames" yaml:"acceleratorNames"`
	// The minimum and maximum amount of total accelerator memory, in MiB.
	//
	// Default: No minimum or maximum limits
	AcceleratorTotalMemoryMiB interface{} `json:"acceleratorTotalMemoryMiB" yaml:"acceleratorTotalMemoryMiB"`
	// The accelerator types that must be on the instance type.
	//
	// - For instance types with GPU accelerators, specify `gpu` .
	// - For instance types with FPGA accelerators, specify `fpga` .
	// - For instance types with inference accelerators, specify `inference` .
	//
	// Default: Any accelerator type
	AcceleratorTypes *[]*string `json:"acceleratorTypes" yaml:"acceleratorTypes"`
	// Indicates whether bare metal instance types must be included, excluded, or required.
	//
	// - To include bare metal instance types, specify `included` .
	// - To require only bare metal instance types, specify `required` .
	// - To exclude bare metal instance types, specify `excluded` .
	//
	// Default: `excluded`
	BareMetal *string `json:"bareMetal" yaml:"bareMetal"`
	// The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps.
	//
	// For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide* .
	//
	// Default: No minimum or maximum limits
	BaselineEbsBandwidthMbps interface{} `json:"baselineEbsBandwidthMbps" yaml:"baselineEbsBandwidthMbps"`
	// Indicates whether burstable performance T instance types are included, excluded, or required.
	//
	// For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) .
	//
	// - To include burstable performance instance types, specify `included` .
	// - To require only burstable performance instance types, specify `required` .
	// - To exclude burstable performance instance types, specify `excluded` .
	//
	// Default: `excluded`
	BurstablePerformance *string `json:"burstablePerformance" yaml:"burstablePerformance"`
	// The CPU manufacturers to include.
	//
	// - For instance types with Intel CPUs, specify `intel` .
	// - For instance types with AMD CPUs, specify `amd` .
	// - For instance types with AWS CPUs, specify `amazon-web-services` .
	//
	// > Don't confuse the CPU manufacturer with the CPU architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
	//
	// Default: Any manufacturer
	CpuManufacturers *[]*string `json:"cpuManufacturers" yaml:"cpuManufacturers"`
	// The instance types to exclude.
	//
	// You can use strings with one or more wild cards, represented by an asterisk ( `*` ), to exclude an instance type, size, or generation. The following are examples: `m5.8xlarge` , `c5*.*` , `m5a.*` , `r*` , `*3*` .
	//
	// For example, if you specify `c5*` ,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*` , Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types.
	//
	// Default: No excluded instance types
	ExcludedInstanceTypes *[]*string `json:"excludedInstanceTypes" yaml:"excludedInstanceTypes"`
	// Indicates whether current or previous generation instance types are included.
	//
	// The current generation instance types are recommended for use. Current generation instance types are typically the latest two to three generations in each instance family. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide* .
	//
	// For current generation instance types, specify `current` .
	//
	// For previous generation instance types, specify `previous` .
	//
	// Default: Current and previous generation instance types
	InstanceGenerations *[]*string `json:"instanceGenerations" yaml:"instanceGenerations"`
	// Indicates whether instance types with instance store volumes are included, excluded, or required.
	//
	// For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide* .
	//
	// - To include instance types with instance store volumes, specify `included` .
	// - To require only instance types with instance store volumes, specify `required` .
	// - To exclude instance types with instance store volumes, specify `excluded` .
	//
	// Default: `included`
	LocalStorage *string `json:"localStorage" yaml:"localStorage"`
	// The type of local storage that is required.
	//
	// - For instance types with hard disk drive (HDD) storage, specify `hdd` .
	// - For instance types with solid state drive (SDD) storage, specify `sdd` .
	//
	// Default: `hdd` and `sdd`
	LocalStorageTypes *[]*string `json:"localStorageTypes" yaml:"localStorageTypes"`
	// The minimum and maximum amount of memory per vCPU, in GiB.
	//
	// Default: No minimum or maximum limits
	MemoryGiBPerVCpu interface{} `json:"memoryGiBPerVCpu" yaml:"memoryGiBPerVCpu"`
	// The minimum and maximum amount of memory, in MiB.
	MemoryMiB interface{} `json:"memoryMiB" yaml:"memoryMiB"`
	// The minimum and maximum number of network interfaces.
	//
	// Default: No minimum or maximum limits
	NetworkInterfaceCount interface{} `json:"networkInterfaceCount" yaml:"networkInterfaceCount"`
	// The price protection threshold for On-Demand Instances.
	//
	// This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage above the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.
	//
	// The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
	//
	// To turn off price protection, specify a high value, such as `999999` .
	//
	// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html) .
	//
	// > If you set `TargetCapacityUnitType` to `vcpu` or `memory-mib` , the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.
	//
	// Default: `20`
	OnDemandMaxPricePercentageOverLowestPrice *float64 `json:"onDemandMaxPricePercentageOverLowestPrice" yaml:"onDemandMaxPricePercentageOverLowestPrice"`
	// Indicates whether instance types must support hibernation for On-Demand Instances.
	//
	// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) .
	//
	// Default: `false`
	RequireHibernateSupport interface{} `json:"requireHibernateSupport" yaml:"requireHibernateSupport"`
	// The price protection threshold for Spot Instances.
	//
	// This is the maximum you’ll pay for a Spot Instance, expressed as a percentage above the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.
	//
	// The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
	//
	// To turn off price protection, specify a high value, such as `999999` .
	//
	// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html) .
	//
	// > If you set `TargetCapacityUnitType` to `vcpu` or `memory-mib` , the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.
	//
	// Default: `100`
	SpotMaxPricePercentageOverLowestPrice *float64 `json:"spotMaxPricePercentageOverLowestPrice" yaml:"spotMaxPricePercentageOverLowestPrice"`
	// The minimum and maximum amount of total local storage, in GB.
	//
	// Default: No minimum or maximum limits
	TotalLocalStorageGb interface{} `json:"totalLocalStorageGb" yaml:"totalLocalStorageGb"`
	// The minimum and maximum number of vCPUs.
	VCpuCount interface{} `json:"vCpuCount" yaml:"vCpuCount"`
}

The attributes for the instance types.

When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.

When you specify multiple parameters, you get instance types that satisfy all of the specified parameters. If you specify multiple values for a parameter, you get instance types that satisfy any of the specified values.

> You must specify `VCpuCount` and `MemoryMiB` . All other parameters are optional. Any unspecified optional parameter is set to its default.

For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) , [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html) , and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide* .

TODO: EXAMPLE

type CfnLaunchTemplate_Ipv6AddProperty

type CfnLaunchTemplate_Ipv6AddProperty struct {
	// One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet.
	//
	// You can't use this option if you're specifying a number of IPv6 addresses.
	Ipv6Address *string `json:"ipv6Address" yaml:"ipv6Address"`
}

Specifies an IPv6 address in an Amazon EC2 launch template.

`Ipv6Add` is a property of [AWS::EC2::LaunchTemplate NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_LaunchTemplateDataProperty

type CfnLaunchTemplate_LaunchTemplateDataProperty struct {
	// The block device mapping.
	BlockDeviceMappings interface{} `json:"blockDeviceMappings" yaml:"blockDeviceMappings"`
	// The Capacity Reservation targeting option.
	//
	// If you do not specify this parameter, the instance's Capacity Reservation preference defaults to `open` , which enables it to run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone).
	CapacityReservationSpecification interface{} `json:"capacityReservationSpecification" yaml:"capacityReservationSpecification"`
	// The CPU options for the instance.
	//
	// For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide* .
	CpuOptions interface{} `json:"cpuOptions" yaml:"cpuOptions"`
	// The credit option for CPU usage of the instance.
	//
	// Valid for T2, T3, or T3a instances only.
	CreditSpecification interface{} `json:"creditSpecification" yaml:"creditSpecification"`
	// If you set this parameter to `true` , you can't terminate the instance using the Amazon EC2 console, CLI, or API;
	//
	// otherwise, you can. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html) . Alternatively, if you set `InstanceInitiatedShutdownBehavior` to `terminate` , you can terminate the instance by running the shutdown command from the instance.
	DisableApiTermination interface{} `json:"disableApiTermination" yaml:"disableApiTermination"`
	// Indicates whether the instance is optimized for Amazon EBS I/O.
	//
	// This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.
	EbsOptimized interface{} `json:"ebsOptimized" yaml:"ebsOptimized"`
	// An elastic GPU to associate with the instance.
	ElasticGpuSpecifications interface{} `json:"elasticGpuSpecifications" yaml:"elasticGpuSpecifications"`
	// The elastic inference accelerator for the instance.
	ElasticInferenceAccelerators interface{} `json:"elasticInferenceAccelerators" yaml:"elasticInferenceAccelerators"`
	// Indicates whether the instance is enabled for AWS Nitro Enclaves.
	//
	// For more information, see [What is AWS Nitro Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) in the *AWS Nitro Enclaves User Guide* .
	//
	// You can't enable AWS Nitro Enclaves and hibernation on the same instance.
	EnclaveOptions interface{} `json:"enclaveOptions" yaml:"enclaveOptions"`
	// Indicates whether an instance is enabled for hibernation.
	//
	// This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites) . For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide* .
	HibernationOptions interface{} `json:"hibernationOptions" yaml:"hibernationOptions"`
	// The name or Amazon Resource Name (ARN) of an IAM instance profile.
	IamInstanceProfile interface{} `json:"iamInstanceProfile" yaml:"iamInstanceProfile"`
	// The ID of the AMI.
	ImageId *string `json:"imageId" yaml:"imageId"`
	// Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).
	//
	// Default: `stop`
	InstanceInitiatedShutdownBehavior *string `json:"instanceInitiatedShutdownBehavior" yaml:"instanceInitiatedShutdownBehavior"`
	// The market (purchasing) option for the instances.
	InstanceMarketOptions interface{} `json:"instanceMarketOptions" yaml:"instanceMarketOptions"`
	// `CfnLaunchTemplate.LaunchTemplateDataProperty.InstanceRequirements`.
	InstanceRequirements interface{} `json:"instanceRequirements" yaml:"instanceRequirements"`
	// The instance type. For more information, see [Instance Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide* .
	//
	// If you specify `InstanceTypes` , you can't specify `InstanceRequirements` .
	InstanceType *string `json:"instanceType" yaml:"instanceType"`
	// The ID of the kernel.
	//
	// We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User Provided Kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide* .
	KernelId *string `json:"kernelId" yaml:"kernelId"`
	// The name of the key pair. You can create a key pair using [CreateKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html) or [ImportKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html) .
	//
	// > If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.
	KeyName *string `json:"keyName" yaml:"keyName"`
	// The license configurations.
	LicenseSpecifications interface{} `json:"licenseSpecifications" yaml:"licenseSpecifications"`
	// The metadata options for the instance.
	//
	// For more information, see [Instance Metadata and User Data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide* .
	MetadataOptions interface{} `json:"metadataOptions" yaml:"metadataOptions"`
	// The monitoring for the instance.
	Monitoring interface{} `json:"monitoring" yaml:"monitoring"`
	// One or more network interfaces.
	//
	// If you specify a network interface, you must specify any security groups and subnets as part of the network interface.
	NetworkInterfaces interface{} `json:"networkInterfaces" yaml:"networkInterfaces"`
	// The placement for the instance.
	Placement interface{} `json:"placement" yaml:"placement"`
	// The options for the instance hostname.
	//
	// The default values are inherited from the subnet.
	PrivateDnsNameOptions interface{} `json:"privateDnsNameOptions" yaml:"privateDnsNameOptions"`
	// The ID of the RAM disk.
	//
	// > We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User Provided Kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide* .
	RamDiskId *string `json:"ramDiskId" yaml:"ramDiskId"`
	// One or more security group IDs.
	//
	// You can create a security group using [CreateSecurityGroup](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html) . You cannot specify both a security group ID and security name in the same request.
	SecurityGroupIds *[]*string `json:"securityGroupIds" yaml:"securityGroupIds"`
	// [EC2-Classic, default VPC] One or more security group names.
	//
	// For a nondefault VPC, you must use security group IDs instead. You cannot specify both a security group ID and security name in the same request.
	SecurityGroups *[]*string `json:"securityGroups" yaml:"securityGroups"`
	// The tags to apply to the resources during launch.
	//
	// You can only tag instances and volumes on launch. The specified tags are applied to all instances or volumes that are created during launch.
	TagSpecifications interface{} `json:"tagSpecifications" yaml:"tagSpecifications"`
	// The user data to make available to the instance.
	//
	// You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Running Commands on Your Linux Instance at Launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Adding User Data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data) (Windows).
	//
	// If you are creating the launch template for use with AWS Batch , the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive) . For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *AWS Batch User Guide* .
	UserData *string `json:"userData" yaml:"userData"`
}

The information to include in the launch template.

TODO: EXAMPLE

type CfnLaunchTemplate_LaunchTemplateElasticInferenceAcceleratorProperty

type CfnLaunchTemplate_LaunchTemplateElasticInferenceAcceleratorProperty struct {
	// The number of elastic inference accelerators to attach to the instance.
	//
	// Default: 1
	Count *float64 `json:"count" yaml:"count"`
	// The type of elastic inference accelerator.
	//
	// The possible values are eia1.medium, eia1.large, and eia1.xlarge.
	Type *string `json:"type" yaml:"type"`
}

Specifies an elastic inference accelerator.

`LaunchTemplateElasticInferenceAccelerator` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_LaunchTemplateTagSpecificationProperty

type CfnLaunchTemplate_LaunchTemplateTagSpecificationProperty struct {
	// The type of resource.
	//
	// To tag the launch template, `ResourceType` must be `launch-template` .
	ResourceType *string `json:"resourceType" yaml:"resourceType"`
	// The tags for the resource.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Specifies the tags to apply to the launch template during creation.

`LaunchTemplateTagSpecification` is a property of [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_LicenseSpecificationProperty

type CfnLaunchTemplate_LicenseSpecificationProperty struct {
	// The Amazon Resource Name (ARN) of the license configuration.
	LicenseConfigurationArn *string `json:"licenseConfigurationArn" yaml:"licenseConfigurationArn"`
}

Specifies a license configuration for an instance.

`LicenseSpecification` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_MemoryGiBPerVCpuProperty

type CfnLaunchTemplate_MemoryGiBPerVCpuProperty struct {
	// The maximum amount of memory per vCPU, in GiB.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum amount of memory per vCPU, in GiB.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum amount of memory per vCPU, in GiB.

TODO: EXAMPLE

type CfnLaunchTemplate_MemoryMiBProperty

type CfnLaunchTemplate_MemoryMiBProperty struct {
	// The maximum amount of memory, in MiB.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum amount of memory, in MiB.
	//
	// To specify no minimum limit, specify `0` .
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum amount of memory, in MiB.

TODO: EXAMPLE

type CfnLaunchTemplate_MetadataOptionsProperty

type CfnLaunchTemplate_MetadataOptionsProperty struct {
	// Enables or disables the HTTP metadata endpoint on your instances.
	//
	// If the parameter is not specified, the default state is `enabled` .
	//
	// > If you specify a value of `disabled` , you will not be able to access your instance metadata.
	HttpEndpoint *string `json:"httpEndpoint" yaml:"httpEndpoint"`
	// Enables or disables the IPv6 endpoint for the instance metadata service.
	//
	// Default: `disabled`
	HttpProtocolIpv6 *string `json:"httpProtocolIpv6" yaml:"httpProtocolIpv6"`
	// The desired HTTP PUT response hop limit for instance metadata requests.
	//
	// The larger the number, the further instance metadata requests can travel.
	//
	// Default: 1
	//
	// Possible values: Integers from 1 to 64
	HttpPutResponseHopLimit *float64 `json:"httpPutResponseHopLimit" yaml:"httpPutResponseHopLimit"`
	// The state of token usage for your instance metadata requests.
	//
	// If the parameter is not specified in the request, the default state is `optional` .
	//
	// If the state is `optional` , you can choose to retrieve instance metadata with or without a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid signed token, the version 2.0 role credentials are returned.
	//
	// If the state is `required` , you must send a signed token header with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available.
	HttpTokens *string `json:"httpTokens" yaml:"httpTokens"`
	// Set to `enabled` to allow access to instance tags from the instance metadata.
	//
	// Set to `disabled` to turn off access to instance tags from the instance metadata. For more information, see [Work with instance tags using the instance metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS) .
	//
	// Default: `disabled`
	InstanceMetadataTags *string `json:"instanceMetadataTags" yaml:"instanceMetadataTags"`
}

Specifies the metadata options for the instance.

`MetadataOptions` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_MonitoringProperty

type CfnLaunchTemplate_MonitoringProperty struct {
	// Specify `true` to enable detailed monitoring.
	//
	// Otherwise, basic monitoring is enabled.
	Enabled interface{} `json:"enabled" yaml:"enabled"`
}

Specifies whether detailed monitoring is enabled for an instance.

`Monitoring` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_NetworkInterfaceCountProperty

type CfnLaunchTemplate_NetworkInterfaceCountProperty struct {
	// The maximum number of network interfaces.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum number of network interfaces.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum number of network interfaces.

TODO: EXAMPLE

type CfnLaunchTemplate_NetworkInterfaceProperty

type CfnLaunchTemplate_NetworkInterfaceProperty struct {
	// Indicates whether to associate a Carrier IP address with eth0 for a new network interface.
	//
	// Use this option when you launch an instance in a Wavelength Zone and want to associate a Carrier IP address with the network interface. For more information about Carrier IP addresses, see [Carrier IP addresses](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) in the *AWS Wavelength Developer Guide* .
	AssociateCarrierIpAddress interface{} `json:"associateCarrierIpAddress" yaml:"associateCarrierIpAddress"`
	// Associates a public IPv4 address with eth0 for a new network interface.
	AssociatePublicIpAddress interface{} `json:"associatePublicIpAddress" yaml:"associatePublicIpAddress"`
	// Indicates whether the network interface is deleted when the instance is terminated.
	DeleteOnTermination interface{} `json:"deleteOnTermination" yaml:"deleteOnTermination"`
	// A description for the network interface.
	Description *string `json:"description" yaml:"description"`
	// The device index for the network interface attachment.
	DeviceIndex *float64 `json:"deviceIndex" yaml:"deviceIndex"`
	// The IDs of one or more security groups.
	Groups *[]*string `json:"groups" yaml:"groups"`
	// The type of network interface.
	//
	// To create an Elastic Fabric Adapter (EFA), specify `efa` . For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide* .
	//
	// If you are not creating an EFA, specify `interface` or omit this parameter.
	//
	// Valid values: `interface` | `efa`
	InterfaceType *string `json:"interfaceType" yaml:"interfaceType"`
	// The number of IPv6 addresses to assign to a network interface.
	//
	// Amazon EC2 automatically selects the IPv6 addresses from the subnet range. You can't use this option if specifying specific IPv6 addresses.
	Ipv6AddressCount *float64 `json:"ipv6AddressCount" yaml:"ipv6AddressCount"`
	// One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet.
	//
	// You can't use this option if you're specifying a number of IPv6 addresses.
	Ipv6Addresses interface{} `json:"ipv6Addresses" yaml:"ipv6Addresses"`
	// The index of the network card.
	//
	// Some instance types support multiple network cards. The primary network interface must be assigned to network card index 0. The default is network card index 0.
	NetworkCardIndex *float64 `json:"networkCardIndex" yaml:"networkCardIndex"`
	// The ID of the network interface.
	NetworkInterfaceId *string `json:"networkInterfaceId" yaml:"networkInterfaceId"`
	// The primary private IPv4 address of the network interface.
	PrivateIpAddress *string `json:"privateIpAddress" yaml:"privateIpAddress"`
	// One or more private IPv4 addresses.
	PrivateIpAddresses interface{} `json:"privateIpAddresses" yaml:"privateIpAddresses"`
	// The number of secondary private IPv4 addresses to assign to a network interface.
	SecondaryPrivateIpAddressCount *float64 `json:"secondaryPrivateIpAddressCount" yaml:"secondaryPrivateIpAddressCount"`
	// The ID of the subnet for the network interface.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
}

Specifies the parameters for a network interface.

`NetworkInterface` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_PlacementProperty

type CfnLaunchTemplate_PlacementProperty struct {
	// The affinity setting for an instance on a Dedicated Host.
	Affinity *string `json:"affinity" yaml:"affinity"`
	// The Availability Zone for the instance.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The name of the placement group for the instance.
	GroupName *string `json:"groupName" yaml:"groupName"`
	// The ID of the Dedicated Host for the instance.
	HostId *string `json:"hostId" yaml:"hostId"`
	// The ARN of the host resource group in which to launch the instances.
	//
	// If you specify a host resource group ARN, omit the *Tenancy* parameter or set it to `host` .
	HostResourceGroupArn *string `json:"hostResourceGroupArn" yaml:"hostResourceGroupArn"`
	// The number of the partition the instance should launch in.
	//
	// Valid only if the placement group strategy is set to `partition` .
	PartitionNumber *float64 `json:"partitionNumber" yaml:"partitionNumber"`
	// Reserved for future use.
	SpreadDomain *string `json:"spreadDomain" yaml:"spreadDomain"`
	// The tenancy of the instance (if the instance is running in a VPC).
	//
	// An instance with a tenancy of dedicated runs on single-tenant hardware.
	Tenancy *string `json:"tenancy" yaml:"tenancy"`
}

Specifies the placement of an instance.

`Placement` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_PrivateDnsNameOptionsProperty added in v2.11.0

type CfnLaunchTemplate_PrivateDnsNameOptionsProperty struct {
	// Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records.
	EnableResourceNameDnsAaaaRecord interface{} `json:"enableResourceNameDnsAaaaRecord" yaml:"enableResourceNameDnsAaaaRecord"`
	// Indicates whether to respond to DNS queries for instance hostnames with DNS A records.
	EnableResourceNameDnsARecord interface{} `json:"enableResourceNameDnsARecord" yaml:"enableResourceNameDnsARecord"`
	// The type of hostname for EC2 instances.
	//
	// For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address. For IPv6 only subnets, an instance DNS name must be based on the instance ID. For dual-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide* .
	HostnameType *string `json:"hostnameType" yaml:"hostnameType"`
}

Describes the options for instance hostnames.

TODO: EXAMPLE

type CfnLaunchTemplate_PrivateIpAddProperty

type CfnLaunchTemplate_PrivateIpAddProperty struct {
	// Indicates whether the private IPv4 address is the primary private IPv4 address.
	//
	// Only one IPv4 address can be designated as primary.
	Primary interface{} `json:"primary" yaml:"primary"`
	// The private IPv4 addresses.
	PrivateIpAddress *string `json:"privateIpAddress" yaml:"privateIpAddress"`
}

Specifies a secondary private IPv4 address for a network interface.

`PrivateIpAdd` is a property of [AWS::EC2::LaunchTemplate NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_SpotOptionsProperty

type CfnLaunchTemplate_SpotOptionsProperty struct {
	// The required duration for the Spot Instances (also known as Spot blocks), in minutes.
	//
	// This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360).
	BlockDurationMinutes *float64 `json:"blockDurationMinutes" yaml:"blockDurationMinutes"`
	// The behavior when a Spot Instance is interrupted.
	//
	// The default is `terminate` .
	InstanceInterruptionBehavior *string `json:"instanceInterruptionBehavior" yaml:"instanceInterruptionBehavior"`
	// The maximum hourly price you're willing to pay for the Spot Instances.
	MaxPrice *string `json:"maxPrice" yaml:"maxPrice"`
	// The Spot Instance request type.
	//
	// If you are using Spot Instances with an Auto Scaling group, use `one-time` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity.
	SpotInstanceType *string `json:"spotInstanceType" yaml:"spotInstanceType"`
	// The end date of the request.
	//
	// For a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached. The default end date is 7 days from the current date.
	ValidUntil *string `json:"validUntil" yaml:"validUntil"`
}

Specifies options for Spot Instances.

`SpotOptions` is a property of [AWS::EC2::LaunchTemplate InstanceMarketOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_TagSpecificationProperty

type CfnLaunchTemplate_TagSpecificationProperty struct {
	// The type of resource to tag.
	//
	// Currently, the resource types that support tagging on creation are `instance` and `volume` . To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html) .
	//
	// *Conditional* : Required if tags are set.
	ResourceType *string `json:"resourceType" yaml:"resourceType"`
	// The tags to apply to the resource.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Specifies the tags to apply to a resource when the resource is created for the launch template.

`TagSpecification` is a property type of [`TagSpecifications`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications) . [`TagSpecifications`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications) is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) .

TODO: EXAMPLE

type CfnLaunchTemplate_TotalLocalStorageGBProperty

type CfnLaunchTemplate_TotalLocalStorageGBProperty struct {
	// The maximum amount of total local storage, in GB.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum amount of total local storage, in GB.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum amount of total local storage, in GB.

TODO: EXAMPLE

type CfnLaunchTemplate_VCpuCountProperty

type CfnLaunchTemplate_VCpuCountProperty struct {
	// The maximum number of vCPUs.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum number of vCPUs.
	//
	// To specify no minimum limit, specify `0` .
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum number of vCPUs.

TODO: EXAMPLE

type CfnLocalGatewayRoute

type CfnLocalGatewayRoute interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrState() *string
	AttrType() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DestinationCidrBlock() *string
	SetDestinationCidrBlock(val *string)
	LocalGatewayRouteTableId() *string
	SetLocalGatewayRouteTableId(val *string)
	LocalGatewayVirtualInterfaceGroupId() *string
	SetLocalGatewayVirtualInterfaceGroupId(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::LocalGatewayRoute`.

Creates a static route for the specified local gateway route table.

TODO: EXAMPLE

func NewCfnLocalGatewayRoute

func NewCfnLocalGatewayRoute(scope constructs.Construct, id *string, props *CfnLocalGatewayRouteProps) CfnLocalGatewayRoute

Create a new `AWS::EC2::LocalGatewayRoute`.

type CfnLocalGatewayRouteProps

type CfnLocalGatewayRouteProps struct {
	// The CIDR block used for destination matches.
	DestinationCidrBlock *string `json:"destinationCidrBlock" yaml:"destinationCidrBlock"`
	// The ID of the local gateway route table.
	LocalGatewayRouteTableId *string `json:"localGatewayRouteTableId" yaml:"localGatewayRouteTableId"`
	// The ID of the virtual interface group.
	LocalGatewayVirtualInterfaceGroupId *string `json:"localGatewayVirtualInterfaceGroupId" yaml:"localGatewayVirtualInterfaceGroupId"`
}

Properties for defining a `CfnLocalGatewayRoute`.

TODO: EXAMPLE

type CfnLocalGatewayRouteTableVPCAssociation

type CfnLocalGatewayRouteTableVPCAssociation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrLocalGatewayId() *string
	AttrLocalGatewayRouteTableVpcAssociationId() *string
	AttrState() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LocalGatewayRouteTableId() *string
	SetLocalGatewayRouteTableId(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	VpcId() *string
	SetVpcId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::LocalGatewayRouteTableVPCAssociation`.

Associates the specified VPC with the specified local gateway route table.

TODO: EXAMPLE

func NewCfnLocalGatewayRouteTableVPCAssociation

func NewCfnLocalGatewayRouteTableVPCAssociation(scope constructs.Construct, id *string, props *CfnLocalGatewayRouteTableVPCAssociationProps) CfnLocalGatewayRouteTableVPCAssociation

Create a new `AWS::EC2::LocalGatewayRouteTableVPCAssociation`.

type CfnLocalGatewayRouteTableVPCAssociationProps

type CfnLocalGatewayRouteTableVPCAssociationProps struct {
	// The ID of the local gateway route table.
	LocalGatewayRouteTableId *string `json:"localGatewayRouteTableId" yaml:"localGatewayRouteTableId"`
	// The ID of the VPC.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// The tags assigned to the association.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnLocalGatewayRouteTableVPCAssociation`.

TODO: EXAMPLE

type CfnNatGateway

type CfnNatGateway interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AllocationId() *string
	SetAllocationId(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	ConnectivityType() *string
	SetConnectivityType(val *string)
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	SubnetId() *string
	SetSubnetId(val *string)
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::NatGateway`.

Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.

With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway.

If you add a default route ( `AWS::EC2::Route` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's `NatGatewayId` property.

For more information, see [NAT Gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide* .

TODO: EXAMPLE

func NewCfnNatGateway

func NewCfnNatGateway(scope constructs.Construct, id *string, props *CfnNatGatewayProps) CfnNatGateway

Create a new `AWS::EC2::NatGateway`.

type CfnNatGatewayProps

type CfnNatGatewayProps struct {
	// The ID of the subnet in which the NAT gateway is located.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
	// [Public NAT gateway only] The allocation ID of the Elastic IP address that's associated with the NAT gateway.
	AllocationId *string `json:"allocationId" yaml:"allocationId"`
	// Indicates whether the NAT gateway supports public or private connectivity.
	ConnectivityType *string `json:"connectivityType" yaml:"connectivityType"`
	// The tags for the NAT gateway.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnNatGateway`.

TODO: EXAMPLE

type CfnNetworkAcl

type CfnNetworkAcl interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	VpcId() *string
	SetVpcId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::NetworkAcl`.

Specifies a network ACL for your VPC.

TODO: EXAMPLE

func NewCfnNetworkAcl

func NewCfnNetworkAcl(scope constructs.Construct, id *string, props *CfnNetworkAclProps) CfnNetworkAcl

Create a new `AWS::EC2::NetworkAcl`.

type CfnNetworkAclEntry

type CfnNetworkAclEntry interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CidrBlock() *string
	SetCidrBlock(val *string)
	CreationStack() *[]*string
	Egress() interface{}
	SetEgress(val interface{})
	Icmp() interface{}
	SetIcmp(val interface{})
	Ipv6CidrBlock() *string
	SetIpv6CidrBlock(val *string)
	LogicalId() *string
	NetworkAclId() *string
	SetNetworkAclId(val *string)
	Node() constructs.Node
	PortRange() interface{}
	SetPortRange(val interface{})
	Protocol() *float64
	SetProtocol(val *float64)
	Ref() *string
	RuleAction() *string
	SetRuleAction(val *string)
	RuleNumber() *float64
	SetRuleNumber(val *float64)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::NetworkAclEntry`.

Specifies an entry, known as a rule, in a network ACL with a rule number you specify. Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules.

For information about the protocol value, see [Protocol Numbers](https://docs.aws.amazon.com/https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml) on the Internet Assigned Numbers Authority (IANA) website.

TODO: EXAMPLE

func NewCfnNetworkAclEntry

func NewCfnNetworkAclEntry(scope constructs.Construct, id *string, props *CfnNetworkAclEntryProps) CfnNetworkAclEntry

Create a new `AWS::EC2::NetworkAclEntry`.

type CfnNetworkAclEntryProps

type CfnNetworkAclEntryProps struct {
	// The ID of the ACL for the entry.
	NetworkAclId *string `json:"networkAclId" yaml:"networkAclId"`
	// The IP protocol that the rule applies to.
	//
	// You must specify -1 or a protocol number. You can specify -1 for all protocols.
	//
	// > If you specify -1, all ports are opened and the `PortRange` property is ignored.
	Protocol *float64 `json:"protocol" yaml:"protocol"`
	// Whether to allow or deny traffic that matches the rule;
	//
	// valid values are "allow" or "deny".
	RuleAction *string `json:"ruleAction" yaml:"ruleAction"`
	// Rule number to assign to the entry, such as 100.
	//
	// ACL entries are processed in ascending order by rule number. Entries can't use the same rule number unless one is an egress rule and the other is an ingress rule.
	RuleNumber *float64 `json:"ruleNumber" yaml:"ruleNumber"`
	// The IPv4 CIDR range to allow or deny, in CIDR notation (for example, 172.16.0.0/24). Requirement is conditional: You must specify the `CidrBlock` or `Ipv6CidrBlock` property.
	CidrBlock *string `json:"cidrBlock" yaml:"cidrBlock"`
	// Whether this rule applies to egress traffic from the subnet ( `true` ) or ingress traffic to the subnet ( `false` ).
	//
	// By default, AWS CloudFormation specifies `false` .
	Egress interface{} `json:"egress" yaml:"egress"`
	// The Internet Control Message Protocol (ICMP) code and type.
	//
	// Requirement is conditional: Required if specifying 1 (ICMP) for the protocol parameter.
	Icmp interface{} `json:"icmp" yaml:"icmp"`
	// The IPv6 network range to allow or deny, in CIDR notation.
	//
	// Requirement is conditional: You must specify the `CidrBlock` or `Ipv6CidrBlock` property.
	Ipv6CidrBlock *string `json:"ipv6CidrBlock" yaml:"ipv6CidrBlock"`
	// The range of port numbers for the UDP/TCP protocol.
	//
	// Conditional required if specifying 6 (TCP) or 17 (UDP) for the protocol parameter.
	PortRange interface{} `json:"portRange" yaml:"portRange"`
}

Properties for defining a `CfnNetworkAclEntry`.

TODO: EXAMPLE

type CfnNetworkAclEntry_IcmpProperty

type CfnNetworkAclEntry_IcmpProperty struct {
	// The Internet Control Message Protocol (ICMP) code.
	//
	// You can use -1 to specify all ICMP codes for the given ICMP type. Requirement is conditional: Required if you specify 1 (ICMP) for the protocol parameter.
	Code *float64 `json:"code" yaml:"code"`
	// The Internet Control Message Protocol (ICMP) type.
	//
	// You can use -1 to specify all ICMP types. Conditional requirement: Required if you specify 1 (ICMP) for the `CreateNetworkAclEntry` protocol parameter.
	Type *float64 `json:"type" yaml:"type"`
}

Describes the ICMP type and code.

TODO: EXAMPLE

type CfnNetworkAclEntry_PortRangeProperty

type CfnNetworkAclEntry_PortRangeProperty struct {
	// The first port in the range.
	//
	// Required if you specify 6 (TCP) or 17 (UDP) for the protocol parameter.
	From *float64 `json:"from" yaml:"from"`
	// The last port in the range.
	//
	// Required if you specify 6 (TCP) or 17 (UDP) for the protocol parameter.
	To *float64 `json:"to" yaml:"to"`
}

Describes a range of ports.

TODO: EXAMPLE

type CfnNetworkAclProps

type CfnNetworkAclProps struct {
	// The ID of the VPC for the network ACL.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// The tags for the network ACL.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnNetworkAcl`.

TODO: EXAMPLE

type CfnNetworkInsightsAccessScope added in v2.9.0

type CfnNetworkInsightsAccessScope interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrCreatedDate() *string
	AttrNetworkInsightsAccessScopeArn() *string
	AttrNetworkInsightsAccessScopeId() *string
	AttrUpdatedDate() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	ExcludePaths() interface{}
	SetExcludePaths(val interface{})
	LogicalId() *string
	MatchPaths() interface{}
	SetMatchPaths(val interface{})
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::NetworkInsightsAccessScope`.

Describes a Network Access Scope. A Network Access Scope defines outbound (egress) and inbound (ingress) traffic patterns, including sources, destinations, paths, and traffic types.

Network Access Analyzer identifies unintended network access to your resources on AWS . When you start an analysis on a Network Access Scope, Network Access Analyzer produces findings. For more information, see the [Network Access Analyzer User Guide](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/) .

TODO: EXAMPLE

func NewCfnNetworkInsightsAccessScope added in v2.9.0

func NewCfnNetworkInsightsAccessScope(scope constructs.Construct, id *string, props *CfnNetworkInsightsAccessScopeProps) CfnNetworkInsightsAccessScope

Create a new `AWS::EC2::NetworkInsightsAccessScope`.

type CfnNetworkInsightsAccessScopeAnalysis added in v2.9.0

type CfnNetworkInsightsAccessScopeAnalysis interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrAnalyzedEniCount() *float64
	AttrEndDate() *string
	AttrFindingsFound() *string
	AttrNetworkInsightsAccessScopeAnalysisArn() *string
	AttrNetworkInsightsAccessScopeAnalysisId() *string
	AttrStartDate() *string
	AttrStatus() *string
	AttrStatusMessage() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	NetworkInsightsAccessScopeId() *string
	SetNetworkInsightsAccessScopeId(val *string)
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::NetworkInsightsAccessScopeAnalysis`.

Describes a Network Access Scope analysis.

TODO: EXAMPLE

func NewCfnNetworkInsightsAccessScopeAnalysis added in v2.9.0

func NewCfnNetworkInsightsAccessScopeAnalysis(scope constructs.Construct, id *string, props *CfnNetworkInsightsAccessScopeAnalysisProps) CfnNetworkInsightsAccessScopeAnalysis

Create a new `AWS::EC2::NetworkInsightsAccessScopeAnalysis`.

type CfnNetworkInsightsAccessScopeAnalysisProps added in v2.9.0

type CfnNetworkInsightsAccessScopeAnalysisProps struct {
	// The ID of the Network Access Scope.
	NetworkInsightsAccessScopeId *string `json:"networkInsightsAccessScopeId" yaml:"networkInsightsAccessScopeId"`
	// The tags.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnNetworkInsightsAccessScopeAnalysis`.

TODO: EXAMPLE

type CfnNetworkInsightsAccessScopeProps added in v2.9.0

type CfnNetworkInsightsAccessScopeProps struct {
	// The paths to exclude.
	ExcludePaths interface{} `json:"excludePaths" yaml:"excludePaths"`
	// The paths to match.
	MatchPaths interface{} `json:"matchPaths" yaml:"matchPaths"`
	// The tags.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnNetworkInsightsAccessScope`.

TODO: EXAMPLE

type CfnNetworkInsightsAccessScope_AccessScopePathRequestProperty added in v2.9.0

type CfnNetworkInsightsAccessScope_AccessScopePathRequestProperty struct {
	// The destination.
	Destination interface{} `json:"destination" yaml:"destination"`
	// The source.
	Source interface{} `json:"source" yaml:"source"`
	// The through resources.
	ThroughResources interface{} `json:"throughResources" yaml:"throughResources"`
}

Describes a path.

TODO: EXAMPLE

type CfnNetworkInsightsAccessScope_PacketHeaderStatementRequestProperty added in v2.9.0

type CfnNetworkInsightsAccessScope_PacketHeaderStatementRequestProperty struct {
	// The destination addresses.
	DestinationAddresses *[]*string `json:"destinationAddresses" yaml:"destinationAddresses"`
	// The destination ports.
	DestinationPorts *[]*string `json:"destinationPorts" yaml:"destinationPorts"`
	// The destination prefix lists.
	DestinationPrefixLists *[]*string `json:"destinationPrefixLists" yaml:"destinationPrefixLists"`
	// The protocols.
	Protocols *[]*string `json:"protocols" yaml:"protocols"`
	// The source addresses.
	SourceAddresses *[]*string `json:"sourceAddresses" yaml:"sourceAddresses"`
	// The source ports.
	SourcePorts *[]*string `json:"sourcePorts" yaml:"sourcePorts"`
	// The source prefix lists.
	SourcePrefixLists *[]*string `json:"sourcePrefixLists" yaml:"sourcePrefixLists"`
}

Describes a packet header statement.

TODO: EXAMPLE

type CfnNetworkInsightsAccessScope_PathStatementRequestProperty added in v2.9.0

type CfnNetworkInsightsAccessScope_PathStatementRequestProperty struct {
	// The packet header statement.
	PacketHeaderStatement interface{} `json:"packetHeaderStatement" yaml:"packetHeaderStatement"`
	// The resource statement.
	ResourceStatement interface{} `json:"resourceStatement" yaml:"resourceStatement"`
}

Describes a path statement.

TODO: EXAMPLE

type CfnNetworkInsightsAccessScope_ResourceStatementRequestProperty added in v2.9.0

type CfnNetworkInsightsAccessScope_ResourceStatementRequestProperty struct {
	// The resources.
	Resources *[]*string `json:"resources" yaml:"resources"`
	// The resource types.
	ResourceTypes *[]*string `json:"resourceTypes" yaml:"resourceTypes"`
}

Describes a resource statement.

TODO: EXAMPLE

type CfnNetworkInsightsAccessScope_ThroughResourcesStatementRequestProperty added in v2.9.0

type CfnNetworkInsightsAccessScope_ThroughResourcesStatementRequestProperty struct {
	// The resource statement.
	ResourceStatement interface{} `json:"resourceStatement" yaml:"resourceStatement"`
}

Describes a through resource statement.

TODO: EXAMPLE

type CfnNetworkInsightsAnalysis

type CfnNetworkInsightsAnalysis interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrAlternatePathHints() awscdk.IResolvable
	AttrExplanations() awscdk.IResolvable
	AttrForwardPathComponents() awscdk.IResolvable
	AttrNetworkInsightsAnalysisArn() *string
	AttrNetworkInsightsAnalysisId() *string
	AttrNetworkPathFound() awscdk.IResolvable
	AttrReturnPathComponents() awscdk.IResolvable
	AttrStartDate() *string
	AttrStatus() *string
	AttrStatusMessage() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	FilterInArns() *[]*string
	SetFilterInArns(val *[]*string)
	LogicalId() *string
	NetworkInsightsPathId() *string
	SetNetworkInsightsPathId(val *string)
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::NetworkInsightsAnalysis`.

Specifies a network insights analysis.

TODO: EXAMPLE

func NewCfnNetworkInsightsAnalysis

func NewCfnNetworkInsightsAnalysis(scope constructs.Construct, id *string, props *CfnNetworkInsightsAnalysisProps) CfnNetworkInsightsAnalysis

Create a new `AWS::EC2::NetworkInsightsAnalysis`.

type CfnNetworkInsightsAnalysisProps

type CfnNetworkInsightsAnalysisProps struct {
	// The ID of the path.
	NetworkInsightsPathId *string `json:"networkInsightsPathId" yaml:"networkInsightsPathId"`
	// The Amazon Resource Names (ARN) of the resources that the path must traverse.
	FilterInArns *[]*string `json:"filterInArns" yaml:"filterInArns"`
	// The tags to apply.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnNetworkInsightsAnalysis`.

TODO: EXAMPLE

type CfnNetworkInsightsAnalysis_AlternatePathHintProperty

type CfnNetworkInsightsAnalysis_AlternatePathHintProperty struct {
	// The Amazon Resource Name (ARN) of the component.
	ComponentArn *string `json:"componentArn" yaml:"componentArn"`
	// The ID of the component.
	ComponentId *string `json:"componentId" yaml:"componentId"`
}

Describes an potential intermediate component of a feasible path.

TODO: EXAMPLE

type CfnNetworkInsightsAnalysis_AnalysisAclRuleProperty

type CfnNetworkInsightsAnalysis_AnalysisAclRuleProperty struct {
	// The IPv4 address range, in CIDR notation.
	Cidr *string `json:"cidr" yaml:"cidr"`
	// Indicates whether the rule is an outbound rule.
	Egress interface{} `json:"egress" yaml:"egress"`
	// The range of ports.
	PortRange interface{} `json:"portRange" yaml:"portRange"`
	// The protocol.
	Protocol *string `json:"protocol" yaml:"protocol"`
	// Indicates whether to allow or deny traffic that matches the rule.
	RuleAction *string `json:"ruleAction" yaml:"ruleAction"`
	// The rule number.
	RuleNumber *float64 `json:"ruleNumber" yaml:"ruleNumber"`
}

Describes a network access control (ACL) rule.

TODO: EXAMPLE

type CfnNetworkInsightsAnalysis_AnalysisComponentProperty

type CfnNetworkInsightsAnalysis_AnalysisComponentProperty struct {
	// The Amazon Resource Name (ARN) of the component.
	Arn *string `json:"arn" yaml:"arn"`
	// The ID of the component.
	Id *string `json:"id" yaml:"id"`
}

Describes a path component.

TODO: EXAMPLE

type CfnNetworkInsightsAnalysis_AnalysisLoadBalancerListenerProperty

type CfnNetworkInsightsAnalysis_AnalysisLoadBalancerListenerProperty struct {
	// [Classic Load Balancers] The back-end port for the listener.
	InstancePort *float64 `json:"instancePort" yaml:"instancePort"`
	// The port on which the load balancer is listening.
	LoadBalancerPort *float64 `json:"loadBalancerPort" yaml:"loadBalancerPort"`
}

Describes a load balancer listener.

TODO: EXAMPLE

type CfnNetworkInsightsAnalysis_AnalysisLoadBalancerTargetProperty

type CfnNetworkInsightsAnalysis_AnalysisLoadBalancerTargetProperty struct {
	// The IP address.
	Address *string `json:"address" yaml:"address"`
	// The Availability Zone.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// Information about the instance.
	Instance interface{} `json:"instance" yaml:"instance"`
	// The port on which the target is listening.
	Port *float64 `json:"port" yaml:"port"`
}

Describes a load balancer target.

TODO: EXAMPLE

type CfnNetworkInsightsAnalysis_AnalysisPacketHeaderProperty

type CfnNetworkInsightsAnalysis_AnalysisPacketHeaderProperty struct {
	// The destination addresses.
	DestinationAddresses *[]*string `json:"destinationAddresses" yaml:"destinationAddresses"`
	// The destination port ranges.
	DestinationPortRanges interface{} `json:"destinationPortRanges" yaml:"destinationPortRanges"`
	// The protocol.
	Protocol *string `json:"protocol" yaml:"protocol"`
	// The source addresses.
	SourceAddresses *[]*string `json:"sourceAddresses" yaml:"sourceAddresses"`
	// The source port ranges.
	SourcePortRanges interface{} `json:"sourcePortRanges" yaml:"sourcePortRanges"`
}

Describes a header.

Reflects any changes made by a component as traffic passes through. The fields of an inbound header are null except for the first component of a path.

TODO: EXAMPLE

type CfnNetworkInsightsAnalysis_AnalysisRouteTableRouteProperty

type CfnNetworkInsightsAnalysis_AnalysisRouteTableRouteProperty struct {
	// The destination IPv4 address, in CIDR notation.
	DestinationCidr *string `json:"destinationCidr" yaml:"destinationCidr"`
	// The prefix of the AWS service .
	DestinationPrefixListId *string `json:"destinationPrefixListId" yaml:"destinationPrefixListId"`
	// The ID of an egress-only internet gateway.
	EgressOnlyInternetGatewayId *string `json:"egressOnlyInternetGatewayId" yaml:"egressOnlyInternetGatewayId"`
	// The ID of the gateway, such as an internet gateway or virtual private gateway.
	GatewayId *string `json:"gatewayId" yaml:"gatewayId"`
	// The ID of the instance, such as a NAT instance.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
	// The ID of a NAT gateway.
	NatGatewayId *string `json:"natGatewayId" yaml:"natGatewayId"`
	// The ID of a network interface.
	NetworkInterfaceId *string `json:"networkInterfaceId" yaml:"networkInterfaceId"`
	// Describes how the route was created. The following are possible values:.
	//
	// - `CreateRouteTable` - The route was automatically created when the route table was created.
	// - `CreateRoute` - The route was manually added to the route table.
	// - `EnableVgwRoutePropagation` - The route was propagated by route propagation.
	Origin *string `json:"origin" yaml:"origin"`
	// The ID of a transit gateway.
	TransitGatewayId *string `json:"transitGatewayId" yaml:"transitGatewayId"`
	// The ID of a VPC peering connection.
	VpcPeeringConnectionId *string `json:"vpcPeeringConnectionId" yaml:"vpcPeeringConnectionId"`
}

Describes a route table route.

TODO: EXAMPLE

type CfnNetworkInsightsAnalysis_AnalysisSecurityGroupRuleProperty

type CfnNetworkInsightsAnalysis_AnalysisSecurityGroupRuleProperty struct {
	// The IPv4 address range, in CIDR notation.
	Cidr *string `json:"cidr" yaml:"cidr"`
	// The direction. The following are possible values:.
	//
	// - egress
	// - ingress
	Direction *string `json:"direction" yaml:"direction"`
	// The port range.
	PortRange interface{} `json:"portRange" yaml:"portRange"`
	// The prefix list ID.
	PrefixListId *string `json:"prefixListId" yaml:"prefixListId"`
	// The protocol name.
	Protocol *string `json:"protocol" yaml:"protocol"`
	// The security group ID.
	SecurityGroupId *string `json:"securityGroupId" yaml:"securityGroupId"`
}

Describes a security group rule.

TODO: EXAMPLE

type CfnNetworkInsightsAnalysis_ExplanationProperty

type CfnNetworkInsightsAnalysis_ExplanationProperty struct {
	// The network ACL.
	Acl interface{} `json:"acl" yaml:"acl"`
	// The network ACL rule.
	AclRule interface{} `json:"aclRule" yaml:"aclRule"`
	// The IPv4 address, in CIDR notation.
	Address *string `json:"address" yaml:"address"`
	// The IPv4 addresses, in CIDR notation.
	Addresses *[]*string `json:"addresses" yaml:"addresses"`
	// The resource to which the component is attached.
	AttachedTo interface{} `json:"attachedTo" yaml:"attachedTo"`
	// The Availability Zones.
	AvailabilityZones *[]*string `json:"availabilityZones" yaml:"availabilityZones"`
	// The CIDR ranges.
	Cidrs *[]*string `json:"cidrs" yaml:"cidrs"`
	// The listener for a Classic Load Balancer.
	ClassicLoadBalancerListener interface{} `json:"classicLoadBalancerListener" yaml:"classicLoadBalancerListener"`
	// The component.
	Component interface{} `json:"component" yaml:"component"`
	// The customer gateway.
	CustomerGateway interface{} `json:"customerGateway" yaml:"customerGateway"`
	// The destination.
	Destination interface{} `json:"destination" yaml:"destination"`
	// The destination VPC.
	DestinationVpc interface{} `json:"destinationVpc" yaml:"destinationVpc"`
	// The direction. The following are possible values:.
	//
	// - egress
	// - ingress
	Direction *string `json:"direction" yaml:"direction"`
	// The load balancer listener.
	ElasticLoadBalancerListener interface{} `json:"elasticLoadBalancerListener" yaml:"elasticLoadBalancerListener"`
	// The explanation code.
	ExplanationCode *string `json:"explanationCode" yaml:"explanationCode"`
	// The route table.
	IngressRouteTable interface{} `json:"ingressRouteTable" yaml:"ingressRouteTable"`
	// The internet gateway.
	InternetGateway interface{} `json:"internetGateway" yaml:"internetGateway"`
	// The Amazon Resource Name (ARN) of the load balancer.
	LoadBalancerArn *string `json:"loadBalancerArn" yaml:"loadBalancerArn"`
	// The listener port of the load balancer.
	LoadBalancerListenerPort *float64 `json:"loadBalancerListenerPort" yaml:"loadBalancerListenerPort"`
	// The target.
	LoadBalancerTarget interface{} `json:"loadBalancerTarget" yaml:"loadBalancerTarget"`
	// The target group.
	LoadBalancerTargetGroup interface{} `json:"loadBalancerTargetGroup" yaml:"loadBalancerTargetGroup"`
	// The target groups.
	LoadBalancerTargetGroups interface{} `json:"loadBalancerTargetGroups" yaml:"loadBalancerTargetGroups"`
	// The target port.
	LoadBalancerTargetPort *float64 `json:"loadBalancerTargetPort" yaml:"loadBalancerTargetPort"`
	// The missing component.
	MissingComponent *string `json:"missingComponent" yaml:"missingComponent"`
	// The NAT gateway.
	NatGateway interface{} `json:"natGateway" yaml:"natGateway"`
	// The network interface.
	NetworkInterface interface{} `json:"networkInterface" yaml:"networkInterface"`
	// The packet field.
	PacketField *string `json:"packetField" yaml:"packetField"`
	// The port.
	Port *float64 `json:"port" yaml:"port"`
	// The port ranges.
	PortRanges interface{} `json:"portRanges" yaml:"portRanges"`
	// The prefix list.
	PrefixList interface{} `json:"prefixList" yaml:"prefixList"`
	// The protocols.
	Protocols *[]*string `json:"protocols" yaml:"protocols"`
	// The route table.
	RouteTable interface{} `json:"routeTable" yaml:"routeTable"`
	// The route table route.
	RouteTableRoute interface{} `json:"routeTableRoute" yaml:"routeTableRoute"`
	// The security group.
	SecurityGroup interface{} `json:"securityGroup" yaml:"securityGroup"`
	// The security group rule.
	SecurityGroupRule interface{} `json:"securityGroupRule" yaml:"securityGroupRule"`
	// The security groups.
	SecurityGroups interface{} `json:"securityGroups" yaml:"securityGroups"`
	// The source VPC.
	SourceVpc interface{} `json:"sourceVpc" yaml:"sourceVpc"`
	// The state.
	State *string `json:"state" yaml:"state"`
	// The subnet.
	Subnet interface{} `json:"subnet" yaml:"subnet"`
	// The route table for the subnet.
	SubnetRouteTable interface{} `json:"subnetRouteTable" yaml:"subnetRouteTable"`
	// The component VPC.
	Vpc interface{} `json:"vpc" yaml:"vpc"`
	// The VPC endpoint.
	VpcEndpoint interface{} `json:"vpcEndpoint" yaml:"vpcEndpoint"`
	// The VPC peering connection.
	VpcPeeringConnection interface{} `json:"vpcPeeringConnection" yaml:"vpcPeeringConnection"`
	// The VPN connection.
	VpnConnection interface{} `json:"vpnConnection" yaml:"vpnConnection"`
	// The VPN gateway.
	VpnGateway interface{} `json:"vpnGateway" yaml:"vpnGateway"`
}

Describes an explanation code for an unreachable path.

For more information, see [Reachability Analyzer explanation codes](https://docs.aws.amazon.com/vpc/latest/reachability/explanation-codes.html) .

TODO: EXAMPLE

type CfnNetworkInsightsAnalysis_PathComponentProperty

type CfnNetworkInsightsAnalysis_PathComponentProperty struct {
	// The network ACL rule.
	AclRule interface{} `json:"aclRule" yaml:"aclRule"`
	// The component.
	Component interface{} `json:"component" yaml:"component"`
	// The destination VPC.
	DestinationVpc interface{} `json:"destinationVpc" yaml:"destinationVpc"`
	// The inbound header.
	InboundHeader interface{} `json:"inboundHeader" yaml:"inboundHeader"`
	// The outbound header.
	OutboundHeader interface{} `json:"outboundHeader" yaml:"outboundHeader"`
	// The route table route.
	RouteTableRoute interface{} `json:"routeTableRoute" yaml:"routeTableRoute"`
	// The security group rule.
	SecurityGroupRule interface{} `json:"securityGroupRule" yaml:"securityGroupRule"`
	// The sequence number.
	SequenceNumber *float64 `json:"sequenceNumber" yaml:"sequenceNumber"`
	// The source VPC.
	SourceVpc interface{} `json:"sourceVpc" yaml:"sourceVpc"`
	// The subnet.
	Subnet interface{} `json:"subnet" yaml:"subnet"`
	// The component VPC.
	Vpc interface{} `json:"vpc" yaml:"vpc"`
}

Describes a path component.

TODO: EXAMPLE

type CfnNetworkInsightsAnalysis_PortRangeProperty

type CfnNetworkInsightsAnalysis_PortRangeProperty struct {
	// The first port in the range.
	From *float64 `json:"from" yaml:"from"`
	// The last port in the range.
	To *float64 `json:"to" yaml:"to"`
}

Describes a range of ports.

TODO: EXAMPLE

type CfnNetworkInsightsPath

type CfnNetworkInsightsPath interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrCreatedDate() *string
	AttrNetworkInsightsPathArn() *string
	AttrNetworkInsightsPathId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Destination() *string
	SetDestination(val *string)
	DestinationIp() *string
	SetDestinationIp(val *string)
	DestinationPort() *float64
	SetDestinationPort(val *float64)
	LogicalId() *string
	Node() constructs.Node
	Protocol() *string
	SetProtocol(val *string)
	Ref() *string
	Source() *string
	SetSource(val *string)
	SourceIp() *string
	SetSourceIp(val *string)
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::NetworkInsightsPath`.

Specifies a path to analyze for reachability.

VPC Reachability Analyzer enables you to analyze and debug network reachability between two resources in your virtual private cloud (VPC). For more information, see the [Reachability Analyzer User Guide](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) .

TODO: EXAMPLE

func NewCfnNetworkInsightsPath

func NewCfnNetworkInsightsPath(scope constructs.Construct, id *string, props *CfnNetworkInsightsPathProps) CfnNetworkInsightsPath

Create a new `AWS::EC2::NetworkInsightsPath`.

type CfnNetworkInsightsPathProps

type CfnNetworkInsightsPathProps struct {
	// The AWS resource that is the destination of the path.
	Destination *string `json:"destination" yaml:"destination"`
	// The protocol.
	Protocol *string `json:"protocol" yaml:"protocol"`
	// The AWS resource that is the source of the path.
	Source *string `json:"source" yaml:"source"`
	// The IP address of the AWS resource that is the destination of the path.
	DestinationIp *string `json:"destinationIp" yaml:"destinationIp"`
	// The destination port.
	DestinationPort *float64 `json:"destinationPort" yaml:"destinationPort"`
	// The IP address of the AWS resource that is the source of the path.
	SourceIp *string `json:"sourceIp" yaml:"sourceIp"`
	// The tags to add to the path.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnNetworkInsightsPath`.

TODO: EXAMPLE

type CfnNetworkInterface

type CfnNetworkInterface interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrId() *string
	AttrPrimaryPrivateIpAddress() *string
	AttrSecondaryPrivateIpAddresses() *[]*string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	GroupSet() *[]*string
	SetGroupSet(val *[]*string)
	InterfaceType() *string
	SetInterfaceType(val *string)
	Ipv6AddressCount() *float64
	SetIpv6AddressCount(val *float64)
	Ipv6Addresses() interface{}
	SetIpv6Addresses(val interface{})
	LogicalId() *string
	Node() constructs.Node
	PrivateIpAddress() *string
	SetPrivateIpAddress(val *string)
	PrivateIpAddresses() interface{}
	SetPrivateIpAddresses(val interface{})
	Ref() *string
	SecondaryPrivateIpAddressCount() *float64
	SetSecondaryPrivateIpAddressCount(val *float64)
	SourceDestCheck() interface{}
	SetSourceDestCheck(val interface{})
	Stack() awscdk.Stack
	SubnetId() *string
	SetSubnetId(val *string)
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::NetworkInterface`.

Describes a network interface in an Amazon EC2 instance for AWS CloudFormation .

TODO: EXAMPLE

func NewCfnNetworkInterface

func NewCfnNetworkInterface(scope constructs.Construct, id *string, props *CfnNetworkInterfaceProps) CfnNetworkInterface

Create a new `AWS::EC2::NetworkInterface`.

type CfnNetworkInterfaceAttachment

type CfnNetworkInterfaceAttachment interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DeleteOnTermination() interface{}
	SetDeleteOnTermination(val interface{})
	DeviceIndex() *string
	SetDeviceIndex(val *string)
	InstanceId() *string
	SetInstanceId(val *string)
	LogicalId() *string
	NetworkInterfaceId() *string
	SetNetworkInterfaceId(val *string)
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::NetworkInterfaceAttachment`.

Attaches an elastic network interface (ENI) to an Amazon EC2 instance. You can use this resource type to attach additional network interfaces to an instance without interruption.

TODO: EXAMPLE

func NewCfnNetworkInterfaceAttachment

func NewCfnNetworkInterfaceAttachment(scope constructs.Construct, id *string, props *CfnNetworkInterfaceAttachmentProps) CfnNetworkInterfaceAttachment

Create a new `AWS::EC2::NetworkInterfaceAttachment`.

type CfnNetworkInterfaceAttachmentProps

type CfnNetworkInterfaceAttachmentProps struct {
	// The network interface's position in the attachment order.
	//
	// For example, the first attached network interface has a `DeviceIndex` of 0.
	DeviceIndex *string `json:"deviceIndex" yaml:"deviceIndex"`
	// The ID of the instance to which you will attach the ENI.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
	// The ID of the ENI that you want to attach.
	NetworkInterfaceId *string `json:"networkInterfaceId" yaml:"networkInterfaceId"`
	// Whether to delete the network interface when the instance terminates.
	//
	// By default, this value is set to `true` .
	DeleteOnTermination interface{} `json:"deleteOnTermination" yaml:"deleteOnTermination"`
}

Properties for defining a `CfnNetworkInterfaceAttachment`.

TODO: EXAMPLE

type CfnNetworkInterfacePermission

type CfnNetworkInterfacePermission interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AwsAccountId() *string
	SetAwsAccountId(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	NetworkInterfaceId() *string
	SetNetworkInterfaceId(val *string)
	Node() constructs.Node
	Permission() *string
	SetPermission(val *string)
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::NetworkInterfacePermission`.

Specifies a permission for an Amazon EC2 network interface. For example, you can grant an AWS authorized partner account permission to attach the specified network interface to an instance in their account.

TODO: EXAMPLE

func NewCfnNetworkInterfacePermission

func NewCfnNetworkInterfacePermission(scope constructs.Construct, id *string, props *CfnNetworkInterfacePermissionProps) CfnNetworkInterfacePermission

Create a new `AWS::EC2::NetworkInterfacePermission`.

type CfnNetworkInterfacePermissionProps

type CfnNetworkInterfacePermissionProps struct {
	// The AWS account ID.
	AwsAccountId *string `json:"awsAccountId" yaml:"awsAccountId"`
	// The ID of the network interface.
	NetworkInterfaceId *string `json:"networkInterfaceId" yaml:"networkInterfaceId"`
	// The type of permission to grant: `INSTANCE-ATTACH` or `EIP-ASSOCIATE` .
	Permission *string `json:"permission" yaml:"permission"`
}

Properties for defining a `CfnNetworkInterfacePermission`.

TODO: EXAMPLE

type CfnNetworkInterfaceProps

type CfnNetworkInterfaceProps struct {
	// The ID of the subnet to associate with the network interface.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
	// A description for the network interface.
	Description *string `json:"description" yaml:"description"`
	// The security group IDs associated with this network interface.
	GroupSet *[]*string `json:"groupSet" yaml:"groupSet"`
	// The type of network interface.
	//
	// The default is `interface` . The supported values are `efa` and `trunk` .
	InterfaceType *string `json:"interfaceType" yaml:"interfaceType"`
	// The number of IPv6 addresses to assign to a network interface.
	//
	// Amazon EC2 automatically selects the IPv6 addresses from the subnet range. To specify specific IPv6 addresses, use the `Ipv6Addresses` property and don't specify this property.
	Ipv6AddressCount *float64 `json:"ipv6AddressCount" yaml:"ipv6AddressCount"`
	// One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to associate with the network interface.
	//
	// If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and don't specify this property.
	Ipv6Addresses interface{} `json:"ipv6Addresses" yaml:"ipv6Addresses"`
	// Assigns a single private IP address to the network interface, which is used as the primary private IP address.
	//
	// If you want to specify multiple private IP address, use the `PrivateIpAddresses` property.
	PrivateIpAddress *string `json:"privateIpAddress" yaml:"privateIpAddress"`
	// Assigns private IP addresses to the network interface.
	//
	// You can specify a primary private IP address by setting the value of the `Primary` property to `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically assign private IP addresses, use the `SecondaryPrivateIpAddressCount` property and do not specify this property.
	PrivateIpAddresses interface{} `json:"privateIpAddresses" yaml:"privateIpAddresses"`
	// The number of secondary private IPv4 addresses to assign to a network interface.
	//
	// When you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR range. You can't specify this option and specify more than one private IP address using `privateIpAddresses` .
	//
	// The number of IP addresses you can assign to a network interface varies by instance type. For more information, see [IP Addresses Per ENI Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) in the *Amazon Virtual Private Cloud User Guide* .
	SecondaryPrivateIpAddressCount *float64 `json:"secondaryPrivateIpAddressCount" yaml:"secondaryPrivateIpAddressCount"`
	// Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives.
	//
	// If the value is `true` , source/destination checks are enabled; otherwise, they are disabled. The default value is `true` . You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls.
	SourceDestCheck interface{} `json:"sourceDestCheck" yaml:"sourceDestCheck"`
	// An arbitrary set of tags (key-value pairs) for this network interface.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnNetworkInterface`.

TODO: EXAMPLE

type CfnNetworkInterface_InstanceIpv6AddressProperty

type CfnNetworkInterface_InstanceIpv6AddressProperty struct {
	// An IPv6 address to associate with the network interface.
	Ipv6Address *string `json:"ipv6Address" yaml:"ipv6Address"`
}

Describes the IPv6 addresses to associate with the network interface.

TODO: EXAMPLE

type CfnNetworkInterface_PrivateIpAddressSpecificationProperty

type CfnNetworkInterface_PrivateIpAddressSpecificationProperty struct {
	// Sets the private IP address as the primary private address.
	//
	// You can set only one primary private IP address. If you don't specify a primary private IP address, Amazon EC2 automatically assigns a primary private IP address.
	Primary interface{} `json:"primary" yaml:"primary"`
	// The private IP address of the network interface.
	PrivateIpAddress *string `json:"privateIpAddress" yaml:"privateIpAddress"`
}

Describes a secondary private IPv4 address for a network interface.

TODO: EXAMPLE

type CfnPlacementGroup

type CfnPlacementGroup interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Strategy() *string
	SetStrategy(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::PlacementGroup`.

Specifies a placement group in which to launch instances. The strategy of the placement group determines how the instances are organized within the group.

A `cluster` placement group is a logical grouping of instances within a single Availability Zone that benefit from low network latency, high network throughput. A `spread` placement group places instances on distinct hardware. A `partition` placement group places groups of instances in different partitions, where instances in one partition do not share the same hardware with instances in another partition.

For more information, see [Placement Groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the *Amazon EC2 User Guide* .

TODO: EXAMPLE

func NewCfnPlacementGroup

func NewCfnPlacementGroup(scope constructs.Construct, id *string, props *CfnPlacementGroupProps) CfnPlacementGroup

Create a new `AWS::EC2::PlacementGroup`.

type CfnPlacementGroupProps

type CfnPlacementGroupProps struct {
	// The placement strategy.
	Strategy *string `json:"strategy" yaml:"strategy"`
}

Properties for defining a `CfnPlacementGroup`.

TODO: EXAMPLE

type CfnPrefixList

type CfnPrefixList interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AddressFamily() *string
	SetAddressFamily(val *string)
	AttrArn() *string
	AttrOwnerId() *string
	AttrPrefixListId() *string
	AttrVersion() *float64
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Entries() interface{}
	SetEntries(val interface{})
	LogicalId() *string
	MaxEntries() *float64
	SetMaxEntries(val *float64)
	Node() constructs.Node
	PrefixListName() *string
	SetPrefixListName(val *string)
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::PrefixList`.

Specifies a managed prefix list. You can add one or more entries to the prefix list. Each entry consists of a CIDR block and an optional description.

You must specify the maximum number of entries for the prefix list. The maximum number of entries cannot be changed later.

TODO: EXAMPLE

func NewCfnPrefixList

func NewCfnPrefixList(scope constructs.Construct, id *string, props *CfnPrefixListProps) CfnPrefixList

Create a new `AWS::EC2::PrefixList`.

type CfnPrefixListProps

type CfnPrefixListProps struct {
	// The IP address type.
	//
	// Valid Values: `IPv4` | `IPv6`
	AddressFamily *string `json:"addressFamily" yaml:"addressFamily"`
	// The maximum number of entries for the prefix list.
	MaxEntries *float64 `json:"maxEntries" yaml:"maxEntries"`
	// A name for the prefix list.
	//
	// Constraints: Up to 255 characters in length. The name cannot start with `com.amazonaws` .
	PrefixListName *string `json:"prefixListName" yaml:"prefixListName"`
	// One or more entries for the prefix list.
	Entries interface{} `json:"entries" yaml:"entries"`
	// The tags for the prefix list.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnPrefixList`.

TODO: EXAMPLE

type CfnPrefixList_EntryProperty

type CfnPrefixList_EntryProperty struct {
	// The CIDR block.
	Cidr *string `json:"cidr" yaml:"cidr"`
	// A description for the entry.
	//
	// Constraints: Up to 255 characters in length.
	Description *string `json:"description" yaml:"description"`
}

An entry for a prefix list.

TODO: EXAMPLE

type CfnRoute

type CfnRoute interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CarrierGatewayId() *string
	SetCarrierGatewayId(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DestinationCidrBlock() *string
	SetDestinationCidrBlock(val *string)
	DestinationIpv6CidrBlock() *string
	SetDestinationIpv6CidrBlock(val *string)
	EgressOnlyInternetGatewayId() *string
	SetEgressOnlyInternetGatewayId(val *string)
	GatewayId() *string
	SetGatewayId(val *string)
	InstanceId() *string
	SetInstanceId(val *string)
	LocalGatewayId() *string
	SetLocalGatewayId(val *string)
	LogicalId() *string
	NatGatewayId() *string
	SetNatGatewayId(val *string)
	NetworkInterfaceId() *string
	SetNetworkInterfaceId(val *string)
	Node() constructs.Node
	Ref() *string
	RouteTableId() *string
	SetRouteTableId(val *string)
	Stack() awscdk.Stack
	TransitGatewayId() *string
	SetTransitGatewayId(val *string)
	UpdatedProperites() *map[string]interface{}
	VpcEndpointId() *string
	SetVpcEndpointId(val *string)
	VpcPeeringConnectionId() *string
	SetVpcPeeringConnectionId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::Route`.

Specifies a route in a route table within a VPC.

You must specify either `DestinationCidrBlock` or `DestinationIpv6CidrBlock` , plus the ID of one of the target resources.

If you create a route that references a transit gateway in the same template where you create the transit gateway, you must declare a dependency on the transit gateway attachment. The route table cannot use the transit gateway until it has successfully attached to the VPC. Add a [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) in the `AWS::EC2::Route` resource to explicitly declare a dependency on the `AWS::EC2::TransitGatewayAttachment` resource.

TODO: EXAMPLE

func NewCfnRoute

func NewCfnRoute(scope constructs.Construct, id *string, props *CfnRouteProps) CfnRoute

Create a new `AWS::EC2::Route`.

type CfnRouteProps

type CfnRouteProps struct {
	// The ID of the route table.
	//
	// The routing table must be associated with the same VPC that the virtual private gateway is attached to.
	RouteTableId *string `json:"routeTableId" yaml:"routeTableId"`
	// The ID of the carrier gateway.
	CarrierGatewayId *string `json:"carrierGatewayId" yaml:"carrierGatewayId"`
	// The IPv4 CIDR block used for the destination match.
	DestinationCidrBlock *string `json:"destinationCidrBlock" yaml:"destinationCidrBlock"`
	// The IPv6 CIDR block used for the destination match.
	DestinationIpv6CidrBlock *string `json:"destinationIpv6CidrBlock" yaml:"destinationIpv6CidrBlock"`
	// The ID of the egress-only internet gateway.
	EgressOnlyInternetGatewayId *string `json:"egressOnlyInternetGatewayId" yaml:"egressOnlyInternetGatewayId"`
	// The ID of an internet gateway or virtual private gateway attached to your VPC.
	GatewayId *string `json:"gatewayId" yaml:"gatewayId"`
	// The ID of a NAT instance in your VPC.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
	// The ID of the local gateway.
	LocalGatewayId *string `json:"localGatewayId" yaml:"localGatewayId"`
	// The ID of a NAT gateway.
	NatGatewayId *string `json:"natGatewayId" yaml:"natGatewayId"`
	// The ID of the network interface.
	NetworkInterfaceId *string `json:"networkInterfaceId" yaml:"networkInterfaceId"`
	// The ID of a transit gateway.
	TransitGatewayId *string `json:"transitGatewayId" yaml:"transitGatewayId"`
	// The ID of a VPC endpoint.
	//
	// Supported for Gateway Load Balancer endpoints only.
	VpcEndpointId *string `json:"vpcEndpointId" yaml:"vpcEndpointId"`
	// The ID of a VPC peering connection.
	VpcPeeringConnectionId *string `json:"vpcPeeringConnectionId" yaml:"vpcPeeringConnectionId"`
}

Properties for defining a `CfnRoute`.

TODO: EXAMPLE

type CfnRouteTable

type CfnRouteTable interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrRouteTableId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	VpcId() *string
	SetVpcId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::RouteTable`.

Specifies a route table for a specified VPC. After you create a route table, you can add routes and associate the table with a subnet.

For more information, see [Route Tables](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html) in the *Amazon Virtual Private Cloud User Guide* .

TODO: EXAMPLE

func NewCfnRouteTable

func NewCfnRouteTable(scope constructs.Construct, id *string, props *CfnRouteTableProps) CfnRouteTable

Create a new `AWS::EC2::RouteTable`.

type CfnRouteTableProps

type CfnRouteTableProps struct {
	// The ID of the VPC.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// Any tags assigned to the route table.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnRouteTable`.

TODO: EXAMPLE

type CfnSecurityGroup

type CfnSecurityGroup interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrGroupId() *string
	AttrVpcId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	GroupDescription() *string
	SetGroupDescription(val *string)
	GroupName() *string
	SetGroupName(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	SecurityGroupEgress() interface{}
	SetSecurityGroupEgress(val interface{})
	SecurityGroupIngress() interface{}
	SetSecurityGroupIngress(val interface{})
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	VpcId() *string
	SetVpcId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::SecurityGroup`.

Specifies a security group. To create a security group, use the [VpcId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-vpcid) property to specify the VPC for which to create the security group.

This type supports updates. For more information about updating stacks, see [AWS CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html) .

> To cross-reference two security groups in the ingress and egress rules of those security groups, use the [AWS::EC2::SecurityGroupEgress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html) and [AWS::EC2::SecurityGroupIngress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-ingress.html) resources to define your rules. Do not use the embedded ingress and egress rules in the `AWS::EC2::SecurityGroup` . Doing so creates a circular dependency, which AWS CloudFormation doesn't allow.

TODO: EXAMPLE

func NewCfnSecurityGroup

func NewCfnSecurityGroup(scope constructs.Construct, id *string, props *CfnSecurityGroupProps) CfnSecurityGroup

Create a new `AWS::EC2::SecurityGroup`.

type CfnSecurityGroupEgress

type CfnSecurityGroupEgress interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CidrIp() *string
	SetCidrIp(val *string)
	CidrIpv6() *string
	SetCidrIpv6(val *string)
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	DestinationPrefixListId() *string
	SetDestinationPrefixListId(val *string)
	DestinationSecurityGroupId() *string
	SetDestinationSecurityGroupId(val *string)
	FromPort() *float64
	SetFromPort(val *float64)
	GroupId() *string
	SetGroupId(val *string)
	IpProtocol() *string
	SetIpProtocol(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	ToPort() *float64
	SetToPort(val *float64)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::SecurityGroupEgress`.

[EC2-VPC only] Adds the specified egress rules to a security group for use with a VPC.

An outbound rule permits instances to send traffic to the specified destination IPv4 or IPv6 CIDR address ranges, or to the specified destination security groups for the same VPC.

You specify a protocol for each rule (for example, TCP). For the TCP and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes.

You must specify a destination security group ( `DestinationPrefixListId` or `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). If you do not specify one of these parameters, the stack will launch successfully but the rule will not be added to the security group.

Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.

For more information about VPC security group limits, see [Amazon VPC Limits](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html) .

Use `AWS::EC2::SecurityGroupIngress` and `AWS::EC2::SecurityGroupEgress` only when necessary, typically to allow security groups to reference each other in ingress and egress rules. Otherwise, use the embedded ingress and egress rules of the security group. For more information, see [Amazon EC2 Security Groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html) .

TODO: EXAMPLE

func NewCfnSecurityGroupEgress

func NewCfnSecurityGroupEgress(scope constructs.Construct, id *string, props *CfnSecurityGroupEgressProps) CfnSecurityGroupEgress

Create a new `AWS::EC2::SecurityGroupEgress`.

type CfnSecurityGroupEgressProps

type CfnSecurityGroupEgressProps struct {
	// The ID of the security group.
	//
	// You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.
	GroupId *string `json:"groupId" yaml:"groupId"`
	// The IP protocol name ( `tcp` , `udp` , `icmp` , `icmpv6` ) or number (see [Protocol Numbers](https://docs.aws.amazon.com/http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml) ).
	//
	// [VPC only] Use `-1` to specify all protocols. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp` , `udp` , `icmp` , or `icmpv6` allows traffic on all ports, regardless of any port range you specify. For `tcp` , `udp` , and `icmp` , you must specify a port range. For `icmpv6` , the port range is optional; if you omit the port range, traffic for all types and codes is allowed.
	IpProtocol *string `json:"ipProtocol" yaml:"ipProtocol"`
	// The IPv4 address range, in CIDR format.
	//
	// You must specify a destination security group ( `DestinationPrefixListId` or `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ).
	CidrIp *string `json:"cidrIp" yaml:"cidrIp"`
	// The IPv6 address range, in CIDR format.
	//
	// You must specify a destination security group ( `DestinationPrefixListId` or `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ).
	CidrIpv6 *string `json:"cidrIpv6" yaml:"cidrIpv6"`
	// The description of an egress (outbound) security group rule.
	Description *string `json:"description" yaml:"description"`
	// [EC2-VPC only] The prefix list IDs for an AWS service.
	//
	// This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group.
	//
	// You must specify a destination security group ( `DestinationPrefixListId` or `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ).
	DestinationPrefixListId *string `json:"destinationPrefixListId" yaml:"destinationPrefixListId"`
	// The ID of the security group.
	//
	// You must specify a destination security group ( `DestinationPrefixListId` or `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ).
	DestinationSecurityGroupId *string `json:"destinationSecurityGroupId" yaml:"destinationSecurityGroupId"`
	// The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number.
	//
	// A value of `-1` indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes.
	FromPort *float64 `json:"fromPort" yaml:"fromPort"`
	// The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code.
	//
	// A value of `-1` indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all codes.
	ToPort *float64 `json:"toPort" yaml:"toPort"`
}

Properties for defining a `CfnSecurityGroupEgress`.

TODO: EXAMPLE

type CfnSecurityGroupIngress

type CfnSecurityGroupIngress interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CidrIp() *string
	SetCidrIp(val *string)
	CidrIpv6() *string
	SetCidrIpv6(val *string)
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	FromPort() *float64
	SetFromPort(val *float64)
	GroupId() *string
	SetGroupId(val *string)
	GroupName() *string
	SetGroupName(val *string)
	IpProtocol() *string
	SetIpProtocol(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	SourcePrefixListId() *string
	SetSourcePrefixListId(val *string)
	SourceSecurityGroupId() *string
	SetSourceSecurityGroupId(val *string)
	SourceSecurityGroupName() *string
	SetSourceSecurityGroupName(val *string)
	SourceSecurityGroupOwnerId() *string
	SetSourceSecurityGroupOwnerId(val *string)
	Stack() awscdk.Stack
	ToPort() *float64
	SetToPort(val *float64)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::SecurityGroupIngress`.

Adds an inbound rule to a security group.

An inbound rule permits instances to receive traffic from the specified IPv4 or IPv6 CIDR address range, or from the instances associated with the specified security group.

You specify a protocol for each rule (for example, TCP). For TCP and UDP, you must also specify a port or port range. For ICMP/ICMPv6, you must also specify the ICMP/ICMPv6 type and code. You can use -1 to mean all types or all codes.

You must specify a source security group ( `SourcePrefixListId` , `SourceSecurityGroupId` , or `SourceSecurityGroupName` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). If you do not specify one of these parameters, the stack will launch successfully but the rule will not be added to the security group.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

TODO: EXAMPLE

func NewCfnSecurityGroupIngress

func NewCfnSecurityGroupIngress(scope constructs.Construct, id *string, props *CfnSecurityGroupIngressProps) CfnSecurityGroupIngress

Create a new `AWS::EC2::SecurityGroupIngress`.

type CfnSecurityGroupIngressProps

type CfnSecurityGroupIngressProps struct {
	// The IP protocol name ( `tcp` , `udp` , `icmp` , `icmpv6` ) or number (see [Protocol Numbers](https://docs.aws.amazon.com/http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml) ).
	//
	// [VPC only] Use `-1` to specify all protocols. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp` , `udp` , `icmp` , or `icmpv6` allows traffic on all ports, regardless of any port range you specify. For `tcp` , `udp` , and `icmp` , you must specify a port range. For `icmpv6` , the port range is optional; if you omit the port range, traffic for all types and codes is allowed.
	IpProtocol *string `json:"ipProtocol" yaml:"ipProtocol"`
	// The IPv4 address range, in CIDR format.
	CidrIp *string `json:"cidrIp" yaml:"cidrIp"`
	// The IPv6 address range, in CIDR format.
	CidrIpv6 *string `json:"cidrIpv6" yaml:"cidrIpv6"`
	// Updates the description of an ingress (inbound) security group rule.
	//
	// You can replace an existing description, or add a description to a rule that did not have one previously.
	Description *string `json:"description" yaml:"description"`
	// The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number.
	//
	// A value of `-1` indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes.
	//
	// Use this for ICMP and any protocol that uses ports.
	FromPort *float64 `json:"fromPort" yaml:"fromPort"`
	// The ID of the security group.
	//
	// You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.
	//
	// You must specify the `GroupName` property or the `GroupId` property. For security groups that are in a VPC, you must use the `GroupId` property.
	GroupId *string `json:"groupId" yaml:"groupId"`
	// The name of the security group.
	//
	// Constraints: Up to 255 characters in length. Cannot start with `sg-` .
	//
	// Constraints for EC2-Classic: ASCII characters
	//
	// Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*
	GroupName *string `json:"groupName" yaml:"groupName"`
	// [EC2-VPC only] The ID of a prefix list.
	SourcePrefixListId *string `json:"sourcePrefixListId" yaml:"sourcePrefixListId"`
	// The ID of the security group.
	//
	// You must specify either the security group ID or the security group name. For security groups in a nondefault VPC, you must specify the security group ID.
	SourceSecurityGroupId *string `json:"sourceSecurityGroupId" yaml:"sourceSecurityGroupId"`
	// [EC2-Classic, default VPC] The name of the source security group.
	//
	// You must specify the `GroupName` property or the `GroupId` property. For security groups that are in a VPC, you must use the `GroupId` property.
	SourceSecurityGroupName *string `json:"sourceSecurityGroupName" yaml:"sourceSecurityGroupName"`
	// [nondefault VPC] The AWS account ID that owns the source security group.
	//
	// You can't specify this property with an IP address range.
	//
	// If you specify `SourceSecurityGroupName` or `SourceSecurityGroupId` and that security group is owned by a different account than the account creating the stack, you must specify the `SourceSecurityGroupOwnerId` ; otherwise, this property is optional.
	SourceSecurityGroupOwnerId *string `json:"sourceSecurityGroupOwnerId" yaml:"sourceSecurityGroupOwnerId"`
	// The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code.
	//
	// A value of `-1` indicates all ICMP/ICMPv6 codes for the specified ICMP type. If you specify all ICMP/ICMPv6 types, you must specify all codes.
	//
	// Use this for ICMP and any protocol that uses ports.
	ToPort *float64 `json:"toPort" yaml:"toPort"`
}

Properties for defining a `CfnSecurityGroupIngress`.

TODO: EXAMPLE

type CfnSecurityGroupProps

type CfnSecurityGroupProps struct {
	// A description for the security group. This is informational only.
	//
	// Constraints: Up to 255 characters in length
	//
	// Constraints for EC2-Classic: ASCII characters
	//
	// Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*
	GroupDescription *string `json:"groupDescription" yaml:"groupDescription"`
	// The name of the security group.
	//
	// Constraints: Up to 255 characters in length. Cannot start with `sg-` .
	//
	// Constraints for EC2-Classic: ASCII characters
	//
	// Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*
	GroupName *string `json:"groupName" yaml:"groupName"`
	// [VPC only] The outbound rules associated with the security group.
	//
	// There is a short interruption during which you cannot connect to the security group.
	SecurityGroupEgress interface{} `json:"securityGroupEgress" yaml:"securityGroupEgress"`
	// The inbound rules associated with the security group.
	//
	// There is a short interruption during which you cannot connect to the security group.
	SecurityGroupIngress interface{} `json:"securityGroupIngress" yaml:"securityGroupIngress"`
	// Any tags assigned to the security group.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
	// [VPC only] The ID of the VPC for the security group.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
}

Properties for defining a `CfnSecurityGroup`.

TODO: EXAMPLE

type CfnSecurityGroup_EgressProperty

type CfnSecurityGroup_EgressProperty struct {
	// The IP protocol name ( `tcp` , `udp` , `icmp` , `icmpv6` ) or number (see [Protocol Numbers](https://docs.aws.amazon.com/http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml) ).
	//
	// [VPC only] Use `-1` to specify all protocols. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp` , `udp` , `icmp` , or `icmpv6` allows traffic on all ports, regardless of any port range you specify. For `tcp` , `udp` , and `icmp` , you must specify a port range. For `icmpv6` , the port range is optional; if you omit the port range, traffic for all types and codes is allowed.
	IpProtocol *string `json:"ipProtocol" yaml:"ipProtocol"`
	// The IPv4 address range, in CIDR format.
	CidrIp *string `json:"cidrIp" yaml:"cidrIp"`
	// The IPv6 address range, in CIDR format.
	CidrIpv6 *string `json:"cidrIpv6" yaml:"cidrIpv6"`
	// A description for the security group rule.
	//
	// Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*
	Description *string `json:"description" yaml:"description"`
	// [EC2-VPC only] The prefix list IDs for the destination AWS service.
	//
	// This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group.
	DestinationPrefixListId *string `json:"destinationPrefixListId" yaml:"destinationPrefixListId"`
	// The ID of the destination VPC security group.
	DestinationSecurityGroupId *string `json:"destinationSecurityGroupId" yaml:"destinationSecurityGroupId"`
	// The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number.
	//
	// A value of `-1` indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes.
	FromPort *float64 `json:"fromPort" yaml:"fromPort"`
	// The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code.
	//
	// A value of `-1` indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all codes.
	ToPort *float64 `json:"toPort" yaml:"toPort"`
}

Specifies an outbound rule for a security group.

An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, or to the instances associated with the specified destination security groups.

You must specify only one of the following properties: `CidrIp` , `CidrIpv6` , `DestinationPrefixListId` , or `DestinationSecurityGroupId` .

The EC2 Security Group Rule is an embedded property of the `AWS::EC2::SecurityGroup` type.

TODO: EXAMPLE

type CfnSecurityGroup_IngressProperty

type CfnSecurityGroup_IngressProperty struct {
	// The IP protocol name ( `tcp` , `udp` , `icmp` , `icmpv6` ) or number (see [Protocol Numbers](https://docs.aws.amazon.com/http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml) ).
	//
	// [VPC only] Use `-1` to specify all protocols. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp` , `udp` , `icmp` , or `icmpv6` allows traffic on all ports, regardless of any port range you specify. For `tcp` , `udp` , and `icmp` , you must specify a port range. For `icmpv6` , the port range is optional; if you omit the port range, traffic for all types and codes is allowed.
	IpProtocol *string `json:"ipProtocol" yaml:"ipProtocol"`
	// The IPv4 address range, in CIDR format.
	CidrIp *string `json:"cidrIp" yaml:"cidrIp"`
	// The IPv6 address range, in CIDR format.
	CidrIpv6 *string `json:"cidrIpv6" yaml:"cidrIpv6"`
	// A description for the security group rule.
	//
	// Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*
	Description *string `json:"description" yaml:"description"`
	// The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number.
	//
	// A value of `-1` indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes.
	FromPort *float64 `json:"fromPort" yaml:"fromPort"`
	// [EC2-VPC only] The ID of a prefix list.
	SourcePrefixListId *string `json:"sourcePrefixListId" yaml:"sourcePrefixListId"`
	// The ID of the security group.
	//
	// You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.
	SourceSecurityGroupId *string `json:"sourceSecurityGroupId" yaml:"sourceSecurityGroupId"`
	// [EC2-Classic, default VPC] The name of the source security group.
	//
	// You can't specify this parameter in combination with an IP address range. Creates rules that grant full ICMP, UDP, and TCP access.
	SourceSecurityGroupName *string `json:"sourceSecurityGroupName" yaml:"sourceSecurityGroupName"`
	// [nondefault VPC] The AWS account ID for the source security group, if the source security group is in a different account.
	//
	// You can't specify this property with an IP address range. Creates rules that grant full ICMP, UDP, and TCP access.
	//
	// If you specify `SourceSecurityGroupName` or `SourceSecurityGroupId` and that security group is owned by a different account than the account creating the stack, you must specify the `SourceSecurityGroupOwnerId` ; otherwise, this property is optional.
	SourceSecurityGroupOwnerId *string `json:"sourceSecurityGroupOwnerId" yaml:"sourceSecurityGroupOwnerId"`
	// The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code.
	//
	// A value of `-1` indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all codes.
	ToPort *float64 `json:"toPort" yaml:"toPort"`
}

Specifies an inbound rule for a security group.

An inbound rule permits instances to receive traffic from the specified IPv4 or IPv6 CIDR address range, or from the instances associated with the specified security group.

You must specify only one of the following properties: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , `SourceSecurityGroupId` , or `SourceSecurityGroupName` .

The EC2 Security Group Rule is an embedded property of the `AWS::EC2::SecurityGroup` type.

TODO: EXAMPLE

type CfnSpotFleet

type CfnSpotFleet interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	SpotFleetRequestConfigData() interface{}
	SetSpotFleetRequestConfigData(val interface{})
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::SpotFleet`.

Specifies a Spot Fleet request. A Spot Fleet request contains the configuration information to launch a fleet, or group, of instances.

The Spot Fleet request specifies the total target capacity and the On-Demand target capacity for the fleet. Amazon EC2 calculates the difference between the total capacity and On-Demand capacity, and launches the difference as Spot capacity.

The Spot Fleet request can include multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet.

By default, the Spot Fleet requests Spot Instances in the Spot pool where the price per unit is the lowest. Each launch specification can include its own instance weighting that reflects the value of the instance type to your application workload.

Alternatively, you can specify that the Spot Fleet distribute the target capacity across the Spot pools included in its launch specifications. By ensuring that the Spot Instances in your Spot Fleet are in different Spot pools, you can improve the availability of your fleet.

You can specify tags for the Spot Instances. You cannot tag other resource types in a Spot Fleet request because only the `instance` resource type is supported.

For more information, see [Spot Fleet Requests](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html) in the *Amazon EC2 User Guide for Linux Instances* .

TODO: EXAMPLE

func NewCfnSpotFleet

func NewCfnSpotFleet(scope constructs.Construct, id *string, props *CfnSpotFleetProps) CfnSpotFleet

Create a new `AWS::EC2::SpotFleet`.

type CfnSpotFleetProps

type CfnSpotFleetProps struct {
	// Describes the configuration of a Spot Fleet request.
	SpotFleetRequestConfigData interface{} `json:"spotFleetRequestConfigData" yaml:"spotFleetRequestConfigData"`
}

Properties for defining a `CfnSpotFleet`.

TODO: EXAMPLE

type CfnSpotFleet_AcceleratorCountRequestProperty

type CfnSpotFleet_AcceleratorCountRequestProperty struct {
	// The maximum number of accelerators.
	//
	// To specify no maximum limit, omit this parameter. To exclude accelerator-enabled instance types, set `Max` to `0` .
	Max *float64 `json:"max" yaml:"max"`
	// The minimum number of accelerators.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance.

To exclude accelerator-enabled instance types, set `Max` to `0` .

TODO: EXAMPLE

type CfnSpotFleet_AcceleratorTotalMemoryMiBRequestProperty

type CfnSpotFleet_AcceleratorTotalMemoryMiBRequestProperty struct {
	// The maximum amount of accelerator memory, in MiB.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum amount of accelerator memory, in MiB.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum amount of total accelerator memory, in MiB.

TODO: EXAMPLE

type CfnSpotFleet_BaselineEbsBandwidthMbpsRequestProperty

type CfnSpotFleet_BaselineEbsBandwidthMbpsRequestProperty struct {
	// The maximum baseline bandwidth, in Mbps.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum baseline bandwidth, in Mbps.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps.

For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide* .

TODO: EXAMPLE

type CfnSpotFleet_BlockDeviceMappingProperty

type CfnSpotFleet_BlockDeviceMappingProperty struct {
	// The device name (for example, `/dev/sdh` or `xvdh` ).
	DeviceName *string `json:"deviceName" yaml:"deviceName"`
	// Parameters used to automatically set up EBS volumes when the instance is launched.
	Ebs interface{} `json:"ebs" yaml:"ebs"`
	// To omit the device from the block device mapping, specify an empty string.
	//
	// When this property is specified, the device is removed from the block device mapping regardless of the assigned value.
	NoDevice *string `json:"noDevice" yaml:"noDevice"`
	// The virtual device name ( `ephemeral` N).
	//
	// Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for `ephemeral0` and `ephemeral1` . The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume.
	//
	// NVMe instance store volumes are automatically enumerated and assigned a device name. Including them in your block device mapping has no effect.
	//
	// Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI.
	VirtualName *string `json:"virtualName" yaml:"virtualName"`
}

Specifies a block device mapping.

You can specify `Ebs` or `VirtualName` , but not both.

TODO: EXAMPLE

type CfnSpotFleet_ClassicLoadBalancerProperty

type CfnSpotFleet_ClassicLoadBalancerProperty struct {
	// The name of the load balancer.
	Name *string `json:"name" yaml:"name"`
}

Specifies a Classic Load Balancer.

TODO: EXAMPLE

type CfnSpotFleet_ClassicLoadBalancersConfigProperty

type CfnSpotFleet_ClassicLoadBalancersConfigProperty struct {
	// One or more Classic Load Balancers.
	ClassicLoadBalancers interface{} `json:"classicLoadBalancers" yaml:"classicLoadBalancers"`
}

Specifies the Classic Load Balancers to attach to a Spot Fleet.

Spot Fleet registers the running Spot Instances with these Classic Load Balancers.

TODO: EXAMPLE

type CfnSpotFleet_EbsBlockDeviceProperty

type CfnSpotFleet_EbsBlockDeviceProperty struct {
	// Indicates whether the EBS volume is deleted on instance termination.
	//
	// For more information, see [Preserving Amazon EBS volumes on instance termination](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination) in the *Amazon EC2 User Guide* .
	DeleteOnTermination interface{} `json:"deleteOnTermination" yaml:"deleteOnTermination"`
	// Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot.
	//
	// The effect of setting the encryption state to `true` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Amazon EBS Encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-parameters) in the *Amazon EC2 User Guide* .
	//
	// In no case can you remove encryption from an encrypted volume.
	//
	// Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For more information, see [Supported Instance Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances) .
	//
	// This parameter is not returned by [DescribeImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImageAttribute.html) .
	Encrypted interface{} `json:"encrypted" yaml:"encrypted"`
	// The number of I/O operations per second (IOPS).
	//
	// For `gp3` , `io1` , and `io2` volumes, this represents the number of IOPS that are provisioned for the volume. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.
	//
	// The following are the supported values for each volume type:
	//
	// - `gp3` : 3,000-16,000 IOPS
	// - `io1` : 100-64,000 IOPS
	// - `io2` : 100-64,000 IOPS
	//
	// For `io1` and `io2` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances) . Other instance families guarantee performance up to 32,000 IOPS.
	//
	// This parameter is required for `io1` and `io2` volumes. The default for `gp3` volumes is 3,000 IOPS. This parameter is not supported for `gp2` , `st1` , `sc1` , or `standard` volumes.
	Iops *float64 `json:"iops" yaml:"iops"`
	// The ID of the snapshot.
	SnapshotId *string `json:"snapshotId" yaml:"snapshotId"`
	// The size of the volume, in GiBs.
	//
	// You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size.
	//
	// The following are the supported volumes sizes for each volume type:
	//
	// - `gp2` and `gp3` :1-16,384
	// - `io1` and `io2` : 4-16,384
	// - `st1` and `sc1` : 125-16,384
	// - `standard` : 1-1,024
	VolumeSize *float64 `json:"volumeSize" yaml:"volumeSize"`
	// The volume type.
	//
	// For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide* . If the volume type is `io1` or `io2` , you must specify the IOPS that the volume supports.
	VolumeType *string `json:"volumeType" yaml:"volumeType"`
}

Describes a block device for an EBS volume.

TODO: EXAMPLE

type CfnSpotFleet_FleetLaunchTemplateSpecificationProperty

type CfnSpotFleet_FleetLaunchTemplateSpecificationProperty struct {
	// The version number of the launch template.
	//
	// You must specify a version number. AWS CloudFormation does not support specifying `$Latest` or `$Default` for the template version number.
	//
	// Minimum length of 1. Maximum length of 255. Versions must fit the following pattern: `[\ u0020-\ uD7FF\ uE000-\ uFFFD\ uD800\ uDC00-\ uDBFF\ uDFFF\r\n\t]*`
	Version *string `json:"version" yaml:"version"`
	// The ID of the launch template.
	//
	// If you specify the template ID, you can't specify the template name.
	LaunchTemplateId *string `json:"launchTemplateId" yaml:"launchTemplateId"`
	// The name of the launch template. You must specify either a template name or a template ID.
	//
	// Minimum length of 3. Maximum length of 128. Names must match the following pattern: `[a-zA-Z0-9\(\)\.-/_]+`
	LaunchTemplateName *string `json:"launchTemplateName" yaml:"launchTemplateName"`
}

Describes the Amazon EC2 launch template and the launch template version that can be used by a Spot Fleet request to configure Amazon EC2 instances.

For information about launch templates, see [Launching an instance from a launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) in the *Amazon EC2 User Guide for Linux Instances* .

TODO: EXAMPLE

type CfnSpotFleet_GroupIdentifierProperty

type CfnSpotFleet_GroupIdentifierProperty struct {
	// The ID of the security group.
	GroupId *string `json:"groupId" yaml:"groupId"`
}

Describes a security group.

TODO: EXAMPLE

type CfnSpotFleet_IamInstanceProfileSpecificationProperty

type CfnSpotFleet_IamInstanceProfileSpecificationProperty struct {
	// The Amazon Resource Name (ARN) of the instance profile.
	Arn *string `json:"arn" yaml:"arn"`
}

Describes an IAM instance profile.

TODO: EXAMPLE

type CfnSpotFleet_InstanceIpv6AddressProperty

type CfnSpotFleet_InstanceIpv6AddressProperty struct {
	// The IPv6 address.
	Ipv6Address *string `json:"ipv6Address" yaml:"ipv6Address"`
}

Describes an IPv6 address.

TODO: EXAMPLE

type CfnSpotFleet_InstanceNetworkInterfaceSpecificationProperty

type CfnSpotFleet_InstanceNetworkInterfaceSpecificationProperty struct {
	// Indicates whether to assign a public IPv4 address to an instance you launch in a VPC.
	//
	// The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is `true` .
	AssociatePublicIpAddress interface{} `json:"associatePublicIpAddress" yaml:"associatePublicIpAddress"`
	// Indicates whether the network interface is deleted when the instance is terminated.
	DeleteOnTermination interface{} `json:"deleteOnTermination" yaml:"deleteOnTermination"`
	// The description of the network interface.
	//
	// Applies only if creating a network interface when launching an instance.
	Description *string `json:"description" yaml:"description"`
	// The position of the network interface in the attachment order.
	//
	// A primary network interface has a device index of 0.
	//
	// If you specify a network interface when launching an instance, you must specify the device index.
	DeviceIndex *float64 `json:"deviceIndex" yaml:"deviceIndex"`
	// The IDs of the security groups for the network interface.
	//
	// Applies only if creating a network interface when launching an instance.
	Groups *[]*string `json:"groups" yaml:"groups"`
	// A number of IPv6 addresses to assign to the network interface.
	//
	// Amazon EC2 chooses the IPv6 addresses from the range of the subnet. You cannot specify this option and the option to assign specific IPv6 addresses in the same request. You can specify this option if you've specified a minimum number of instances to launch.
	Ipv6AddressCount *float64 `json:"ipv6AddressCount" yaml:"ipv6AddressCount"`
	// One or more IPv6 addresses to assign to the network interface.
	//
	// You cannot specify this option and the option to assign a number of IPv6 addresses in the same request. You cannot specify this option if you've specified a minimum number of instances to launch.
	Ipv6Addresses interface{} `json:"ipv6Addresses" yaml:"ipv6Addresses"`
	// The ID of the network interface.
	//
	// If you are creating a Spot Fleet, omit this parameter because you can’t specify a network interface ID in a launch specification.
	NetworkInterfaceId *string `json:"networkInterfaceId" yaml:"networkInterfaceId"`
	// One or more private IPv4 addresses to assign to the network interface.
	//
	// Only one private IPv4 address can be designated as primary. You cannot specify this option if you're launching more than one instance in a [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) request.
	PrivateIpAddresses interface{} `json:"privateIpAddresses" yaml:"privateIpAddresses"`
	// The number of secondary private IPv4 addresses.
	//
	// You can't specify this option and specify more than one private IP address using the private IP addresses option. You cannot specify this option if you're launching more than one instance in a [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) request.
	SecondaryPrivateIpAddressCount *float64 `json:"secondaryPrivateIpAddressCount" yaml:"secondaryPrivateIpAddressCount"`
	// The ID of the subnet associated with the network interface.
	//
	// Applies only if creating a network interface when launching an instance.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
}

Describes a network interface.

TODO: EXAMPLE

type CfnSpotFleet_InstanceRequirementsRequestProperty

type CfnSpotFleet_InstanceRequirementsRequestProperty struct {
	// The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance.
	//
	// To exclude accelerator-enabled instance types, set `Max` to `0` .
	//
	// Default: No minimum or maximum limits
	AcceleratorCount interface{} `json:"acceleratorCount" yaml:"acceleratorCount"`
	// Indicates whether instance types must have accelerators by specific manufacturers.
	//
	// - For instance types with NVIDIA devices, specify `nvidia` .
	// - For instance types with AMD devices, specify `amd` .
	// - For instance types with AWS devices, specify `amazon-web-services` .
	// - For instance types with Xilinx devices, specify `xilinx` .
	//
	// Default: Any manufacturer
	AcceleratorManufacturers *[]*string `json:"acceleratorManufacturers" yaml:"acceleratorManufacturers"`
	// The accelerators that must be on the instance type.
	//
	// - For instance types with NVIDIA A100 GPUs, specify `a100` .
	// - For instance types with NVIDIA V100 GPUs, specify `v100` .
	// - For instance types with NVIDIA K80 GPUs, specify `k80` .
	// - For instance types with NVIDIA T4 GPUs, specify `t4` .
	// - For instance types with NVIDIA M60 GPUs, specify `m60` .
	// - For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520` .
	// - For instance types with Xilinx VU9P FPGAs, specify `vu9p` .
	//
	// Default: Any accelerator
	AcceleratorNames *[]*string `json:"acceleratorNames" yaml:"acceleratorNames"`
	// The minimum and maximum amount of total accelerator memory, in MiB.
	//
	// Default: No minimum or maximum limits
	AcceleratorTotalMemoryMiB interface{} `json:"acceleratorTotalMemoryMiB" yaml:"acceleratorTotalMemoryMiB"`
	// The accelerator types that must be on the instance type.
	//
	// - To include instance types with GPU hardware, specify `gpu` .
	// - To include instance types with FPGA hardware, specify `fpga` .
	// - To include instance types with inference hardware, specify `inference` .
	//
	// Default: Any accelerator type
	AcceleratorTypes *[]*string `json:"acceleratorTypes" yaml:"acceleratorTypes"`
	// Indicates whether bare metal instance types must be included, excluded, or required.
	//
	// - To include bare metal instance types, specify `included` .
	// - To require only bare metal instance types, specify `required` .
	// - To exclude bare metal instance types, specify `excluded` .
	//
	// Default: `excluded`
	BareMetal *string `json:"bareMetal" yaml:"bareMetal"`
	// The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps.
	//
	// For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide* .
	//
	// Default: No minimum or maximum limits
	BaselineEbsBandwidthMbps interface{} `json:"baselineEbsBandwidthMbps" yaml:"baselineEbsBandwidthMbps"`
	// Indicates whether burstable performance T instance types are included, excluded, or required.
	//
	// For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) .
	//
	// - To include burstable performance instance types, specify `included` .
	// - To require only burstable performance instance types, specify `required` .
	// - To exclude burstable performance instance types, specify `excluded` .
	//
	// Default: `excluded`
	BurstablePerformance *string `json:"burstablePerformance" yaml:"burstablePerformance"`
	// The CPU manufacturers to include.
	//
	// - For instance types with Intel CPUs, specify `intel` .
	// - For instance types with AMD CPUs, specify `amd` .
	// - For instance types with AWS CPUs, specify `amazon-web-services` .
	//
	// > Don't confuse the CPU manufacturer with the CPU architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
	//
	// Default: Any manufacturer
	CpuManufacturers *[]*string `json:"cpuManufacturers" yaml:"cpuManufacturers"`
	// The instance types to exclude.
	//
	// You can use strings with one or more wild cards, represented by an asterisk ( `*` ), to exclude an instance family, type, size, or generation. The following are examples: `m5.8xlarge` , `c5*.*` , `m5a.*` , `r*` , `*3*` .
	//
	// For example, if you specify `c5*` ,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*` , Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types.
	//
	// Default: No excluded instance types
	ExcludedInstanceTypes *[]*string `json:"excludedInstanceTypes" yaml:"excludedInstanceTypes"`
	// Indicates whether current or previous generation instance types are included.
	//
	// The current generation instance types are recommended for use. Current generation instance types are typically the latest two to three generations in each instance family. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide* .
	//
	// For current generation instance types, specify `current` .
	//
	// For previous generation instance types, specify `previous` .
	//
	// Default: Current and previous generation instance types
	InstanceGenerations *[]*string `json:"instanceGenerations" yaml:"instanceGenerations"`
	// Indicates whether instance types with instance store volumes are included, excluded, or required.
	//
	// For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide* .
	//
	// - To include instance types with instance store volumes, specify `included` .
	// - To require only instance types with instance store volumes, specify `required` .
	// - To exclude instance types with instance store volumes, specify `excluded` .
	//
	// Default: `included`
	LocalStorage *string `json:"localStorage" yaml:"localStorage"`
	// The type of local storage that is required.
	//
	// - For instance types with hard disk drive (HDD) storage, specify `hdd` .
	// - For instance types with solid state drive (SDD) storage, specify `sdd` .
	//
	// Default: `hdd` and `sdd`
	LocalStorageTypes *[]*string `json:"localStorageTypes" yaml:"localStorageTypes"`
	// The minimum and maximum amount of memory per vCPU, in GiB.
	//
	// Default: No minimum or maximum limits
	MemoryGiBPerVCpu interface{} `json:"memoryGiBPerVCpu" yaml:"memoryGiBPerVCpu"`
	// The minimum and maximum amount of memory, in MiB.
	MemoryMiB interface{} `json:"memoryMiB" yaml:"memoryMiB"`
	// The minimum and maximum number of network interfaces.
	//
	// Default: No minimum or maximum limits
	NetworkInterfaceCount interface{} `json:"networkInterfaceCount" yaml:"networkInterfaceCount"`
	// The price protection threshold for On-Demand Instances.
	//
	// This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage above the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.
	//
	// The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
	//
	// To turn off price protection, specify a high value, such as `999999` .
	//
	// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html) .
	//
	// > If you set `TargetCapacityUnitType` to `vcpu` or `memory-mib` , the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.
	//
	// Default: `20`
	OnDemandMaxPricePercentageOverLowestPrice *float64 `json:"onDemandMaxPricePercentageOverLowestPrice" yaml:"onDemandMaxPricePercentageOverLowestPrice"`
	// Indicates whether instance types must support hibernation for On-Demand Instances.
	//
	// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) .
	//
	// Default: `false`
	RequireHibernateSupport interface{} `json:"requireHibernateSupport" yaml:"requireHibernateSupport"`
	// The price protection threshold for Spot Instance.
	//
	// This is the maximum you’ll pay for an Spot Instance, expressed as a percentage above the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.
	//
	// The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
	//
	// To turn off price protection, specify a high value, such as `999999` .
	//
	// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html) .
	//
	// > If you set `TargetCapacityUnitType` to `vcpu` or `memory-mib` , the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.
	//
	// Default: `100`
	SpotMaxPricePercentageOverLowestPrice *float64 `json:"spotMaxPricePercentageOverLowestPrice" yaml:"spotMaxPricePercentageOverLowestPrice"`
	// The minimum and maximum amount of total local storage, in GB.
	//
	// Default: No minimum or maximum limits
	TotalLocalStorageGb interface{} `json:"totalLocalStorageGb" yaml:"totalLocalStorageGb"`
	// The minimum and maximum number of vCPUs.
	VCpuCount interface{} `json:"vCpuCount" yaml:"vCpuCount"`
}

The attributes for the instance types.

When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.

When you specify multiple parameters, you get instance types that satisfy all of the specified parameters. If you specify multiple values for a parameter, you get instance types that satisfy any of the specified values.

> You must specify `VCpuCount` and `MemoryMiB` . All other parameters are optional. Any unspecified optional parameter is set to its default.

For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) , [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html) , and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide* .

TODO: EXAMPLE

type CfnSpotFleet_LaunchTemplateConfigProperty

type CfnSpotFleet_LaunchTemplateConfigProperty struct {
	// The launch template.
	LaunchTemplateSpecification interface{} `json:"launchTemplateSpecification" yaml:"launchTemplateSpecification"`
	// Any parameters that you specify override the same parameters in the launch template.
	Overrides interface{} `json:"overrides" yaml:"overrides"`
}

Specifies a launch template and overrides.

TODO: EXAMPLE

type CfnSpotFleet_LaunchTemplateOverridesProperty

type CfnSpotFleet_LaunchTemplateOverridesProperty struct {
	// The Availability Zone in which to launch the instances.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The instance requirements.
	//
	// When you specify instance requirements, Amazon EC2 will identify instance types with the provided requirements, and then use your On-Demand and Spot allocation strategies to launch instances from these instance types, in the same way as when you specify a list of instance types.
	//
	// > If you specify `InstanceRequirements` , you can't specify `InstanceTypes` .
	InstanceRequirements interface{} `json:"instanceRequirements" yaml:"instanceRequirements"`
	// The instance type.
	InstanceType *string `json:"instanceType" yaml:"instanceType"`
	// The priority for the launch template override. The highest priority is launched first.
	//
	// If `OnDemandAllocationStrategy` is set to `prioritized` , Spot Fleet uses priority to determine which launch template override to use first in fulfilling On-Demand capacity.
	//
	// If the Spot `AllocationStrategy` is set to `capacityOptimizedPrioritized` , Spot Fleet uses priority on a best-effort basis to determine which launch template override to use in fulfilling Spot capacity, but optimizes for capacity first.
	//
	// Valid values are whole numbers starting at `0` . The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority. You can set the same priority for different launch template overrides.
	Priority *float64 `json:"priority" yaml:"priority"`
	// The maximum price per unit hour that you are willing to pay for a Spot Instance.
	SpotPrice *string `json:"spotPrice" yaml:"spotPrice"`
	// The ID of the subnet in which to launch the instances.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
	// The number of units provided by the specified instance type.
	WeightedCapacity *float64 `json:"weightedCapacity" yaml:"weightedCapacity"`
}

Specifies overrides for a launch template.

TODO: EXAMPLE

type CfnSpotFleet_LoadBalancersConfigProperty

type CfnSpotFleet_LoadBalancersConfigProperty struct {
	// The Classic Load Balancers.
	ClassicLoadBalancersConfig interface{} `json:"classicLoadBalancersConfig" yaml:"classicLoadBalancersConfig"`
	// The target groups.
	TargetGroupsConfig interface{} `json:"targetGroupsConfig" yaml:"targetGroupsConfig"`
}

Specifies the Classic Load Balancers and target groups to attach to a Spot Fleet request.

TODO: EXAMPLE

type CfnSpotFleet_MemoryGiBPerVCpuRequestProperty

type CfnSpotFleet_MemoryGiBPerVCpuRequestProperty struct {
	// The maximum amount of memory per vCPU, in GiB.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum amount of memory per vCPU, in GiB.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum amount of memory per vCPU, in GiB.

TODO: EXAMPLE

type CfnSpotFleet_MemoryMiBRequestProperty

type CfnSpotFleet_MemoryMiBRequestProperty struct {
	// The maximum amount of memory, in MiB.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum amount of memory, in MiB.
	//
	// To specify no minimum limit, specify `0` .
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum amount of memory, in MiB.

TODO: EXAMPLE

type CfnSpotFleet_NetworkInterfaceCountRequestProperty

type CfnSpotFleet_NetworkInterfaceCountRequestProperty struct {
	// The maximum number of network interfaces.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum number of network interfaces.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum number of network interfaces.

TODO: EXAMPLE

type CfnSpotFleet_PrivateIpAddressSpecificationProperty

type CfnSpotFleet_PrivateIpAddressSpecificationProperty struct {
	// The private IPv4 addresses.
	PrivateIpAddress *string `json:"privateIpAddress" yaml:"privateIpAddress"`
	// Indicates whether the private IPv4 address is the primary private IPv4 address.
	//
	// Only one IPv4 address can be designated as primary.
	Primary interface{} `json:"primary" yaml:"primary"`
}

Describes a secondary private IPv4 address for a network interface.

TODO: EXAMPLE

type CfnSpotFleet_SpotCapacityRebalanceProperty

type CfnSpotFleet_SpotCapacityRebalanceProperty struct {
	// The replacement strategy to use. Only available for fleets of type `maintain` .
	//
	// `launch` - Spot Fleet launches a new replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet. Spot Fleet does not terminate the instances that receive a rebalance notification. You can terminate the old instances, or you can leave them running. You are charged for all instances while they are running.
	//
	// `launch-before-terminate` - Spot Fleet launches a new replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet, and then, after a delay that you specify (in `TerminationDelay` ), terminates the instances that received a rebalance notification.
	ReplacementStrategy *string `json:"replacementStrategy" yaml:"replacementStrategy"`
	// The amount of time (in seconds) that Amazon EC2 waits before terminating the old Spot Instance after launching a new replacement Spot Instance.
	//
	// Required when `ReplacementStrategy` is set to `launch-before-terminate` .
	//
	// Not valid when `ReplacementStrategy` is set to `launch` .
	//
	// Valid values: Minimum value of `120` seconds. Maximum value of `7200` seconds.
	TerminationDelay *float64 `json:"terminationDelay" yaml:"terminationDelay"`
}

The Spot Instance replacement strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted.

For more information, see [Capacity rebalancing](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-capacity-rebalance.html) in the *Amazon EC2 User Guide for Linux Instances* .

TODO: EXAMPLE

type CfnSpotFleet_SpotFleetLaunchSpecificationProperty

type CfnSpotFleet_SpotFleetLaunchSpecificationProperty struct {
	// The ID of the AMI.
	ImageId *string `json:"imageId" yaml:"imageId"`
	// One or more block devices that are mapped to the Spot Instances.
	//
	// You can't specify both a snapshot ID and an encryption value. This is because only blank volumes can be encrypted on creation. If a snapshot is the basis for a volume, it is not blank and its encryption status is used for the volume encryption status.
	BlockDeviceMappings interface{} `json:"blockDeviceMappings" yaml:"blockDeviceMappings"`
	// Indicates whether the instances are optimized for EBS I/O.
	//
	// This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.
	//
	// Default: `false`
	EbsOptimized interface{} `json:"ebsOptimized" yaml:"ebsOptimized"`
	// The IAM instance profile.
	IamInstanceProfile interface{} `json:"iamInstanceProfile" yaml:"iamInstanceProfile"`
	// The attributes for the instance types.
	//
	// When you specify instance attributes, Amazon EC2 will identify instance types with those attributes.
	//
	// > If you specify `InstanceRequirements` , you can't specify `InstanceTypes` .
	InstanceRequirements interface{} `json:"instanceRequirements" yaml:"instanceRequirements"`
	// The instance type.
	InstanceType *string `json:"instanceType" yaml:"instanceType"`
	// The ID of the kernel.
	KernelId *string `json:"kernelId" yaml:"kernelId"`
	// The name of the key pair.
	KeyName *string `json:"keyName" yaml:"keyName"`
	// Enable or disable monitoring for the instances.
	Monitoring interface{} `json:"monitoring" yaml:"monitoring"`
	// One or more network interfaces.
	//
	// If you specify a network interface, you must specify subnet IDs and security group IDs using the network interface.
	//
	// > `SpotFleetLaunchSpecification` currently does not support Elastic Fabric Adapter (EFA). To specify an EFA, you must use [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html) .
	NetworkInterfaces interface{} `json:"networkInterfaces" yaml:"networkInterfaces"`
	// The placement information.
	Placement interface{} `json:"placement" yaml:"placement"`
	// The ID of the RAM disk.
	//
	// Some kernels require additional drivers at launch. Check the kernel requirements for information about whether you need to specify a RAM disk. To find kernel requirements, refer to the AWS Resource Center and search for the kernel ID.
	RamdiskId *string `json:"ramdiskId" yaml:"ramdiskId"`
	// One or more security groups.
	//
	// When requesting instances in a VPC, you must specify the IDs of the security groups. When requesting instances in EC2-Classic, you can specify the names or the IDs of the security groups.
	SecurityGroups interface{} `json:"securityGroups" yaml:"securityGroups"`
	// The maximum price per unit hour that you are willing to pay for a Spot Instance.
	//
	// If this value is not specified, the default is the Spot price specified for the fleet. To determine the Spot price per unit hour, divide the Spot price by the value of `WeightedCapacity` .
	SpotPrice *string `json:"spotPrice" yaml:"spotPrice"`
	// The IDs of the subnets in which to launch the instances.
	//
	// To specify multiple subnets, separate them using commas; for example, "subnet-1234abcdeexample1, subnet-0987cdef6example2".
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
	// The tags to apply during creation.
	TagSpecifications interface{} `json:"tagSpecifications" yaml:"tagSpecifications"`
	// The Base64-encoded user data that instances use when starting up.
	UserData *string `json:"userData" yaml:"userData"`
	// The number of units provided by the specified instance type.
	//
	// These are the same units that you chose to set the target capacity in terms of instances, or a performance characteristic such as vCPUs, memory, or I/O.
	//
	// If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the number of instances to the next whole number. If this value is not specified, the default is 1.
	WeightedCapacity *float64 `json:"weightedCapacity" yaml:"weightedCapacity"`
}

Specifies the launch specification for one or more Spot Instances.

If you include On-Demand capacity in your fleet request, you can't use `SpotFleetLaunchSpecification` ; you must use [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateconfig.html) .

TODO: EXAMPLE

type CfnSpotFleet_SpotFleetMonitoringProperty

type CfnSpotFleet_SpotFleetMonitoringProperty struct {
	// Enables monitoring for the instance.
	//
	// Default: `false`
	Enabled interface{} `json:"enabled" yaml:"enabled"`
}

Describes whether monitoring is enabled.

TODO: EXAMPLE

type CfnSpotFleet_SpotFleetRequestConfigDataProperty

type CfnSpotFleet_SpotFleetRequestConfigDataProperty struct {
	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that grants the Spot Fleet the permission to request, launch, terminate, and tag instances on your behalf.
	//
	// For more information, see [Spot Fleet Prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites) in the *Amazon EC2 User Guide for Linux Instances* . Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot Fleet request or when the Spot Fleet request expires, if you set `TerminateInstancesWithExpiration` .
	IamFleetRole *string `json:"iamFleetRole" yaml:"iamFleetRole"`
	// The number of units to request for the Spot Fleet.
	//
	// You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. If the request type is `maintain` , you can specify a target capacity of 0 and add capacity later.
	TargetCapacity *float64 `json:"targetCapacity" yaml:"targetCapacity"`
	// Indicates how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the Spot Fleet request.
	//
	// If the allocation strategy is `lowestPrice` , Spot Fleet launches instances from the Spot Instance pools with the lowest price. This is the default allocation strategy.
	//
	// If the allocation strategy is `diversified` , Spot Fleet launches instances from all the Spot Instance pools that you specify.
	//
	// If the allocation strategy is `capacityOptimized` (recommended), Spot Fleet launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching. To give certain instance types a higher chance of launching first, use `capacityOptimizedPrioritized` . Set a priority for each instance type by using the `Priority` parameter for `LaunchTemplateOverrides` . You can assign the same priority to different `LaunchTemplateOverrides` . EC2 implements the priorities on a best-effort basis, but optimizes for capacity first. `capacityOptimizedPrioritized` is supported only if your Spot Fleet uses a launch template. Note that if the `OnDemandAllocationStrategy` is set to `prioritized` , the same priority is applied when fulfilling On-Demand capacity.
	AllocationStrategy *string `json:"allocationStrategy" yaml:"allocationStrategy"`
	// Reserved.
	Context *string `json:"context" yaml:"context"`
	// Indicates whether running Spot Instances should be terminated if you decrease the target capacity of the Spot Fleet request below the current size of the Spot Fleet.
	ExcessCapacityTerminationPolicy *string `json:"excessCapacityTerminationPolicy" yaml:"excessCapacityTerminationPolicy"`
	// The behavior when a Spot Instance is interrupted.
	//
	// The default is `terminate` .
	InstanceInterruptionBehavior *string `json:"instanceInterruptionBehavior" yaml:"instanceInterruptionBehavior"`
	// The number of Spot pools across which to allocate your target Spot capacity.
	//
	// Valid only when Spot *AllocationStrategy* is set to `lowest-price` . Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify.
	//
	// Note that Spot Fleet attempts to draw Spot Instances from the number of pools that you specify on a best effort basis. If a pool runs out of Spot capacity before fulfilling your target capacity, Spot Fleet will continue to fulfill your request by drawing from the next cheapest pool. To ensure that your target capacity is met, you might receive Spot Instances from more than the number of pools that you specified. Similarly, if most of the pools have no Spot capacity, you might receive your full target capacity from fewer than the number of pools that you specified.
	InstancePoolsToUseCount *float64 `json:"instancePoolsToUseCount" yaml:"instancePoolsToUseCount"`
	// The launch specifications for the Spot Fleet request.
	//
	// If you specify `LaunchSpecifications` , you can't specify `LaunchTemplateConfigs` .
	LaunchSpecifications interface{} `json:"launchSpecifications" yaml:"launchSpecifications"`
	// The launch template and overrides.
	//
	// If you specify `LaunchTemplateConfigs` , you can't specify `LaunchSpecifications` .
	LaunchTemplateConfigs interface{} `json:"launchTemplateConfigs" yaml:"launchTemplateConfigs"`
	// One or more Classic Load Balancers and target groups to attach to the Spot Fleet request.
	//
	// Spot Fleet registers the running Spot Instances with the specified Classic Load Balancers and target groups.
	//
	// With Network Load Balancers, Spot Fleet cannot register instances that have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1.
	LoadBalancersConfig interface{} `json:"loadBalancersConfig" yaml:"loadBalancersConfig"`
	// The order of the launch template overrides to use in fulfilling On-Demand capacity.
	//
	// If you specify `lowestPrice` , Spot Fleet uses price to determine the order, launching the lowest price first. If you specify `prioritized` , Spot Fleet uses the priority that you assign to each Spot Fleet launch template override, launching the highest priority first. If you do not specify a value, Spot Fleet defaults to `lowestPrice` .
	OnDemandAllocationStrategy *string `json:"onDemandAllocationStrategy" yaml:"onDemandAllocationStrategy"`
	// The maximum amount per hour for On-Demand Instances that you're willing to pay.
	//
	// You can use the `onDemandMaxTotalPrice` parameter, the `spotMaxTotalPrice` parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the target capacity.
	OnDemandMaxTotalPrice *string `json:"onDemandMaxTotalPrice" yaml:"onDemandMaxTotalPrice"`
	// The number of On-Demand units to request.
	//
	// You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. If the request type is `maintain` , you can specify a target capacity of 0 and add capacity later.
	OnDemandTargetCapacity *float64 `json:"onDemandTargetCapacity" yaml:"onDemandTargetCapacity"`
	// Indicates whether Spot Fleet should replace unhealthy instances.
	ReplaceUnhealthyInstances interface{} `json:"replaceUnhealthyInstances" yaml:"replaceUnhealthyInstances"`
	// The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.
	SpotMaintenanceStrategies interface{} `json:"spotMaintenanceStrategies" yaml:"spotMaintenanceStrategies"`
	// The maximum amount per hour for Spot Instances that you're willing to pay.
	//
	// You can use the `spotdMaxTotalPrice` parameter, the `onDemandMaxTotalPrice` parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the target capacity.
	SpotMaxTotalPrice *string `json:"spotMaxTotalPrice" yaml:"spotMaxTotalPrice"`
	// The maximum price per unit hour that you are willing to pay for a Spot Instance.
	//
	// The default is the On-Demand price.
	SpotPrice *string `json:"spotPrice" yaml:"spotPrice"`
	// The unit for the target capacity.
	//
	// Default: `units` (translates to number of instances)
	TargetCapacityUnitType *string `json:"targetCapacityUnitType" yaml:"targetCapacityUnitType"`
	// Indicates whether running Spot Instances are terminated when the Spot Fleet request expires.
	TerminateInstancesWithExpiration interface{} `json:"terminateInstancesWithExpiration" yaml:"terminateInstancesWithExpiration"`
	// The type of request.
	//
	// Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it. When this value is `request` , the Spot Fleet only places the required requests. It does not attempt to replenish Spot Instances if capacity is diminished, nor does it submit requests in alternative Spot pools if capacity is not available. When this value is `maintain` , the Spot Fleet maintains the target capacity. The Spot Fleet places the required requests to meet capacity and automatically replenishes any interrupted instances. Default: `maintain` . `instant` is listed but is not used by Spot Fleet.
	Type *string `json:"type" yaml:"type"`
	// The start date and time of the request, in UTC format ( *YYYY* - *MM* - *DD* T *HH* : *MM* : *SS* Z).
	//
	// By default, Amazon EC2 starts fulfilling the request immediately.
	ValidFrom *string `json:"validFrom" yaml:"validFrom"`
	// The end date and time of the request, in UTC format ( *YYYY* - *MM* - *DD* T *HH* : *MM* : *SS* Z).
	//
	// After the end date and time, no new Spot Instance requests are placed or able to fulfill the request. If no value is specified, the Spot Fleet request remains until you cancel it.
	ValidUntil *string `json:"validUntil" yaml:"validUntil"`
}

Specifies the configuration of a Spot Fleet request.

For more information, see [How Spot Fleet Works](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet.html) in the *Amazon EC2 User Guide for Linux Instances* .

You must specify either `LaunchSpecifications` or `LaunchTemplateConfigs` .

TODO: EXAMPLE

type CfnSpotFleet_SpotFleetTagSpecificationProperty

type CfnSpotFleet_SpotFleetTagSpecificationProperty struct {
	// The type of resource.
	//
	// Currently, the only resource type that is supported is `instance` . To tag the Spot Fleet request on creation, use the `TagSpecifications` parameter in [`SpotFleetRequestConfigData`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetRequestConfigData.html) .
	ResourceType *string `json:"resourceType" yaml:"resourceType"`
	// The tags.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

The tags for a Spot Fleet resource.

TODO: EXAMPLE

type CfnSpotFleet_SpotMaintenanceStrategiesProperty

type CfnSpotFleet_SpotMaintenanceStrategiesProperty struct {
	// The Spot Instance replacement strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted.
	//
	// For more information, see [Capacity rebalancing](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-capacity-rebalance.html) in the *Amazon EC2 User Guide for Linux Instances* .
	CapacityRebalance interface{} `json:"capacityRebalance" yaml:"capacityRebalance"`
}

The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.

TODO: EXAMPLE

type CfnSpotFleet_SpotPlacementProperty

type CfnSpotFleet_SpotPlacementProperty struct {
	// The Availability Zone.
	//
	// To specify multiple Availability Zones, separate them using commas; for example, "us-west-2a, us-west-2b".
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The name of the placement group.
	GroupName *string `json:"groupName" yaml:"groupName"`
	// The tenancy of the instance (if the instance is running in a VPC).
	//
	// An instance with a tenancy of `dedicated` runs on single-tenant hardware. The `host` tenancy is not supported for Spot Instances.
	Tenancy *string `json:"tenancy" yaml:"tenancy"`
}

Describes Spot Instance placement.

TODO: EXAMPLE

type CfnSpotFleet_TargetGroupProperty

type CfnSpotFleet_TargetGroupProperty struct {
	// The Amazon Resource Name (ARN) of the target group.
	Arn *string `json:"arn" yaml:"arn"`
}

Describes a load balancer target group.

TODO: EXAMPLE

type CfnSpotFleet_TargetGroupsConfigProperty

type CfnSpotFleet_TargetGroupsConfigProperty struct {
	// One or more target groups.
	TargetGroups interface{} `json:"targetGroups" yaml:"targetGroups"`
}

Describes the target groups to attach to a Spot Fleet.

Spot Fleet registers the running Spot Instances with these target groups.

TODO: EXAMPLE

type CfnSpotFleet_TotalLocalStorageGBRequestProperty

type CfnSpotFleet_TotalLocalStorageGBRequestProperty struct {
	// The maximum amount of total local storage, in GB.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum amount of total local storage, in GB.
	//
	// To specify no minimum limit, omit this parameter.
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum amount of total local storage, in GB.

TODO: EXAMPLE

type CfnSpotFleet_VCpuCountRangeRequestProperty

type CfnSpotFleet_VCpuCountRangeRequestProperty struct {
	// The maximum number of vCPUs.
	//
	// To specify no maximum limit, omit this parameter.
	Max *float64 `json:"max" yaml:"max"`
	// The minimum number of vCPUs.
	//
	// To specify no minimum limit, specify `0` .
	Min *float64 `json:"min" yaml:"min"`
}

The minimum and maximum number of vCPUs.

TODO: EXAMPLE

type CfnSubnet

type CfnSubnet interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AssignIpv6AddressOnCreation() interface{}
	SetAssignIpv6AddressOnCreation(val interface{})
	AttrAvailabilityZone() *string
	AttrId() *string
	AttrIpv6CidrBlocks() *[]*string
	AttrNetworkAclAssociationId() *string
	AttrOutpostArn() *string
	AttrVpcId() *string
	AvailabilityZone() *string
	SetAvailabilityZone(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CidrBlock() *string
	SetCidrBlock(val *string)
	CreationStack() *[]*string
	Ipv6CidrBlock() *string
	SetIpv6CidrBlock(val *string)
	LogicalId() *string
	MapPublicIpOnLaunch() interface{}
	SetMapPublicIpOnLaunch(val interface{})
	Node() constructs.Node
	OutpostArn() *string
	SetOutpostArn(val *string)
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	VpcId() *string
	SetVpcId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::Subnet`.

Specifies a subnet for a VPC.

When you create each subnet, you provide the VPC ID and IPv4 CIDR block for the subnet. After you create a subnet, you can't change its CIDR block. The size of the subnet's IPv4 CIDR block can be the same as a VPC's IPv4 CIDR block, or a subset of a VPC's IPv4 CIDR block. If you create more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest IPv4 subnet (and VPC) you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses).

If you've associated an IPv6 CIDR block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a /64 prefix length.

TODO: EXAMPLE

func NewCfnSubnet

func NewCfnSubnet(scope constructs.Construct, id *string, props *CfnSubnetProps) CfnSubnet

Create a new `AWS::EC2::Subnet`.

type CfnSubnetCidrBlock

type CfnSubnetCidrBlock interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Ipv6CidrBlock() *string
	SetIpv6CidrBlock(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	SubnetId() *string
	SetSubnetId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::SubnetCidrBlock`.

Associates a CIDR block with your subnet. You can associate a single IPv6 CIDR block with your subnet. An IPv6 CIDR block must have a prefix length of /64.

TODO: EXAMPLE

func NewCfnSubnetCidrBlock

func NewCfnSubnetCidrBlock(scope constructs.Construct, id *string, props *CfnSubnetCidrBlockProps) CfnSubnetCidrBlock

Create a new `AWS::EC2::SubnetCidrBlock`.

type CfnSubnetCidrBlockProps

type CfnSubnetCidrBlockProps struct {
	// The IPv6 network range for the subnet, in CIDR notation. The subnet size must use a /64 prefix length.
	//
	// This parameter is required for an IPv6 only subnet.
	Ipv6CidrBlock *string `json:"ipv6CidrBlock" yaml:"ipv6CidrBlock"`
	// The ID of the subnet.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
}

Properties for defining a `CfnSubnetCidrBlock`.

TODO: EXAMPLE

type CfnSubnetNetworkAclAssociation

type CfnSubnetNetworkAclAssociation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrAssociationId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	NetworkAclId() *string
	SetNetworkAclId(val *string)
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	SubnetId() *string
	SetSubnetId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::SubnetNetworkAclAssociation`.

Associates a subnet with a network ACL. For more information, see [ReplaceNetworkAclAssociation](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ReplaceNetworkAclAssociation.html) in the *Amazon EC2 API Reference* .

When `AWS::EC2::SubnetNetworkAclAssociation` resources are created during create or update operations, AWS CloudFormation adopts existing resources that share the same key properties (the properties that contribute to uniquely identify the resource). However, if the operation fails and rolls back, AWS CloudFormation deletes the previously out-of-band resources. You can protect against this behavior by using `Retain` deletion policies. For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html) .

TODO: EXAMPLE

func NewCfnSubnetNetworkAclAssociation

func NewCfnSubnetNetworkAclAssociation(scope constructs.Construct, id *string, props *CfnSubnetNetworkAclAssociationProps) CfnSubnetNetworkAclAssociation

Create a new `AWS::EC2::SubnetNetworkAclAssociation`.

type CfnSubnetNetworkAclAssociationProps

type CfnSubnetNetworkAclAssociationProps struct {
	// The ID of the network ACL.
	NetworkAclId *string `json:"networkAclId" yaml:"networkAclId"`
	// The ID of the subnet.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
}

Properties for defining a `CfnSubnetNetworkAclAssociation`.

TODO: EXAMPLE

type CfnSubnetProps

type CfnSubnetProps struct {
	// The IPv4 CIDR block assigned to the subnet.
	//
	// If you update this property, we create a new subnet, and then delete the existing one.
	CidrBlock *string `json:"cidrBlock" yaml:"cidrBlock"`
	// The ID of the VPC the subnet is in.
	//
	// If you update this property, you must also update the `CidrBlock` property.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// Indicates whether a network interface created in this subnet receives an IPv6 address. The default value is `false` .
	//
	// If you specify `AssignIpv6AddressOnCreation` , you must also specify `Ipv6CidrBlock` .
	//
	// If you specify `AssignIpv6AddressOnCreation` , you cannot specify `MapPublicIpOnLaunch` .
	AssignIpv6AddressOnCreation interface{} `json:"assignIpv6AddressOnCreation" yaml:"assignIpv6AddressOnCreation"`
	// The Availability Zone of the subnet.
	//
	// If you update this property, you must also update the `CidrBlock` property.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The IPv6 CIDR block.
	//
	// If you specify `AssignIpv6AddressOnCreation` , you must also specify `Ipv6CidrBlock` .
	Ipv6CidrBlock *string `json:"ipv6CidrBlock" yaml:"ipv6CidrBlock"`
	// Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is `false` .
	//
	// If you specify `MapPublicIpOnLaunch` , you cannot specify `AssignIpv6AddressOnCreation` .
	MapPublicIpOnLaunch interface{} `json:"mapPublicIpOnLaunch" yaml:"mapPublicIpOnLaunch"`
	// The Amazon Resource Name (ARN) of the Outpost.
	OutpostArn *string `json:"outpostArn" yaml:"outpostArn"`
	// Any tags assigned to the subnet.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnSubnet`.

TODO: EXAMPLE

type CfnSubnetRouteTableAssociation

type CfnSubnetRouteTableAssociation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	RouteTableId() *string
	SetRouteTableId(val *string)
	Stack() awscdk.Stack
	SubnetId() *string
	SetSubnetId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::SubnetRouteTableAssociation`.

Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. A route table can be associated with multiple subnets. If you want to associate a route table with a VPC, see [AWS::EC2::RouteTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route-table.html) .

TODO: EXAMPLE

func NewCfnSubnetRouteTableAssociation

func NewCfnSubnetRouteTableAssociation(scope constructs.Construct, id *string, props *CfnSubnetRouteTableAssociationProps) CfnSubnetRouteTableAssociation

Create a new `AWS::EC2::SubnetRouteTableAssociation`.

type CfnSubnetRouteTableAssociationProps

type CfnSubnetRouteTableAssociationProps struct {
	// The ID of the route table.
	//
	// The physical ID changes when the route table ID is changed.
	RouteTableId *string `json:"routeTableId" yaml:"routeTableId"`
	// The ID of the subnet.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
}

Properties for defining a `CfnSubnetRouteTableAssociation`.

TODO: EXAMPLE

type CfnTrafficMirrorFilter

type CfnTrafficMirrorFilter interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	LogicalId() *string
	NetworkServices() *[]*string
	SetNetworkServices(val *[]*string)
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TrafficMirrorFilter`.

Specifies a Traffic Mirror filter.

A Traffic Mirror filter is a set of rules that defines the traffic to mirror.

By default, no traffic is mirrored. To mirror traffic, use [AWS::EC2::TrafficMirrorFilterRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html) to add Traffic Mirror rules to the filter. The rules you add define what traffic gets mirrored.

TODO: EXAMPLE

func NewCfnTrafficMirrorFilter

func NewCfnTrafficMirrorFilter(scope constructs.Construct, id *string, props *CfnTrafficMirrorFilterProps) CfnTrafficMirrorFilter

Create a new `AWS::EC2::TrafficMirrorFilter`.

type CfnTrafficMirrorFilterProps

type CfnTrafficMirrorFilterProps struct {
	// The description of the Traffic Mirror filter.
	Description *string `json:"description" yaml:"description"`
	// The network service traffic that is associated with the Traffic Mirror filter.
	//
	// Valid values are `amazon-dns` .
	NetworkServices *[]*string `json:"networkServices" yaml:"networkServices"`
	// The tags to assign to a Traffic Mirror filter.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnTrafficMirrorFilter`.

TODO: EXAMPLE

type CfnTrafficMirrorFilterRule

type CfnTrafficMirrorFilterRule interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	DestinationCidrBlock() *string
	SetDestinationCidrBlock(val *string)
	DestinationPortRange() interface{}
	SetDestinationPortRange(val interface{})
	LogicalId() *string
	Node() constructs.Node
	Protocol() *float64
	SetProtocol(val *float64)
	Ref() *string
	RuleAction() *string
	SetRuleAction(val *string)
	RuleNumber() *float64
	SetRuleNumber(val *float64)
	SourceCidrBlock() *string
	SetSourceCidrBlock(val *string)
	SourcePortRange() interface{}
	SetSourcePortRange(val interface{})
	Stack() awscdk.Stack
	TrafficDirection() *string
	SetTrafficDirection(val *string)
	TrafficMirrorFilterId() *string
	SetTrafficMirrorFilterId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TrafficMirrorFilterRule`.

Creates a Traffic Mirror filter rule.

A Traffic Mirror rule defines the Traffic Mirror source traffic to mirror.

You need the Traffic Mirror filter ID when you create the rule.

TODO: EXAMPLE

func NewCfnTrafficMirrorFilterRule

func NewCfnTrafficMirrorFilterRule(scope constructs.Construct, id *string, props *CfnTrafficMirrorFilterRuleProps) CfnTrafficMirrorFilterRule

Create a new `AWS::EC2::TrafficMirrorFilterRule`.

type CfnTrafficMirrorFilterRuleProps

type CfnTrafficMirrorFilterRuleProps struct {
	// The destination CIDR block to assign to the Traffic Mirror rule.
	DestinationCidrBlock *string `json:"destinationCidrBlock" yaml:"destinationCidrBlock"`
	// The action to take on the filtered traffic.
	RuleAction *string `json:"ruleAction" yaml:"ruleAction"`
	// The number of the Traffic Mirror rule.
	//
	// This number must be unique for each Traffic Mirror rule in a given direction. The rules are processed in ascending order by rule number.
	RuleNumber *float64 `json:"ruleNumber" yaml:"ruleNumber"`
	// The source CIDR block to assign to the Traffic Mirror rule.
	SourceCidrBlock *string `json:"sourceCidrBlock" yaml:"sourceCidrBlock"`
	// The type of traffic.
	TrafficDirection *string `json:"trafficDirection" yaml:"trafficDirection"`
	// The ID of the filter that this rule is associated with.
	TrafficMirrorFilterId *string `json:"trafficMirrorFilterId" yaml:"trafficMirrorFilterId"`
	// The description of the Traffic Mirror rule.
	Description *string `json:"description" yaml:"description"`
	// The destination port range.
	DestinationPortRange interface{} `json:"destinationPortRange" yaml:"destinationPortRange"`
	// The protocol, for example UDP, to assign to the Traffic Mirror rule.
	//
	// For information about the protocol value, see [Protocol Numbers](https://docs.aws.amazon.com/https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml) on the Internet Assigned Numbers Authority (IANA) website.
	Protocol *float64 `json:"protocol" yaml:"protocol"`
	// The source port range.
	SourcePortRange interface{} `json:"sourcePortRange" yaml:"sourcePortRange"`
}

Properties for defining a `CfnTrafficMirrorFilterRule`.

TODO: EXAMPLE

type CfnTrafficMirrorFilterRule_TrafficMirrorPortRangeProperty

type CfnTrafficMirrorFilterRule_TrafficMirrorPortRangeProperty struct {
	// The start of the Traffic Mirror port range.
	//
	// This applies to the TCP and UDP protocols.
	FromPort *float64 `json:"fromPort" yaml:"fromPort"`
	// The end of the Traffic Mirror port range.
	//
	// This applies to the TCP and UDP protocols.
	ToPort *float64 `json:"toPort" yaml:"toPort"`
}

Describes the Traffic Mirror port range.

TODO: EXAMPLE

type CfnTrafficMirrorSession

type CfnTrafficMirrorSession interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	LogicalId() *string
	NetworkInterfaceId() *string
	SetNetworkInterfaceId(val *string)
	Node() constructs.Node
	PacketLength() *float64
	SetPacketLength(val *float64)
	Ref() *string
	SessionNumber() *float64
	SetSessionNumber(val *float64)
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	TrafficMirrorFilterId() *string
	SetTrafficMirrorFilterId(val *string)
	TrafficMirrorTargetId() *string
	SetTrafficMirrorTargetId(val *string)
	UpdatedProperites() *map[string]interface{}
	VirtualNetworkId() *float64
	SetVirtualNetworkId(val *float64)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TrafficMirrorSession`.

Creates a Traffic Mirror session.

A Traffic Mirror session actively copies packets from a Traffic Mirror source to a Traffic Mirror target. Create a filter, and then assign it to the session to define a subset of the traffic to mirror, for example all TCP traffic.

The Traffic Mirror source and the Traffic Mirror target (monitoring appliances) can be in the same VPC, or in a different VPC connected via VPC peering or a transit gateway.

By default, no traffic is mirrored. Use [AWS::EC2::TrafficMirrorFilterRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html) to specify filter rules that specify the traffic to mirror.

TODO: EXAMPLE

func NewCfnTrafficMirrorSession

func NewCfnTrafficMirrorSession(scope constructs.Construct, id *string, props *CfnTrafficMirrorSessionProps) CfnTrafficMirrorSession

Create a new `AWS::EC2::TrafficMirrorSession`.

type CfnTrafficMirrorSessionProps

type CfnTrafficMirrorSessionProps struct {
	// The ID of the source network interface.
	NetworkInterfaceId *string `json:"networkInterfaceId" yaml:"networkInterfaceId"`
	// The session number determines the order in which sessions are evaluated when an interface is used by multiple sessions.
	//
	// The first session with a matching filter is the one that mirrors the packets.
	//
	// Valid values are 1-32766.
	SessionNumber *float64 `json:"sessionNumber" yaml:"sessionNumber"`
	// The ID of the Traffic Mirror filter.
	TrafficMirrorFilterId *string `json:"trafficMirrorFilterId" yaml:"trafficMirrorFilterId"`
	// The ID of the Traffic Mirror target.
	TrafficMirrorTargetId *string `json:"trafficMirrorTargetId" yaml:"trafficMirrorTargetId"`
	// The description of the Traffic Mirror session.
	Description *string `json:"description" yaml:"description"`
	// The number of bytes in each packet to mirror.
	//
	// These are bytes after the VXLAN header. Do not specify this parameter when you want to mirror the entire packet. To mirror a subset of the packet, set this to the length (in bytes) that you want to mirror. For example, if you set this value to 100, then the first 100 bytes that meet the filter criteria are copied to the target.
	//
	// If you do not want to mirror the entire packet, use the `PacketLength` parameter to specify the number of bytes in each packet to mirror.
	PacketLength *float64 `json:"packetLength" yaml:"packetLength"`
	// The tags to assign to a Traffic Mirror session.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
	// The VXLAN ID for the Traffic Mirror session.
	//
	// For more information about the VXLAN protocol, see [RFC 7348](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc7348) . If you do not specify a `VirtualNetworkId` , an account-wide unique id is chosen at random.
	VirtualNetworkId *float64 `json:"virtualNetworkId" yaml:"virtualNetworkId"`
}

Properties for defining a `CfnTrafficMirrorSession`.

TODO: EXAMPLE

type CfnTrafficMirrorTarget

type CfnTrafficMirrorTarget interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	LogicalId() *string
	NetworkInterfaceId() *string
	SetNetworkInterfaceId(val *string)
	NetworkLoadBalancerArn() *string
	SetNetworkLoadBalancerArn(val *string)
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TrafficMirrorTarget`.

Specifies a target for your Traffic Mirror session.

A Traffic Mirror target is the destination for mirrored traffic. The Traffic Mirror source and the Traffic Mirror target (monitoring appliances) can be in the same VPC, or in different VPCs connected via VPC peering or a transit gateway.

A Traffic Mirror target can be a network interface, or a Network Load Balancer.

To use the target in a Traffic Mirror session, use [AWS::EC2::TrafficMirrorSession](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html) .

TODO: EXAMPLE

func NewCfnTrafficMirrorTarget

func NewCfnTrafficMirrorTarget(scope constructs.Construct, id *string, props *CfnTrafficMirrorTargetProps) CfnTrafficMirrorTarget

Create a new `AWS::EC2::TrafficMirrorTarget`.

type CfnTrafficMirrorTargetProps

type CfnTrafficMirrorTargetProps struct {
	// The description of the Traffic Mirror target.
	Description *string `json:"description" yaml:"description"`
	// The network interface ID that is associated with the target.
	NetworkInterfaceId *string `json:"networkInterfaceId" yaml:"networkInterfaceId"`
	// The Amazon Resource Name (ARN) of the Network Load Balancer that is associated with the target.
	NetworkLoadBalancerArn *string `json:"networkLoadBalancerArn" yaml:"networkLoadBalancerArn"`
	// The tags to assign to the Traffic Mirror target.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnTrafficMirrorTarget`.

TODO: EXAMPLE

type CfnTransitGateway

type CfnTransitGateway interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AmazonSideAsn() *float64
	SetAmazonSideAsn(val *float64)
	AssociationDefaultRouteTableId() *string
	SetAssociationDefaultRouteTableId(val *string)
	AttrId() *string
	AutoAcceptSharedAttachments() *string
	SetAutoAcceptSharedAttachments(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DefaultRouteTableAssociation() *string
	SetDefaultRouteTableAssociation(val *string)
	DefaultRouteTablePropagation() *string
	SetDefaultRouteTablePropagation(val *string)
	Description() *string
	SetDescription(val *string)
	DnsSupport() *string
	SetDnsSupport(val *string)
	LogicalId() *string
	MulticastSupport() *string
	SetMulticastSupport(val *string)
	Node() constructs.Node
	PropagationDefaultRouteTableId() *string
	SetPropagationDefaultRouteTableId(val *string)
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	TransitGatewayCidrBlocks() *[]*string
	SetTransitGatewayCidrBlocks(val *[]*string)
	UpdatedProperites() *map[string]interface{}
	VpnEcmpSupport() *string
	SetVpnEcmpSupport(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TransitGateway`.

Specifies a transit gateway.

You can use a transit gateway to interconnect your virtual private clouds (VPC) and on-premises networks. After the transit gateway enters the `available` state, you can attach your VPCs and VPN connections to the transit gateway.

To attach your VPCs, use [AWS::EC2::TransitGatewayAttachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayattachment.html) .

To attach a VPN connection, use [AWS::EC2::CustomerGateway](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html) to create a customer gateway and specify the ID of the customer gateway and the ID of the transit gateway in a call to [AWS::EC2::VPNConnection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html) .

When you create a transit gateway, we create a default transit gateway route table and use it as the default association route table and the default propagation route table. You can use [AWS::EC2::TransitGatewayRouteTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetable.html) to create additional transit gateway route tables. If you disable automatic route propagation, we do not create a default transit gateway route table. You can use [AWS::EC2::TransitGatewayRouteTablePropagation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetablepropagation.html) to propagate routes from a resource attachment to a transit gateway route table. If you disable automatic associations, you can use [AWS::EC2::TransitGatewayRouteTableAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetableassociation.html) to associate a resource attachment with a transit gateway route table.

TODO: EXAMPLE

func NewCfnTransitGateway

func NewCfnTransitGateway(scope constructs.Construct, id *string, props *CfnTransitGatewayProps) CfnTransitGateway

Create a new `AWS::EC2::TransitGateway`.

type CfnTransitGatewayAttachment

type CfnTransitGatewayAttachment interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	SubnetIds() *[]*string
	SetSubnetIds(val *[]*string)
	Tags() awscdk.TagManager
	TransitGatewayId() *string
	SetTransitGatewayId(val *string)
	UpdatedProperites() *map[string]interface{}
	VpcId() *string
	SetVpcId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TransitGatewayAttachment`.

Attaches a VPC to a transit gateway.

If you attach a VPC with a CIDR range that overlaps the CIDR range of a VPC that is already attached, the new VPC CIDR range is not propagated to the default propagation route table.

To send VPC traffic to an attached transit gateway, add a route to the VPC route table using [AWS::EC2::Route](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html) .

TODO: EXAMPLE

func NewCfnTransitGatewayAttachment

func NewCfnTransitGatewayAttachment(scope constructs.Construct, id *string, props *CfnTransitGatewayAttachmentProps) CfnTransitGatewayAttachment

Create a new `AWS::EC2::TransitGatewayAttachment`.

type CfnTransitGatewayAttachmentProps

type CfnTransitGatewayAttachmentProps struct {
	// The IDs of one or more subnets.
	//
	// You can specify only one subnet per Availability Zone. You must specify at least one subnet, but we recommend that you specify two subnets for better availability. The transit gateway uses one IP address from each specified subnet.
	SubnetIds *[]*string `json:"subnetIds" yaml:"subnetIds"`
	// The ID of the transit gateway.
	TransitGatewayId *string `json:"transitGatewayId" yaml:"transitGatewayId"`
	// The ID of the VPC.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// The tags for the attachment.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnTransitGatewayAttachment`.

TODO: EXAMPLE

type CfnTransitGatewayConnect

type CfnTransitGatewayConnect interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrCreationTime() *string
	AttrState() *string
	AttrTransitGatewayAttachmentId() *string
	AttrTransitGatewayId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Options() interface{}
	SetOptions(val interface{})
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	TransportTransitGatewayAttachmentId() *string
	SetTransportTransitGatewayAttachmentId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TransitGatewayConnect`.

Creates a Connect attachment from a specified transit gateway attachment. A Connect attachment is a GRE-based tunnel attachment that you can use to establish a connection between a transit gateway and an appliance.

A Connect attachment uses an existing VPC or AWS Direct Connect attachment as the underlying transport mechanism.

TODO: EXAMPLE

func NewCfnTransitGatewayConnect

func NewCfnTransitGatewayConnect(scope constructs.Construct, id *string, props *CfnTransitGatewayConnectProps) CfnTransitGatewayConnect

Create a new `AWS::EC2::TransitGatewayConnect`.

type CfnTransitGatewayConnectProps

type CfnTransitGatewayConnectProps struct {
	// The Connect attachment options.
	//
	// - protocol (gre)
	Options interface{} `json:"options" yaml:"options"`
	// The ID of the attachment from which the Connect attachment was created.
	TransportTransitGatewayAttachmentId *string `json:"transportTransitGatewayAttachmentId" yaml:"transportTransitGatewayAttachmentId"`
	// The tags for the attachment.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnTransitGatewayConnect`.

TODO: EXAMPLE

type CfnTransitGatewayConnect_TransitGatewayConnectOptionsProperty

type CfnTransitGatewayConnect_TransitGatewayConnectOptionsProperty struct {
	// The tunnel protocol.
	Protocol *string `json:"protocol" yaml:"protocol"`
}

Describes the Connect attachment options.

TODO: EXAMPLE

type CfnTransitGatewayMulticastDomain

type CfnTransitGatewayMulticastDomain interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrCreationTime() *string
	AttrState() *string
	AttrTransitGatewayMulticastDomainArn() *string
	AttrTransitGatewayMulticastDomainId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Options() interface{}
	SetOptions(val interface{})
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	TransitGatewayId() *string
	SetTransitGatewayId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TransitGatewayMulticastDomain`.

Creates a multicast domain using the specified transit gateway.

The transit gateway must be in the available state before you create a domain.

TODO: EXAMPLE

func NewCfnTransitGatewayMulticastDomain

func NewCfnTransitGatewayMulticastDomain(scope constructs.Construct, id *string, props *CfnTransitGatewayMulticastDomainProps) CfnTransitGatewayMulticastDomain

Create a new `AWS::EC2::TransitGatewayMulticastDomain`.

type CfnTransitGatewayMulticastDomainAssociation

type CfnTransitGatewayMulticastDomainAssociation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrResourceId() *string
	AttrResourceType() *string
	AttrState() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	SubnetId() *string
	SetSubnetId(val *string)
	TransitGatewayAttachmentId() *string
	SetTransitGatewayAttachmentId(val *string)
	TransitGatewayMulticastDomainId() *string
	SetTransitGatewayMulticastDomainId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TransitGatewayMulticastDomainAssociation`.

Associates the specified subnets and transit gateway attachments with the specified transit gateway multicast domain.

The transit gateway attachment must be in the available state before you can add a resource.

TODO: EXAMPLE

func NewCfnTransitGatewayMulticastDomainAssociation

func NewCfnTransitGatewayMulticastDomainAssociation(scope constructs.Construct, id *string, props *CfnTransitGatewayMulticastDomainAssociationProps) CfnTransitGatewayMulticastDomainAssociation

Create a new `AWS::EC2::TransitGatewayMulticastDomainAssociation`.

type CfnTransitGatewayMulticastDomainAssociationProps

type CfnTransitGatewayMulticastDomainAssociationProps struct {
	// The IDs of the subnets to associate with the transit gateway multicast domain.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
	// The ID of the transit gateway attachment.
	TransitGatewayAttachmentId *string `json:"transitGatewayAttachmentId" yaml:"transitGatewayAttachmentId"`
	// The ID of the transit gateway multicast domain.
	TransitGatewayMulticastDomainId *string `json:"transitGatewayMulticastDomainId" yaml:"transitGatewayMulticastDomainId"`
}

Properties for defining a `CfnTransitGatewayMulticastDomainAssociation`.

TODO: EXAMPLE

type CfnTransitGatewayMulticastDomainProps

type CfnTransitGatewayMulticastDomainProps struct {
	// The ID of the transit gateway.
	TransitGatewayId *string `json:"transitGatewayId" yaml:"transitGatewayId"`
	// The options for the transit gateway multicast domain.
	//
	// - AutoAcceptSharedAssociations (enable | disable)
	// - Igmpv2Support (enable | disable)
	// - StaticSourcesSupport (enable | disable)
	Options interface{} `json:"options" yaml:"options"`
	// The tags for the transit gateway multicast domain.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnTransitGatewayMulticastDomain`.

TODO: EXAMPLE

type CfnTransitGatewayMulticastGroupMember

type CfnTransitGatewayMulticastGroupMember interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrGroupMember() awscdk.IResolvable
	AttrGroupSource() awscdk.IResolvable
	AttrMemberType() *string
	AttrResourceId() *string
	AttrResourceType() *string
	AttrSourceType() *string
	AttrSubnetId() *string
	AttrTransitGatewayAttachmentId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	GroupIpAddress() *string
	SetGroupIpAddress(val *string)
	LogicalId() *string
	NetworkInterfaceId() *string
	SetNetworkInterfaceId(val *string)
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	TransitGatewayMulticastDomainId() *string
	SetTransitGatewayMulticastDomainId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TransitGatewayMulticastGroupMember`.

Registers members (network interfaces) with the transit gateway multicast group. A member is a network interface associated with a supported EC2 instance that receives multicast traffic. For information about supported instances, see [Multicast Consideration](https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-limits.html#multicast-limits) in *Amazon VPC Transit Gateways* .

TODO: EXAMPLE

func NewCfnTransitGatewayMulticastGroupMember

func NewCfnTransitGatewayMulticastGroupMember(scope constructs.Construct, id *string, props *CfnTransitGatewayMulticastGroupMemberProps) CfnTransitGatewayMulticastGroupMember

Create a new `AWS::EC2::TransitGatewayMulticastGroupMember`.

type CfnTransitGatewayMulticastGroupMemberProps

type CfnTransitGatewayMulticastGroupMemberProps struct {
	// The IP address assigned to the transit gateway multicast group.
	GroupIpAddress *string `json:"groupIpAddress" yaml:"groupIpAddress"`
	// The group members' network interface IDs to register with the transit gateway multicast group.
	NetworkInterfaceId *string `json:"networkInterfaceId" yaml:"networkInterfaceId"`
	// The ID of the transit gateway multicast domain.
	TransitGatewayMulticastDomainId *string `json:"transitGatewayMulticastDomainId" yaml:"transitGatewayMulticastDomainId"`
}

Properties for defining a `CfnTransitGatewayMulticastGroupMember`.

TODO: EXAMPLE

type CfnTransitGatewayMulticastGroupSource

type CfnTransitGatewayMulticastGroupSource interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrGroupMember() awscdk.IResolvable
	AttrGroupSource() awscdk.IResolvable
	AttrMemberType() *string
	AttrResourceId() *string
	AttrResourceType() *string
	AttrSourceType() *string
	AttrSubnetId() *string
	AttrTransitGatewayAttachmentId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	GroupIpAddress() *string
	SetGroupIpAddress(val *string)
	LogicalId() *string
	NetworkInterfaceId() *string
	SetNetworkInterfaceId(val *string)
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	TransitGatewayMulticastDomainId() *string
	SetTransitGatewayMulticastDomainId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TransitGatewayMulticastGroupSource`.

Registers sources (network interfaces) with the specified transit gateway multicast domain.

A multicast source is a network interface attached to a supported instance that sends multicast traffic. For information about supported instances, see [Multicast Considerations](https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-limits.html#multicast-limits) in *Amazon VPC Transit Gateways* .

TODO: EXAMPLE

func NewCfnTransitGatewayMulticastGroupSource

func NewCfnTransitGatewayMulticastGroupSource(scope constructs.Construct, id *string, props *CfnTransitGatewayMulticastGroupSourceProps) CfnTransitGatewayMulticastGroupSource

Create a new `AWS::EC2::TransitGatewayMulticastGroupSource`.

type CfnTransitGatewayMulticastGroupSourceProps

type CfnTransitGatewayMulticastGroupSourceProps struct {
	// The IP address assigned to the transit gateway multicast group.
	GroupIpAddress *string `json:"groupIpAddress" yaml:"groupIpAddress"`
	// The group sources' network interface IDs to register with the transit gateway multicast group.
	NetworkInterfaceId *string `json:"networkInterfaceId" yaml:"networkInterfaceId"`
	// The ID of the transit gateway multicast domain.
	TransitGatewayMulticastDomainId *string `json:"transitGatewayMulticastDomainId" yaml:"transitGatewayMulticastDomainId"`
}

Properties for defining a `CfnTransitGatewayMulticastGroupSource`.

TODO: EXAMPLE

type CfnTransitGatewayPeeringAttachment

type CfnTransitGatewayPeeringAttachment interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrCreationTime() *string
	AttrState() *string
	AttrTransitGatewayAttachmentId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	PeerAccountId() *string
	SetPeerAccountId(val *string)
	PeerRegion() *string
	SetPeerRegion(val *string)
	PeerTransitGatewayId() *string
	SetPeerTransitGatewayId(val *string)
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	TransitGatewayId() *string
	SetTransitGatewayId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TransitGatewayPeeringAttachment`.

Requests a transit gateway peering attachment between the specified transit gateway (requester) and a peer transit gateway (accepter). The transit gateways must be in different Regions. The peer transit gateway can be in your account or a different AWS account .

After you create the peering attachment, the owner of the accepter transit gateway must accept the attachment request.

TODO: EXAMPLE

func NewCfnTransitGatewayPeeringAttachment

func NewCfnTransitGatewayPeeringAttachment(scope constructs.Construct, id *string, props *CfnTransitGatewayPeeringAttachmentProps) CfnTransitGatewayPeeringAttachment

Create a new `AWS::EC2::TransitGatewayPeeringAttachment`.

type CfnTransitGatewayPeeringAttachmentProps

type CfnTransitGatewayPeeringAttachmentProps struct {
	// The ID of the AWS account that owns the transit gateway.
	PeerAccountId *string `json:"peerAccountId" yaml:"peerAccountId"`
	// The Region of the transit gateway.
	PeerRegion *string `json:"peerRegion" yaml:"peerRegion"`
	// The ID of the transit gateway.
	PeerTransitGatewayId *string `json:"peerTransitGatewayId" yaml:"peerTransitGatewayId"`
	// The ID of the transit gateway peering attachment.
	TransitGatewayId *string `json:"transitGatewayId" yaml:"transitGatewayId"`
	// The tags for the transit gateway peering attachment.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnTransitGatewayPeeringAttachment`.

TODO: EXAMPLE

type CfnTransitGatewayProps

type CfnTransitGatewayProps struct {
	// A private Autonomous System Number (ASN) for the Amazon side of a BGP session.
	//
	// The range is 64512 to 65534 for 16-bit ASNs. The default is 64512.
	AmazonSideAsn *float64 `json:"amazonSideAsn" yaml:"amazonSideAsn"`
	// The ID of the default association route table.
	AssociationDefaultRouteTableId *string `json:"associationDefaultRouteTableId" yaml:"associationDefaultRouteTableId"`
	// Enable or disable automatic acceptance of attachment requests.
	//
	// Disabled by default.
	AutoAcceptSharedAttachments *string `json:"autoAcceptSharedAttachments" yaml:"autoAcceptSharedAttachments"`
	// Enable or disable automatic association with the default association route table.
	//
	// Enabled by default.
	DefaultRouteTableAssociation *string `json:"defaultRouteTableAssociation" yaml:"defaultRouteTableAssociation"`
	// Enable or disable automatic propagation of routes to the default propagation route table.
	//
	// Enabled by default.
	DefaultRouteTablePropagation *string `json:"defaultRouteTablePropagation" yaml:"defaultRouteTablePropagation"`
	// The description of the transit gateway.
	Description *string `json:"description" yaml:"description"`
	// Enable or disable DNS support.
	//
	// Enabled by default.
	DnsSupport *string `json:"dnsSupport" yaml:"dnsSupport"`
	// Indicates whether multicast is enabled on the transit gateway.
	MulticastSupport *string `json:"multicastSupport" yaml:"multicastSupport"`
	// The ID of the default propagation route table.
	PropagationDefaultRouteTableId *string `json:"propagationDefaultRouteTableId" yaml:"propagationDefaultRouteTableId"`
	// The tags for the transit gateway.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
	// The transit gateway CIDR blocks.
	TransitGatewayCidrBlocks *[]*string `json:"transitGatewayCidrBlocks" yaml:"transitGatewayCidrBlocks"`
	// Enable or disable Equal Cost Multipath Protocol support.
	//
	// Enabled by default.
	VpnEcmpSupport *string `json:"vpnEcmpSupport" yaml:"vpnEcmpSupport"`
}

Properties for defining a `CfnTransitGateway`.

TODO: EXAMPLE

type CfnTransitGatewayRoute

type CfnTransitGatewayRoute interface {
	awscdk.CfnResource
	awscdk.IInspectable
	Blackhole() interface{}
	SetBlackhole(val interface{})
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DestinationCidrBlock() *string
	SetDestinationCidrBlock(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	TransitGatewayAttachmentId() *string
	SetTransitGatewayAttachmentId(val *string)
	TransitGatewayRouteTableId() *string
	SetTransitGatewayRouteTableId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TransitGatewayRoute`.

Specifies a static route for a transit gateway route table.

TODO: EXAMPLE

func NewCfnTransitGatewayRoute

func NewCfnTransitGatewayRoute(scope constructs.Construct, id *string, props *CfnTransitGatewayRouteProps) CfnTransitGatewayRoute

Create a new `AWS::EC2::TransitGatewayRoute`.

type CfnTransitGatewayRouteProps

type CfnTransitGatewayRouteProps struct {
	// The ID of the transit gateway route table.
	TransitGatewayRouteTableId *string `json:"transitGatewayRouteTableId" yaml:"transitGatewayRouteTableId"`
	// Indicates whether to drop traffic that matches this route.
	Blackhole interface{} `json:"blackhole" yaml:"blackhole"`
	// The CIDR block used for destination matches.
	DestinationCidrBlock *string `json:"destinationCidrBlock" yaml:"destinationCidrBlock"`
	// The ID of the attachment.
	TransitGatewayAttachmentId *string `json:"transitGatewayAttachmentId" yaml:"transitGatewayAttachmentId"`
}

Properties for defining a `CfnTransitGatewayRoute`.

TODO: EXAMPLE

type CfnTransitGatewayRouteTable

type CfnTransitGatewayRouteTable interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	TransitGatewayId() *string
	SetTransitGatewayId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TransitGatewayRouteTable`.

Specifies a route table for a transit gateway.

TODO: EXAMPLE

func NewCfnTransitGatewayRouteTable

func NewCfnTransitGatewayRouteTable(scope constructs.Construct, id *string, props *CfnTransitGatewayRouteTableProps) CfnTransitGatewayRouteTable

Create a new `AWS::EC2::TransitGatewayRouteTable`.

type CfnTransitGatewayRouteTableAssociation

type CfnTransitGatewayRouteTableAssociation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	TransitGatewayAttachmentId() *string
	SetTransitGatewayAttachmentId(val *string)
	TransitGatewayRouteTableId() *string
	SetTransitGatewayRouteTableId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TransitGatewayRouteTableAssociation`.

Associates the specified attachment with the specified transit gateway route table. You can associate one route table with an attachment.

Before you can update the route table associated with an attachment, you must disassociate the transit gateway route table that is currently associated with the attachment. First update the stack to remove the associated transit gateway route table, and then update the stack with the ID of the new transit gateway route table to associate.

TODO: EXAMPLE

func NewCfnTransitGatewayRouteTableAssociation

func NewCfnTransitGatewayRouteTableAssociation(scope constructs.Construct, id *string, props *CfnTransitGatewayRouteTableAssociationProps) CfnTransitGatewayRouteTableAssociation

Create a new `AWS::EC2::TransitGatewayRouteTableAssociation`.

type CfnTransitGatewayRouteTableAssociationProps

type CfnTransitGatewayRouteTableAssociationProps struct {
	// The ID of the attachment.
	TransitGatewayAttachmentId *string `json:"transitGatewayAttachmentId" yaml:"transitGatewayAttachmentId"`
	// The ID of the route table for the transit gateway.
	TransitGatewayRouteTableId *string `json:"transitGatewayRouteTableId" yaml:"transitGatewayRouteTableId"`
}

Properties for defining a `CfnTransitGatewayRouteTableAssociation`.

TODO: EXAMPLE

type CfnTransitGatewayRouteTablePropagation

type CfnTransitGatewayRouteTablePropagation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	TransitGatewayAttachmentId() *string
	SetTransitGatewayAttachmentId(val *string)
	TransitGatewayRouteTableId() *string
	SetTransitGatewayRouteTableId(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TransitGatewayRouteTablePropagation`.

Enables the specified attachment to propagate routes to the specified propagation route table.

For more information about enabling transit gateway route propagation, see [EnableTransitGatewayRouteTablePropagation](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EnableTransitGatewayRouteTablePropagation.html) in the *Amazon EC2 API Reference* .

TODO: EXAMPLE

func NewCfnTransitGatewayRouteTablePropagation

func NewCfnTransitGatewayRouteTablePropagation(scope constructs.Construct, id *string, props *CfnTransitGatewayRouteTablePropagationProps) CfnTransitGatewayRouteTablePropagation

Create a new `AWS::EC2::TransitGatewayRouteTablePropagation`.

type CfnTransitGatewayRouteTablePropagationProps

type CfnTransitGatewayRouteTablePropagationProps struct {
	// The ID of the attachment.
	TransitGatewayAttachmentId *string `json:"transitGatewayAttachmentId" yaml:"transitGatewayAttachmentId"`
	// The ID of the propagation route table.
	TransitGatewayRouteTableId *string `json:"transitGatewayRouteTableId" yaml:"transitGatewayRouteTableId"`
}

Properties for defining a `CfnTransitGatewayRouteTablePropagation`.

TODO: EXAMPLE

type CfnTransitGatewayRouteTableProps

type CfnTransitGatewayRouteTableProps struct {
	// The ID of the transit gateway.
	TransitGatewayId *string `json:"transitGatewayId" yaml:"transitGatewayId"`
	// Any tags assigned to the route table.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnTransitGatewayRouteTable`.

TODO: EXAMPLE

type CfnTransitGatewayVpcAttachment

type CfnTransitGatewayVpcAttachment interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AddSubnetIds() *[]*string
	SetAddSubnetIds(val *[]*string)
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Options() interface{}
	SetOptions(val interface{})
	Ref() *string
	RemoveSubnetIds() *[]*string
	SetRemoveSubnetIds(val *[]*string)
	Stack() awscdk.Stack
	SubnetIds() *[]*string
	SetSubnetIds(val *[]*string)
	Tags() awscdk.TagManager
	TransitGatewayId() *string
	SetTransitGatewayId(val *string)
	UpdatedProperites() *map[string]interface{}
	VpcId() *string
	SetVpcId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::TransitGatewayVpcAttachment`.

Specifies a VPC attachment.

TODO: EXAMPLE

func NewCfnTransitGatewayVpcAttachment

func NewCfnTransitGatewayVpcAttachment(scope constructs.Construct, id *string, props *CfnTransitGatewayVpcAttachmentProps) CfnTransitGatewayVpcAttachment

Create a new `AWS::EC2::TransitGatewayVpcAttachment`.

type CfnTransitGatewayVpcAttachmentProps

type CfnTransitGatewayVpcAttachmentProps struct {
	// The IDs of the subnets.
	SubnetIds *[]*string `json:"subnetIds" yaml:"subnetIds"`
	// The ID of the transit gateway.
	TransitGatewayId *string `json:"transitGatewayId" yaml:"transitGatewayId"`
	// The ID of the VPC.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// The IDs of one or more subnets to add.
	//
	// You can specify at most one subnet per Availability Zone.
	AddSubnetIds *[]*string `json:"addSubnetIds" yaml:"addSubnetIds"`
	// The VPC attachment options in JSON or YAML.
	//
	// - DnsSupport (enable | disable)
	// - Ipv6Support (enable| disable)
	// - ApplianceModeSupport (enable | disable)
	Options interface{} `json:"options" yaml:"options"`
	// The IDs of one or more subnets to remove.
	RemoveSubnetIds *[]*string `json:"removeSubnetIds" yaml:"removeSubnetIds"`
	// The tags for the VPC attachment.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnTransitGatewayVpcAttachment`.

TODO: EXAMPLE

type CfnVPC

type CfnVPC interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrCidrBlock() *string
	AttrCidrBlockAssociations() *[]*string
	AttrDefaultNetworkAcl() *string
	AttrDefaultSecurityGroup() *string
	AttrIpv6CidrBlocks() *[]*string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CidrBlock() *string
	SetCidrBlock(val *string)
	CreationStack() *[]*string
	EnableDnsHostnames() interface{}
	SetEnableDnsHostnames(val interface{})
	EnableDnsSupport() interface{}
	SetEnableDnsSupport(val interface{})
	InstanceTenancy() *string
	SetInstanceTenancy(val *string)
	Ipv4IpamPoolId() *string
	SetIpv4IpamPoolId(val *string)
	Ipv4NetmaskLength() *float64
	SetIpv4NetmaskLength(val *float64)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::VPC`.

Specifies a VPC with the specified IPv4 CIDR block. The smallest VPC you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses). For more information about how large to make your VPC, see [Overview of VPCs and subnets](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html) in the *Amazon Virtual Private Cloud User Guide* .

TODO: EXAMPLE

func NewCfnVPC

func NewCfnVPC(scope constructs.Construct, id *string, props *CfnVPCProps) CfnVPC

Create a new `AWS::EC2::VPC`.

type CfnVPCCidrBlock

type CfnVPCCidrBlock interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AmazonProvidedIpv6CidrBlock() interface{}
	SetAmazonProvidedIpv6CidrBlock(val interface{})
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CidrBlock() *string
	SetCidrBlock(val *string)
	CreationStack() *[]*string
	Ipv4IpamPoolId() *string
	SetIpv4IpamPoolId(val *string)
	Ipv4NetmaskLength() *float64
	SetIpv4NetmaskLength(val *float64)
	Ipv6CidrBlock() *string
	SetIpv6CidrBlock(val *string)
	Ipv6IpamPoolId() *string
	SetIpv6IpamPoolId(val *string)
	Ipv6NetmaskLength() *float64
	SetIpv6NetmaskLength(val *float64)
	Ipv6Pool() *string
	SetIpv6Pool(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	VpcId() *string
	SetVpcId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::VPCCidrBlock`.

Associates a CIDR block with your VPC. You can only associate a single IPv6 CIDR block with your VPC. The IPv6 CIDR block size is fixed at /56.

For more information about associating CIDR blocks with your VPC and applicable restrictions, see [VPC and Subnet Sizing](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#VPC_Sizing) in the *Amazon Virtual Private Cloud User Guide* .

TODO: EXAMPLE

func NewCfnVPCCidrBlock

func NewCfnVPCCidrBlock(scope constructs.Construct, id *string, props *CfnVPCCidrBlockProps) CfnVPCCidrBlock

Create a new `AWS::EC2::VPCCidrBlock`.

type CfnVPCCidrBlockProps

type CfnVPCCidrBlockProps struct {
	// The ID of the VPC.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC.
	//
	// You cannot specify the range of IPv6 addresses, or the size of the CIDR block.
	AmazonProvidedIpv6CidrBlock interface{} `json:"amazonProvidedIpv6CidrBlock" yaml:"amazonProvidedIpv6CidrBlock"`
	// An IPv4 CIDR block to associate with the VPC.
	CidrBlock *string `json:"cidrBlock" yaml:"cidrBlock"`
	// Associate a CIDR allocated from an IPv4 IPAM pool to a VPC.
	//
	// For more information about Amazon VPC IP Address Manager (IPAM), see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide* .
	Ipv4IpamPoolId *string `json:"ipv4IpamPoolId" yaml:"ipv4IpamPoolId"`
	// The netmask length of the IPv4 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool.
	//
	// For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide* .
	Ipv4NetmaskLength *float64 `json:"ipv4NetmaskLength" yaml:"ipv4NetmaskLength"`
	// An IPv6 CIDR block from the IPv6 address pool. You must also specify `Ipv6Pool` in the request.
	//
	// To let Amazon choose the IPv6 CIDR block for you, omit this parameter.
	Ipv6CidrBlock *string `json:"ipv6CidrBlock" yaml:"ipv6CidrBlock"`
	// Associates a CIDR allocated from an IPv6 IPAM pool to a VPC.
	//
	// For more information about Amazon VPC IP Address Manager (IPAM), see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide* .
	Ipv6IpamPoolId *string `json:"ipv6IpamPoolId" yaml:"ipv6IpamPoolId"`
	// The netmask length of the IPv6 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool.
	//
	// For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide* .
	Ipv6NetmaskLength *float64 `json:"ipv6NetmaskLength" yaml:"ipv6NetmaskLength"`
	// The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.
	Ipv6Pool *string `json:"ipv6Pool" yaml:"ipv6Pool"`
}

Properties for defining a `CfnVPCCidrBlock`.

TODO: EXAMPLE

type CfnVPCDHCPOptionsAssociation

type CfnVPCDHCPOptionsAssociation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DhcpOptionsId() *string
	SetDhcpOptionsId(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	VpcId() *string
	SetVpcId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::VPCDHCPOptionsAssociation`.

Associates a set of DHCP options with a VPC, or associates no DHCP options with the VPC.

After you associate the options with the VPC, any existing instances and all new instances that you launch in that VPC use the options. You don't need to restart or relaunch the instances. They automatically pick up the changes within a few hours, depending on how frequently the instance renews its DHCP lease. You can explicitly renew the lease using the operating system on the instance.

TODO: EXAMPLE

func NewCfnVPCDHCPOptionsAssociation

func NewCfnVPCDHCPOptionsAssociation(scope constructs.Construct, id *string, props *CfnVPCDHCPOptionsAssociationProps) CfnVPCDHCPOptionsAssociation

Create a new `AWS::EC2::VPCDHCPOptionsAssociation`.

type CfnVPCDHCPOptionsAssociationProps

type CfnVPCDHCPOptionsAssociationProps struct {
	// The ID of the DHCP options set, or `default` to associate no DHCP options with the VPC.
	DhcpOptionsId *string `json:"dhcpOptionsId" yaml:"dhcpOptionsId"`
	// The ID of the VPC.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
}

Properties for defining a `CfnVPCDHCPOptionsAssociation`.

TODO: EXAMPLE

type CfnVPCEndpoint

type CfnVPCEndpoint interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrCreationTimestamp() *string
	AttrDnsEntries() *[]*string
	AttrNetworkInterfaceIds() *[]*string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	PolicyDocument() interface{}
	SetPolicyDocument(val interface{})
	PrivateDnsEnabled() interface{}
	SetPrivateDnsEnabled(val interface{})
	Ref() *string
	RouteTableIds() *[]*string
	SetRouteTableIds(val *[]*string)
	SecurityGroupIds() *[]*string
	SetSecurityGroupIds(val *[]*string)
	ServiceName() *string
	SetServiceName(val *string)
	Stack() awscdk.Stack
	SubnetIds() *[]*string
	SetSubnetIds(val *[]*string)
	UpdatedProperites() *map[string]interface{}
	VpcEndpointType() *string
	SetVpcEndpointType(val *string)
	VpcId() *string
	SetVpcId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::VPCEndpoint`.

Specifies a VPC endpoint for a service. An endpoint enables you to create a private connection between your VPC and the service. The service may be provided by AWS , an AWS Marketplace Partner, or another AWS account. For more information, see the [AWS PrivateLink User Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/) .

An interface endpoint establishes connections between the subnets in your VPC and an AWS service, your own service, or a service hosted by another AWS account . You can specify the subnets in which to create the endpoint and the security groups to associate with the endpoint network interface.

A gateway endpoint serves as a target for a route in your route table for traffic destined for Amazon S3 or Amazon DynamoDB. You can specify an endpoint policy for the endpoint, which controls access to the service from your VPC. You can also specify the VPC route tables that use the endpoint. For information about connectivity to Amazon S3, see [Why can’t I connect to an S3 bucket using a gateway VPC endpoint?](https://docs.aws.amazon.com/premiumsupport/knowledge-center/connect-s3-vpc-endpoint)

A Gateway Load Balancer endpoint provides private connectivity between your VPC and virtual appliances from a service provider.

TODO: EXAMPLE

func NewCfnVPCEndpoint

func NewCfnVPCEndpoint(scope constructs.Construct, id *string, props *CfnVPCEndpointProps) CfnVPCEndpoint

Create a new `AWS::EC2::VPCEndpoint`.

type CfnVPCEndpointConnectionNotification

type CfnVPCEndpointConnectionNotification interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	ConnectionEvents() *[]*string
	SetConnectionEvents(val *[]*string)
	ConnectionNotificationArn() *string
	SetConnectionNotificationArn(val *string)
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	ServiceId() *string
	SetServiceId(val *string)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	VpcEndpointId() *string
	SetVpcEndpointId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::VPCEndpointConnectionNotification`.

Specifies a connection notification for a VPC endpoint or VPC endpoint service. A connection notification notifies you of specific endpoint events. You must create an SNS topic to receive notifications. For more information, see [Create a Topic](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) in the *Amazon Simple Notification Service Developer Guide* .

You can create a connection notification for interface endpoints only.

TODO: EXAMPLE

func NewCfnVPCEndpointConnectionNotification

func NewCfnVPCEndpointConnectionNotification(scope constructs.Construct, id *string, props *CfnVPCEndpointConnectionNotificationProps) CfnVPCEndpointConnectionNotification

Create a new `AWS::EC2::VPCEndpointConnectionNotification`.

type CfnVPCEndpointConnectionNotificationProps

type CfnVPCEndpointConnectionNotificationProps struct {
	// One or more endpoint events for which to receive notifications.
	//
	// Valid values are `Accept` , `Connect` , `Delete` , and `Reject` .
	ConnectionEvents *[]*string `json:"connectionEvents" yaml:"connectionEvents"`
	// The ARN of the SNS topic for the notifications.
	ConnectionNotificationArn *string `json:"connectionNotificationArn" yaml:"connectionNotificationArn"`
	// The ID of the endpoint service.
	ServiceId *string `json:"serviceId" yaml:"serviceId"`
	// The ID of the endpoint.
	VpcEndpointId *string `json:"vpcEndpointId" yaml:"vpcEndpointId"`
}

Properties for defining a `CfnVPCEndpointConnectionNotification`.

TODO: EXAMPLE

type CfnVPCEndpointProps

type CfnVPCEndpointProps struct {
	// The service name.
	//
	// To list the available services, use [DescribeVpcEndpointServices](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcEndpointServices.html) . Otherwise, get the name from the service provider.
	ServiceName *string `json:"serviceName" yaml:"serviceName"`
	// The ID of the VPC in which the endpoint will be used.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// A policy that controls access to the service from the VPC.
	//
	// If this parameter is not specified, the default policy allows full access to the service. Endpoint policies are supported only for gateway and interface endpoints.
	//
	// For CloudFormation templates in YAML, you can provide the policy in JSON or YAML format. AWS CloudFormation converts YAML policies to JSON format before calling the API to create or modify the VPC endpoint.
	PolicyDocument interface{} `json:"policyDocument" yaml:"policyDocument"`
	// Indicate whether to associate a private hosted zone with the specified VPC.
	//
	// The private hosted zone contains a record set for the default public DNS name for the service for the Region (for example, `kinesis.us-east-1.amazonaws.com` ), which resolves to the private IP addresses of the endpoint network interfaces in the VPC. This enables you to make requests to the default public DNS name for the service instead of the public DNS names that are automatically generated by the VPC endpoint service.
	//
	// To use a private hosted zone, you must set the following VPC attributes to `true` : `enableDnsHostnames` and `enableDnsSupport` .
	//
	// This property is supported only for interface endpoints.
	//
	// Default: `false`
	PrivateDnsEnabled interface{} `json:"privateDnsEnabled" yaml:"privateDnsEnabled"`
	// The route table IDs.
	//
	// Routing is supported only for gateway endpoints.
	RouteTableIds *[]*string `json:"routeTableIds" yaml:"routeTableIds"`
	// The IDs of the security groups to associate with the endpoint network interface.
	//
	// Security groups are supported only for interface endpoints.
	SecurityGroupIds *[]*string `json:"securityGroupIds" yaml:"securityGroupIds"`
	// The ID of the subnets in which to create an endpoint network interface.
	//
	// You must specify this property for an interface endpoints or a Gateway Load Balancer endpoint. You can't specify this property for a gateway endpoint. For a Gateway Load Balancer endpoint, you can specify only one subnet.
	SubnetIds *[]*string `json:"subnetIds" yaml:"subnetIds"`
	// The type of endpoint.
	//
	// Default: Gateway
	VpcEndpointType *string `json:"vpcEndpointType" yaml:"vpcEndpointType"`
}

Properties for defining a `CfnVPCEndpoint`.

TODO: EXAMPLE

type CfnVPCEndpointService

type CfnVPCEndpointService interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AcceptanceRequired() interface{}
	SetAcceptanceRequired(val interface{})
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	GatewayLoadBalancerArns() *[]*string
	SetGatewayLoadBalancerArns(val *[]*string)
	LogicalId() *string
	NetworkLoadBalancerArns() *[]*string
	SetNetworkLoadBalancerArns(val *[]*string)
	Node() constructs.Node
	PayerResponsibility() *string
	SetPayerResponsibility(val *string)
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::VPCEndpointService`.

Creates a VPC endpoint service configuration to which service consumers ( AWS accounts, IAM users, and IAM roles) can connect.

To create an endpoint service configuration, you must first create one of the following for your service:

- A [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) . Service consumers connect to your service using an interface endpoint. - A [Gateway Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/introduction.html) . Service consumers connect to your service using a Gateway Load Balancer endpoint.

For more information, see the [AWS PrivateLink User Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/) .

TODO: EXAMPLE

func NewCfnVPCEndpointService

func NewCfnVPCEndpointService(scope constructs.Construct, id *string, props *CfnVPCEndpointServiceProps) CfnVPCEndpointService

Create a new `AWS::EC2::VPCEndpointService`.

type CfnVPCEndpointServicePermissions

type CfnVPCEndpointServicePermissions interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AllowedPrincipals() *[]*string
	SetAllowedPrincipals(val *[]*string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	ServiceId() *string
	SetServiceId(val *string)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::VPCEndpointServicePermissions`.

Grant or revoke permissions for service consumers (IAM users, IAM roles, and AWS accounts) to connect to a VPC endpoint service.

If you grant permissions to all principals, the service is public. Any users who know the name of a public service can send a request to attach an endpoint. If the service does not require manual approval, attachments are automatically approved.

TODO: EXAMPLE

func NewCfnVPCEndpointServicePermissions

func NewCfnVPCEndpointServicePermissions(scope constructs.Construct, id *string, props *CfnVPCEndpointServicePermissionsProps) CfnVPCEndpointServicePermissions

Create a new `AWS::EC2::VPCEndpointServicePermissions`.

type CfnVPCEndpointServicePermissionsProps

type CfnVPCEndpointServicePermissionsProps struct {
	// The ID of the service.
	ServiceId *string `json:"serviceId" yaml:"serviceId"`
	// The Amazon Resource Names (ARN) of one or more principals (IAM users, IAM roles, and AWS accounts).
	//
	// Permissions are granted to the principals in this list. To grant permissions to all principals, specify an asterisk (*). Permissions are revoked for principals not in this list. If the list is empty, then all permissions are revoked.
	AllowedPrincipals *[]*string `json:"allowedPrincipals" yaml:"allowedPrincipals"`
}

Properties for defining a `CfnVPCEndpointServicePermissions`.

TODO: EXAMPLE

type CfnVPCEndpointServiceProps

type CfnVPCEndpointServiceProps struct {
	// Indicates whether requests from service consumers to create an endpoint to your service must be accepted.
	AcceptanceRequired interface{} `json:"acceptanceRequired" yaml:"acceptanceRequired"`
	// The Amazon Resource Names (ARNs) of one or more Gateway Load Balancers.
	GatewayLoadBalancerArns *[]*string `json:"gatewayLoadBalancerArns" yaml:"gatewayLoadBalancerArns"`
	// The Amazon Resource Names (ARNs) of one or more Network Load Balancers for your service.
	NetworkLoadBalancerArns *[]*string `json:"networkLoadBalancerArns" yaml:"networkLoadBalancerArns"`
	// The entity that is responsible for the endpoint costs.
	//
	// The default is the endpoint owner. If you set the payer responsibility to the service owner, you cannot set it back to the endpoint owner.
	PayerResponsibility *string `json:"payerResponsibility" yaml:"payerResponsibility"`
}

Properties for defining a `CfnVPCEndpointService`.

TODO: EXAMPLE

type CfnVPCGatewayAttachment

type CfnVPCGatewayAttachment interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	InternetGatewayId() *string
	SetInternetGatewayId(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	VpcId() *string
	SetVpcId(val *string)
	VpnGatewayId() *string
	SetVpnGatewayId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::VPCGatewayAttachment`.

Attaches an internet gateway, or a virtual private gateway to a VPC, enabling connectivity between the internet and the VPC.

TODO: EXAMPLE

func NewCfnVPCGatewayAttachment

func NewCfnVPCGatewayAttachment(scope constructs.Construct, id *string, props *CfnVPCGatewayAttachmentProps) CfnVPCGatewayAttachment

Create a new `AWS::EC2::VPCGatewayAttachment`.

type CfnVPCGatewayAttachmentProps

type CfnVPCGatewayAttachmentProps struct {
	// The ID of the VPC.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// The ID of the internet gateway.
	//
	// You must specify either `InternetGatewayId` or `VpnGatewayId` , but not both.
	InternetGatewayId *string `json:"internetGatewayId" yaml:"internetGatewayId"`
	// The ID of the virtual private gateway.
	//
	// You must specify either `InternetGatewayId` or `VpnGatewayId` , but not both.
	VpnGatewayId *string `json:"vpnGatewayId" yaml:"vpnGatewayId"`
}

Properties for defining a `CfnVPCGatewayAttachment`.

TODO: EXAMPLE

type CfnVPCPeeringConnection

type CfnVPCPeeringConnection interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	PeerOwnerId() *string
	SetPeerOwnerId(val *string)
	PeerRegion() *string
	SetPeerRegion(val *string)
	PeerRoleArn() *string
	SetPeerRoleArn(val *string)
	PeerVpcId() *string
	SetPeerVpcId(val *string)
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	VpcId() *string
	SetVpcId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::VPCPeeringConnection`.

Requests a VPC peering connection between two VPCs: a requester VPC that you own and an accepter VPC with which to create the connection. The accepter VPC can belong to another AWS account and can be in a different Region to the requester VPC.

The requester VPC and accepter VPC cannot have overlapping CIDR blocks. If you create a VPC peering connection request between VPCs with overlapping CIDR blocks, the VPC peering connection has a status of `failed` .

For more information, see [Walkthough: Peer with a VPC in another AWS account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/peer-with-vpc-in-another-account.html) .

TODO: EXAMPLE

func NewCfnVPCPeeringConnection

func NewCfnVPCPeeringConnection(scope constructs.Construct, id *string, props *CfnVPCPeeringConnectionProps) CfnVPCPeeringConnection

Create a new `AWS::EC2::VPCPeeringConnection`.

type CfnVPCPeeringConnectionProps

type CfnVPCPeeringConnectionProps struct {
	// The ID of the VPC with which you are creating the VPC peering connection.
	//
	// You must specify this parameter in the request.
	PeerVpcId *string `json:"peerVpcId" yaml:"peerVpcId"`
	// The ID of the VPC.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// The AWS account ID of the owner of the accepter VPC.
	//
	// Default: Your AWS account ID
	PeerOwnerId *string `json:"peerOwnerId" yaml:"peerOwnerId"`
	// The Region code for the accepter VPC, if the accepter VPC is located in a Region other than the Region in which you make the request.
	//
	// Default: The Region in which you make the request.
	PeerRegion *string `json:"peerRegion" yaml:"peerRegion"`
	// The Amazon Resource Name (ARN) of the VPC peer role for the peering connection in another AWS account.
	//
	// This is required when you are peering a VPC in a different AWS account.
	PeerRoleArn *string `json:"peerRoleArn" yaml:"peerRoleArn"`
	// Any tags assigned to the resource.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnVPCPeeringConnection`.

TODO: EXAMPLE

type CfnVPCProps

type CfnVPCProps struct {
	// The primary IPv4 CIDR block for the VPC.
	CidrBlock *string `json:"cidrBlock" yaml:"cidrBlock"`
	// Indicates whether the instances launched in the VPC get DNS hostnames.
	//
	// If enabled, instances in the VPC get DNS hostnames; otherwise, they do not. Disabled by default for nondefault VPCs. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support) .
	//
	// You can only enable DNS hostnames if you've enabled DNS support.
	EnableDnsHostnames interface{} `json:"enableDnsHostnames" yaml:"enableDnsHostnames"`
	// Indicates whether the DNS resolution is supported for the VPC.
	//
	// If enabled, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC network range "plus two" succeed. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled. Enabled by default. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support) .
	EnableDnsSupport interface{} `json:"enableDnsSupport" yaml:"enableDnsSupport"`
	// The allowed tenancy of instances launched into the VPC.
	//
	// - `"default"` : An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch.
	// - `"dedicated"` : An instance launched into the VPC is a Dedicated Instance by default, unless you explicitly specify a tenancy of host during instance launch. You cannot specify a tenancy of default during instance launch.
	//
	// Updating `InstanceTenancy` requires no replacement only if you are updating its value from `"dedicated"` to `"default"` . Updating `InstanceTenancy` from `"default"` to `"dedicated"` requires replacement.
	InstanceTenancy *string `json:"instanceTenancy" yaml:"instanceTenancy"`
	// The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR.
	//
	// For more information, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide* .
	Ipv4IpamPoolId *string `json:"ipv4IpamPoolId" yaml:"ipv4IpamPoolId"`
	// The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool.
	//
	// For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide* .
	Ipv4NetmaskLength *float64 `json:"ipv4NetmaskLength" yaml:"ipv4NetmaskLength"`
	// The tags for the VPC.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnVPC`.

TODO: EXAMPLE

type CfnVPNConnection

type CfnVPNConnection interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	CustomerGatewayId() *string
	SetCustomerGatewayId(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	StaticRoutesOnly() interface{}
	SetStaticRoutesOnly(val interface{})
	Tags() awscdk.TagManager
	TransitGatewayId() *string
	SetTransitGatewayId(val *string)
	Type() *string
	SetType(val *string)
	UpdatedProperites() *map[string]interface{}
	VpnGatewayId() *string
	SetVpnGatewayId(val *string)
	VpnTunnelOptionsSpecifications() interface{}
	SetVpnTunnelOptionsSpecifications(val interface{})
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::VPNConnection`.

Specifies a VPN connection between a virtual private gateway and a VPN customer gateway or a transit gateway and a VPN customer gateway.

To specify a VPN connection between a transit gateway and customer gateway, use the `TransitGatewayId` and `CustomerGatewayId` properties.

To specify a VPN connection between a virtual private gateway and customer gateway, use the `VpnGatewayId` and `CustomerGatewayId` properties.

For more information, see [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *AWS Site-to-Site VPN User Guide* .

TODO: EXAMPLE

func NewCfnVPNConnection

func NewCfnVPNConnection(scope constructs.Construct, id *string, props *CfnVPNConnectionProps) CfnVPNConnection

Create a new `AWS::EC2::VPNConnection`.

type CfnVPNConnectionProps

type CfnVPNConnectionProps struct {
	// The ID of the customer gateway at your end of the VPN connection.
	CustomerGatewayId *string `json:"customerGatewayId" yaml:"customerGatewayId"`
	// The type of VPN connection.
	Type *string `json:"type" yaml:"type"`
	// Indicates whether the VPN connection uses static routes only.
	//
	// Static routes must be used for devices that don't support BGP.
	//
	// If you are creating a VPN connection for a device that does not support Border Gateway Protocol (BGP), you must specify `true` .
	StaticRoutesOnly interface{} `json:"staticRoutesOnly" yaml:"staticRoutesOnly"`
	// Any tags assigned to the VPN connection.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
	// The ID of the transit gateway associated with the VPN connection.
	//
	// You must specify either `TransitGatewayId` or `VpnGatewayId` , but not both.
	TransitGatewayId *string `json:"transitGatewayId" yaml:"transitGatewayId"`
	// The ID of the virtual private gateway at the AWS side of the VPN connection.
	//
	// You must specify either `TransitGatewayId` or `VpnGatewayId` , but not both.
	VpnGatewayId *string `json:"vpnGatewayId" yaml:"vpnGatewayId"`
	// The tunnel options for the VPN connection.
	VpnTunnelOptionsSpecifications interface{} `json:"vpnTunnelOptionsSpecifications" yaml:"vpnTunnelOptionsSpecifications"`
}

Properties for defining a `CfnVPNConnection`.

TODO: EXAMPLE

type CfnVPNConnectionRoute

type CfnVPNConnectionRoute interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DestinationCidrBlock() *string
	SetDestinationCidrBlock(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	VpnConnectionId() *string
	SetVpnConnectionId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::VPNConnectionRoute`.

Specifies a static route for a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.

For more information, see [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *AWS Site-to-Site VPN User Guide* .

TODO: EXAMPLE

func NewCfnVPNConnectionRoute

func NewCfnVPNConnectionRoute(scope constructs.Construct, id *string, props *CfnVPNConnectionRouteProps) CfnVPNConnectionRoute

Create a new `AWS::EC2::VPNConnectionRoute`.

type CfnVPNConnectionRouteProps

type CfnVPNConnectionRouteProps struct {
	// The CIDR block associated with the local subnet of the customer network.
	DestinationCidrBlock *string `json:"destinationCidrBlock" yaml:"destinationCidrBlock"`
	// The ID of the VPN connection.
	VpnConnectionId *string `json:"vpnConnectionId" yaml:"vpnConnectionId"`
}

Properties for defining a `CfnVPNConnectionRoute`.

TODO: EXAMPLE

type CfnVPNConnection_VpnTunnelOptionsSpecificationProperty

type CfnVPNConnection_VpnTunnelOptionsSpecificationProperty struct {
	// The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and customer gateway.
	//
	// Constraints: Allowed characters are alphanumeric characters, periods (.), and underscores (_). Must be between 8 and 64 characters in length and cannot start with zero (0).
	PreSharedKey *string `json:"preSharedKey" yaml:"preSharedKey"`
	// The range of inside IP addresses for the tunnel.
	//
	// Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway.
	//
	// Constraints: A size /30 CIDR block from the `169.254.0.0/16` range. The following CIDR blocks are reserved and cannot be used:
	//
	// - `169.254.0.0/30`
	// - `169.254.1.0/30`
	// - `169.254.2.0/30`
	// - `169.254.3.0/30`
	// - `169.254.4.0/30`
	// - `169.254.5.0/30`
	// - `169.254.169.252/30`
	TunnelInsideCidr *string `json:"tunnelInsideCidr" yaml:"tunnelInsideCidr"`
}

The tunnel options for a single VPN tunnel.

TODO: EXAMPLE

type CfnVPNGateway

type CfnVPNGateway interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AmazonSideAsn() *float64
	SetAmazonSideAsn(val *float64)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	Type() *string
	SetType(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::VPNGateway`.

Specifies a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself.

For more information, see [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *AWS Site-to-Site VPN User Guide* .

TODO: EXAMPLE

func NewCfnVPNGateway

func NewCfnVPNGateway(scope constructs.Construct, id *string, props *CfnVPNGatewayProps) CfnVPNGateway

Create a new `AWS::EC2::VPNGateway`.

type CfnVPNGatewayProps

type CfnVPNGatewayProps struct {
	// The type of VPN connection the virtual private gateway supports.
	Type *string `json:"type" yaml:"type"`
	// The private Autonomous System Number (ASN) for the Amazon side of a BGP session.
	AmazonSideAsn *float64 `json:"amazonSideAsn" yaml:"amazonSideAsn"`
	// Any tags assigned to the virtual private gateway.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnVPNGateway`.

TODO: EXAMPLE

type CfnVPNGatewayRoutePropagation

type CfnVPNGatewayRoutePropagation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	RouteTableIds() *[]*string
	SetRouteTableIds(val *[]*string)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	VpnGatewayId() *string
	SetVpnGatewayId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::VPNGatewayRoutePropagation`.

Enables a virtual private gateway (VGW) to propagate routes to the specified route table of a VPC.

If you reference a VPN gateway that is in the same template as your VPN gateway route propagation, you must explicitly declare a dependency on the VPN gateway attachment. The `AWS::EC2::VPNGatewayRoutePropagation` resource cannot use the VPN gateway until it has successfully attached to the VPC. Add a [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) in the `AWS::EC2::VPNGatewayRoutePropagation` resource to explicitly declare a dependency on the VPN gateway attachment.

TODO: EXAMPLE

func NewCfnVPNGatewayRoutePropagation

func NewCfnVPNGatewayRoutePropagation(scope constructs.Construct, id *string, props *CfnVPNGatewayRoutePropagationProps) CfnVPNGatewayRoutePropagation

Create a new `AWS::EC2::VPNGatewayRoutePropagation`.

type CfnVPNGatewayRoutePropagationProps

type CfnVPNGatewayRoutePropagationProps struct {
	// The ID of the route table.
	//
	// The routing table must be associated with the same VPC that the virtual private gateway is attached to.
	RouteTableIds *[]*string `json:"routeTableIds" yaml:"routeTableIds"`
	// The ID of the virtual private gateway that is attached to a VPC.
	//
	// The virtual private gateway must be attached to the same VPC that the routing tables are associated with.
	VpnGatewayId *string `json:"vpnGatewayId" yaml:"vpnGatewayId"`
}

Properties for defining a `CfnVPNGatewayRoutePropagation`.

TODO: EXAMPLE

type CfnVolume

type CfnVolume interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AutoEnableIo() interface{}
	SetAutoEnableIo(val interface{})
	AvailabilityZone() *string
	SetAvailabilityZone(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Encrypted() interface{}
	SetEncrypted(val interface{})
	Iops() *float64
	SetIops(val *float64)
	KmsKeyId() *string
	SetKmsKeyId(val *string)
	LogicalId() *string
	MultiAttachEnabled() interface{}
	SetMultiAttachEnabled(val interface{})
	Node() constructs.Node
	OutpostArn() *string
	SetOutpostArn(val *string)
	Ref() *string
	Size() *float64
	SetSize(val *float64)
	SnapshotId() *string
	SetSnapshotId(val *string)
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	Throughput() *float64
	SetThroughput(val *float64)
	UpdatedProperites() *map[string]interface{}
	VolumeType() *string
	SetVolumeType(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::Volume`.

Specifies an Amazon Elastic Block Store (Amazon EBS) volume. You can attach the volume to an instance in the same Availability Zone using [AWS::EC2::VolumeAttachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html) .

When you use AWS CloudFormation to update an Amazon EBS volume that modifies `Iops` , `Size` , or `VolumeType` , there is a cooldown period before another operation can occur. This can cause your stack to report being in `UPDATE_IN_PROGRESS` or `UPDATE_ROLLBACK_IN_PROGRESS` for long periods of time.

Amazon EBS does not support sizing down an Amazon EBS volume. AWS CloudFormation does not attempt to modify an Amazon EBS volume to a smaller size on rollback.

Some common scenarios when you might encounter a cooldown period for Amazon EBS include:

- You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period. - You successfully update an Amazon EBS volume and the update succeeds but another change in your `update-stack` call fails. The rollback will be subject to a cooldown period.

For more information on the cooldown period, see [Requirements when modifying volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/modify-volume-requirements.html) .

*DeletionPolicy attribute*

To control how AWS CloudFormation handles the volume when the stack is deleted, set a deletion policy for your volume. You can choose to retain the volume, to delete the volume, or to create a snapshot of the volume. For more information, see [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html) .

> If you set a deletion policy that creates a snapshot, all tags on the volume are included in the snapshot.

TODO: EXAMPLE

func NewCfnVolume

func NewCfnVolume(scope constructs.Construct, id *string, props *CfnVolumeProps) CfnVolume

Create a new `AWS::EC2::Volume`.

type CfnVolumeAttachment

type CfnVolumeAttachment interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Device() *string
	SetDevice(val *string)
	InstanceId() *string
	SetInstanceId(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	VolumeId() *string
	SetVolumeId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EC2::VolumeAttachment`.

Attaches an Amazon EBS volume to a running instance and exposes it to the instance with the specified device name.

Before this resource can be deleted (and therefore the volume detached), you must first unmount the volume in the instance. Failure to do so results in the volume being stuck in the busy state while it is trying to detach, which could possibly damage the file system or the data it contains.

If an Amazon EBS volume is the root device of an instance, it cannot be detached while the instance is in the "running" state. To detach the root volume, stop the instance first.

If the root volume is detached from an instance with an AWS Marketplace product code, then the product codes from that volume are no longer associated with the instance.

TODO: EXAMPLE

func NewCfnVolumeAttachment

func NewCfnVolumeAttachment(scope constructs.Construct, id *string, props *CfnVolumeAttachmentProps) CfnVolumeAttachment

Create a new `AWS::EC2::VolumeAttachment`.

type CfnVolumeAttachmentProps

type CfnVolumeAttachmentProps struct {
	// The device name (for example, `/dev/sdh` or `xvdh` ).
	Device *string `json:"device" yaml:"device"`
	// The ID of the instance to which the volume attaches.
	//
	// This value can be a reference to an [`AWS::EC2::Instance`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) resource, or it can be the physical ID of an existing EC2 instance.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
	// The ID of the Amazon EBS volume.
	//
	// The volume and instance must be within the same Availability Zone. This value can be a reference to an [`AWS::EC2::Volume`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html) resource, or it can be the volume ID of an existing Amazon EBS volume.
	VolumeId *string `json:"volumeId" yaml:"volumeId"`
}

Properties for defining a `CfnVolumeAttachment`.

TODO: EXAMPLE

type CfnVolumeProps

type CfnVolumeProps struct {
	// The Availability Zone in which to create the volume.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// Indicates whether the volume is auto-enabled for I/O operations.
	//
	// By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O.
	AutoEnableIo interface{} `json:"autoEnableIo" yaml:"autoEnableIo"`
	// Indicates whether the volume should be encrypted.
	//
	// The effect of setting the encryption state to `true` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Encryption by default](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default) in the *Amazon Elastic Compute Cloud User Guide* .
	//
	// Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see [Supported instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances) .
	Encrypted interface{} `json:"encrypted" yaml:"encrypted"`
	// The number of I/O operations per second (IOPS).
	//
	// For `gp3` , `io1` , and `io2` volumes, this represents the number of IOPS that are provisioned for the volume. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.
	//
	// The following are the supported values for each volume type:
	//
	// - `gp3` : 3,000-16,000 IOPS
	// - `io1` : 100-64,000 IOPS
	// - `io2` : 100-64,000 IOPS
	//
	// `io1` and `io2` volumes support up to 64,000 IOPS only on [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances) . Other instance families support performance up to 32,000 IOPS.
	//
	// This parameter is required for `io1` and `io2` volumes. The default for `gp3` volumes is 3,000 IOPS. This parameter is not supported for `gp2` , `st1` , `sc1` , or `standard` volumes.
	Iops *float64 `json:"iops" yaml:"iops"`
	// The identifier of the AWS KMS key to use for Amazon EBS encryption.
	//
	// If `KmsKeyId` is specified, the encrypted state must be `true` .
	//
	// If you omit this property and your account is enabled for encryption by default, or *Encrypted* is set to `true` , then the volume is encrypted using the default key specified for your account. If your account does not have a default key, then the volume is encrypted using the AWS managed key .
	//
	// Alternatively, if you want to specify a different key, you can specify one of the following:
	//
	// - Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.
	// - Key alias. Specify the alias for the key, prefixed with `alias/` . For example, for a key with the alias `my_cmk` , use `alias/my_cmk` . Or to specify the AWS managed key , use `alias/aws/ebs` .
	// - Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.
	// - Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
	KmsKeyId *string `json:"kmsKeyId" yaml:"kmsKeyId"`
	// Indicates whether Amazon EBS Multi-Attach is enabled.
	//
	// AWS CloudFormation does not currently support updating a single-attach volume to be multi-attach enabled, updating a multi-attach enabled volume to be single-attach, or updating the size or number of I/O operations per second (IOPS) of a multi-attach enabled volume.
	MultiAttachEnabled interface{} `json:"multiAttachEnabled" yaml:"multiAttachEnabled"`
	// The Amazon Resource Name (ARN) of the Outpost.
	OutpostArn *string `json:"outpostArn" yaml:"outpostArn"`
	// The size of the volume, in GiBs.
	//
	// You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size.
	//
	// The following are the supported volumes sizes for each volume type:
	//
	// - `gp2` and `gp3` : 1-16,384
	// - `io1` and `io2` : 4-16,384
	// - `st1` and `sc1` : 125-16,384
	// - `standard` : 1-1,024
	Size *float64 `json:"size" yaml:"size"`
	// The snapshot from which to create the volume.
	//
	// You must specify either a snapshot ID or a volume size.
	SnapshotId *string `json:"snapshotId" yaml:"snapshotId"`
	// The tags to apply to the volume during creation.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
	// The throughput that the volume supports, in MiB/s.
	Throughput *float64 `json:"throughput" yaml:"throughput"`
	// The volume type. This parameter can be one of the following values:.
	//
	// - General Purpose SSD: `gp2` | `gp3`
	// - Provisioned IOPS SSD: `io1` | `io2`
	// - Throughput Optimized HDD: `st1`
	// - Cold HDD: `sc1`
	// - Magnetic: `standard`
	//
	// For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide* .
	//
	// Default: `gp2`
	VolumeType *string `json:"volumeType" yaml:"volumeType"`
}

Properties for defining a `CfnVolume`.

TODO: EXAMPLE

type ClientVpnAuthorizationRule

type ClientVpnAuthorizationRule interface {
	awscdk.Resource
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

A client VPN authorization rule.

TODO: EXAMPLE

func NewClientVpnAuthorizationRule

func NewClientVpnAuthorizationRule(scope constructs.Construct, id *string, props *ClientVpnAuthorizationRuleProps) ClientVpnAuthorizationRule

type ClientVpnAuthorizationRuleOptions

type ClientVpnAuthorizationRuleOptions struct {
	// The IPv4 address range, in CIDR notation, of the network for which access is being authorized.
	Cidr *string `json:"cidr" yaml:"cidr"`
	// A brief description of the authorization rule.
	Description *string `json:"description" yaml:"description"`
	// The ID of the group to grant access to, for example, the Active Directory group or identity provider (IdP) group.
	GroupId *string `json:"groupId" yaml:"groupId"`
}

Options for a ClientVpnAuthorizationRule.

TODO: EXAMPLE

type ClientVpnAuthorizationRuleProps

type ClientVpnAuthorizationRuleProps struct {
	// The IPv4 address range, in CIDR notation, of the network for which access is being authorized.
	Cidr *string `json:"cidr" yaml:"cidr"`
	// A brief description of the authorization rule.
	Description *string `json:"description" yaml:"description"`
	// The ID of the group to grant access to, for example, the Active Directory group or identity provider (IdP) group.
	GroupId *string `json:"groupId" yaml:"groupId"`
	// The client VPN endpoint to which to add the rule.
	ClientVpnEndpoint IClientVpnEndpoint `json:"clientVpnEndpoint" yaml:"clientVpnEndpoint"`
}

Properties for a ClientVpnAuthorizationRule.

TODO: EXAMPLE

type ClientVpnEndpoint

type ClientVpnEndpoint interface {
	awscdk.Resource
	IClientVpnEndpoint
	Connections() Connections
	EndpointId() *string
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	TargetNetworksAssociated() constructs.IDependable
	AddAuthorizationRule(id *string, props *ClientVpnAuthorizationRuleOptions) ClientVpnAuthorizationRule
	AddRoute(id *string, props *ClientVpnRouteOptions) ClientVpnRoute
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

A client VPN connnection.

TODO: EXAMPLE

func NewClientVpnEndpoint

func NewClientVpnEndpoint(scope constructs.Construct, id *string, props *ClientVpnEndpointProps) ClientVpnEndpoint

type ClientVpnEndpointAttributes

type ClientVpnEndpointAttributes struct {
	// The endpoint ID.
	EndpointId *string `json:"endpointId" yaml:"endpointId"`
	// The security groups associated with the endpoint.
	SecurityGroups *[]ISecurityGroup `json:"securityGroups" yaml:"securityGroups"`
}

Attributes when importing an existing client VPN endpoint.

TODO: EXAMPLE

type ClientVpnEndpointOptions

type ClientVpnEndpointOptions struct {
	// The IPv4 address range, in CIDR notation, from which to assign client IP addresses.
	//
	// The address range cannot overlap with the local CIDR of the VPC
	// in which the associated subnet is located, or the routes that you add manually.
	//
	// Changing the address range will replace the Client VPN endpoint.
	//
	// The CIDR block should be /22 or greater.
	Cidr *string `json:"cidr" yaml:"cidr"`
	// The ARN of the server certificate.
	ServerCertificateArn *string `json:"serverCertificateArn" yaml:"serverCertificateArn"`
	// Whether to authorize all users to the VPC CIDR.
	//
	// This automatically creates an authorization rule. Set this to `false` and
	// use `addAuthorizationRule()` to create your own rules instead.
	AuthorizeAllUsersToVpcCidr *bool `json:"authorizeAllUsersToVpcCidr" yaml:"authorizeAllUsersToVpcCidr"`
	// The ARN of the client certificate for mutual authentication.
	//
	// The certificate must be signed by a certificate authority (CA) and it must
	// be provisioned in AWS Certificate Manager (ACM).
	ClientCertificateArn *string `json:"clientCertificateArn" yaml:"clientCertificateArn"`
	// The AWS Lambda function used for connection authorization.
	//
	// The name of the Lambda function must begin with the `AWSClientVPN-` prefix
	ClientConnectionHandler IClientVpnConnectionHandler `json:"clientConnectionHandler" yaml:"clientConnectionHandler"`
	// Customizable text that will be displayed in a banner on AWS provided clients when a VPN session is established.
	//
	// UTF-8 encoded characters only. Maximum of 1400 characters.
	ClientLoginBanner *string `json:"clientLoginBanner" yaml:"clientLoginBanner"`
	// A brief description of the Client VPN endpoint.
	Description *string `json:"description" yaml:"description"`
	// Information about the DNS servers to be used for DNS resolution.
	//
	// A Client VPN endpoint can have up to two DNS servers.
	DnsServers *[]*string `json:"dnsServers" yaml:"dnsServers"`
	// Whether to enable connections logging.
	Logging *bool `json:"logging" yaml:"logging"`
	// A CloudWatch Logs log group for connection logging.
	LogGroup awslogs.ILogGroup `json:"logGroup" yaml:"logGroup"`
	// A CloudWatch Logs log stream for connection logging.
	LogStream awslogs.ILogStream `json:"logStream" yaml:"logStream"`
	// The port number to assign to the Client VPN endpoint for TCP and UDP traffic.
	Port VpnPort `json:"port" yaml:"port"`
	// The security groups to apply to the target network.
	SecurityGroups *[]ISecurityGroup `json:"securityGroups" yaml:"securityGroups"`
	// Specify whether to enable the self-service portal for the Client VPN endpoint.
	SelfServicePortal *bool `json:"selfServicePortal" yaml:"selfServicePortal"`
	// The maximum VPN session duration time.
	SessionTimeout ClientVpnSessionTimeout `json:"sessionTimeout" yaml:"sessionTimeout"`
	// Indicates whether split-tunnel is enabled on the AWS Client VPN endpoint.
	// See: https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html
	//
	SplitTunnel *bool `json:"splitTunnel" yaml:"splitTunnel"`
	// The transport protocol to be used by the VPN session.
	TransportProtocol TransportProtocol `json:"transportProtocol" yaml:"transportProtocol"`
	// The type of user-based authentication to use.
	// See: https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/client-authentication.html
	//
	UserBasedAuthentication ClientVpnUserBasedAuthentication `json:"userBasedAuthentication" yaml:"userBasedAuthentication"`
	// Subnets to associate to the client VPN endpoint.
	VpcSubnets *SubnetSelection `json:"vpcSubnets" yaml:"vpcSubnets"`
}

Options for a client VPN endpoint.

TODO: EXAMPLE

type ClientVpnEndpointProps

type ClientVpnEndpointProps struct {
	// The IPv4 address range, in CIDR notation, from which to assign client IP addresses.
	//
	// The address range cannot overlap with the local CIDR of the VPC
	// in which the associated subnet is located, or the routes that you add manually.
	//
	// Changing the address range will replace the Client VPN endpoint.
	//
	// The CIDR block should be /22 or greater.
	Cidr *string `json:"cidr" yaml:"cidr"`
	// The ARN of the server certificate.
	ServerCertificateArn *string `json:"serverCertificateArn" yaml:"serverCertificateArn"`
	// Whether to authorize all users to the VPC CIDR.
	//
	// This automatically creates an authorization rule. Set this to `false` and
	// use `addAuthorizationRule()` to create your own rules instead.
	AuthorizeAllUsersToVpcCidr *bool `json:"authorizeAllUsersToVpcCidr" yaml:"authorizeAllUsersToVpcCidr"`
	// The ARN of the client certificate for mutual authentication.
	//
	// The certificate must be signed by a certificate authority (CA) and it must
	// be provisioned in AWS Certificate Manager (ACM).
	ClientCertificateArn *string `json:"clientCertificateArn" yaml:"clientCertificateArn"`
	// The AWS Lambda function used for connection authorization.
	//
	// The name of the Lambda function must begin with the `AWSClientVPN-` prefix
	ClientConnectionHandler IClientVpnConnectionHandler `json:"clientConnectionHandler" yaml:"clientConnectionHandler"`
	// Customizable text that will be displayed in a banner on AWS provided clients when a VPN session is established.
	//
	// UTF-8 encoded characters only. Maximum of 1400 characters.
	ClientLoginBanner *string `json:"clientLoginBanner" yaml:"clientLoginBanner"`
	// A brief description of the Client VPN endpoint.
	Description *string `json:"description" yaml:"description"`
	// Information about the DNS servers to be used for DNS resolution.
	//
	// A Client VPN endpoint can have up to two DNS servers.
	DnsServers *[]*string `json:"dnsServers" yaml:"dnsServers"`
	// Whether to enable connections logging.
	Logging *bool `json:"logging" yaml:"logging"`
	// A CloudWatch Logs log group for connection logging.
	LogGroup awslogs.ILogGroup `json:"logGroup" yaml:"logGroup"`
	// A CloudWatch Logs log stream for connection logging.
	LogStream awslogs.ILogStream `json:"logStream" yaml:"logStream"`
	// The port number to assign to the Client VPN endpoint for TCP and UDP traffic.
	Port VpnPort `json:"port" yaml:"port"`
	// The security groups to apply to the target network.
	SecurityGroups *[]ISecurityGroup `json:"securityGroups" yaml:"securityGroups"`
	// Specify whether to enable the self-service portal for the Client VPN endpoint.
	SelfServicePortal *bool `json:"selfServicePortal" yaml:"selfServicePortal"`
	// The maximum VPN session duration time.
	SessionTimeout ClientVpnSessionTimeout `json:"sessionTimeout" yaml:"sessionTimeout"`
	// Indicates whether split-tunnel is enabled on the AWS Client VPN endpoint.
	// See: https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html
	//
	SplitTunnel *bool `json:"splitTunnel" yaml:"splitTunnel"`
	// The transport protocol to be used by the VPN session.
	TransportProtocol TransportProtocol `json:"transportProtocol" yaml:"transportProtocol"`
	// The type of user-based authentication to use.
	// See: https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/client-authentication.html
	//
	UserBasedAuthentication ClientVpnUserBasedAuthentication `json:"userBasedAuthentication" yaml:"userBasedAuthentication"`
	// Subnets to associate to the client VPN endpoint.
	VpcSubnets *SubnetSelection `json:"vpcSubnets" yaml:"vpcSubnets"`
	// The VPC to connect to.
	Vpc IVpc `json:"vpc" yaml:"vpc"`
}

Properties for a client VPN endpoint.

TODO: EXAMPLE

type ClientVpnRoute

type ClientVpnRoute interface {
	awscdk.Resource
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

A client VPN route.

TODO: EXAMPLE

func NewClientVpnRoute

func NewClientVpnRoute(scope constructs.Construct, id *string, props *ClientVpnRouteProps) ClientVpnRoute

type ClientVpnRouteOptions

type ClientVpnRouteOptions struct {
	// The IPv4 address range, in CIDR notation, of the route destination.
	//
	// For example:
	//    - To add a route for Internet access, enter 0.0.0.0/0
	//    - To add a route for a peered VPC, enter the peered VPC's IPv4 CIDR range
	//    - To add a route for an on-premises network, enter the AWS Site-to-Site VPN
	//      connection's IPv4 CIDR range
	//    - To add a route for the local network, enter the client CIDR range
	Cidr *string `json:"cidr" yaml:"cidr"`
	// The target for the route.
	Target ClientVpnRouteTarget `json:"target" yaml:"target"`
	// A brief description of the authorization rule.
	Description *string `json:"description" yaml:"description"`
}

Options for a ClientVpnRoute.

TODO: EXAMPLE

type ClientVpnRouteProps

type ClientVpnRouteProps struct {
	// The IPv4 address range, in CIDR notation, of the route destination.
	//
	// For example:
	//    - To add a route for Internet access, enter 0.0.0.0/0
	//    - To add a route for a peered VPC, enter the peered VPC's IPv4 CIDR range
	//    - To add a route for an on-premises network, enter the AWS Site-to-Site VPN
	//      connection's IPv4 CIDR range
	//    - To add a route for the local network, enter the client CIDR range
	Cidr *string `json:"cidr" yaml:"cidr"`
	// The target for the route.
	Target ClientVpnRouteTarget `json:"target" yaml:"target"`
	// A brief description of the authorization rule.
	Description *string `json:"description" yaml:"description"`
	// The client VPN endpoint to which to add the route.
	ClientVpnEndpoint IClientVpnEndpoint `json:"clientVpnEndpoint" yaml:"clientVpnEndpoint"`
}

Properties for a ClientVpnRoute.

TODO: EXAMPLE

type ClientVpnRouteTarget

type ClientVpnRouteTarget interface {
	SubnetId() *string
}

Target for a client VPN route.

TODO: EXAMPLE

func ClientVpnRouteTarget_Local

func ClientVpnRouteTarget_Local() ClientVpnRouteTarget

Local network.

func ClientVpnRouteTarget_Subnet

func ClientVpnRouteTarget_Subnet(subnet ISubnet) ClientVpnRouteTarget

Subnet.

The specified subnet must be an existing target network of the client VPN endpoint.

type ClientVpnSessionTimeout added in v2.10.0

type ClientVpnSessionTimeout string

Maximum VPN session duration time.

const (
	ClientVpnSessionTimeout_EIGHT_HOURS       ClientVpnSessionTimeout = "EIGHT_HOURS"
	ClientVpnSessionTimeout_TEN_HOURS         ClientVpnSessionTimeout = "TEN_HOURS"
	ClientVpnSessionTimeout_TWELVE_HOURS      ClientVpnSessionTimeout = "TWELVE_HOURS"
	ClientVpnSessionTimeout_TWENTY_FOUR_HOURS ClientVpnSessionTimeout = "TWENTY_FOUR_HOURS"
)

type ClientVpnUserBasedAuthentication

type ClientVpnUserBasedAuthentication interface {
	Render() interface{}
}

User-based authentication for a client VPN endpoint.

TODO: EXAMPLE

func ClientVpnUserBasedAuthentication_ActiveDirectory

func ClientVpnUserBasedAuthentication_ActiveDirectory(directoryId *string) ClientVpnUserBasedAuthentication

Active Directory authentication.

func ClientVpnUserBasedAuthentication_Federated

func ClientVpnUserBasedAuthentication_Federated(samlProvider awsiam.ISamlProvider, selfServiceSamlProvider awsiam.ISamlProvider) ClientVpnUserBasedAuthentication

Federated authentication.

type CloudFormationInit

type CloudFormationInit interface {
	AddConfig(configName *string, config InitConfig)
	AddConfigSet(configSetName *string, configNames *[]*string)
	Attach(attachedResource awscdk.CfnResource, attachOptions *AttachInitOptions)
}

A CloudFormation-init configuration.

TODO: EXAMPLE

func CloudFormationInit_FromConfig

func CloudFormationInit_FromConfig(config InitConfig) CloudFormationInit

Use an existing InitConfig object as the default and only config.

func CloudFormationInit_FromConfigSets

func CloudFormationInit_FromConfigSets(props *ConfigSetProps) CloudFormationInit

Build a CloudFormationInit from config sets.

func CloudFormationInit_FromElements

func CloudFormationInit_FromElements(elements ...InitElement) CloudFormationInit

Build a new config from a set of Init Elements.

type CommonNetworkAclEntryOptions

type CommonNetworkAclEntryOptions struct {
	// The CIDR range to allow or deny.
	Cidr AclCidr `json:"cidr" yaml:"cidr"`
	// Rule number to assign to the entry, such as 100.
	//
	// ACL entries are processed in ascending order by rule number.
	// Entries can't use the same rule number unless one is an egress rule and the other is an ingress rule.
	RuleNumber *float64 `json:"ruleNumber" yaml:"ruleNumber"`
	// What kind of traffic this ACL rule applies to.
	Traffic AclTraffic `json:"traffic" yaml:"traffic"`
	// Traffic direction, with respect to the subnet, this rule applies to.
	Direction TrafficDirection `json:"direction" yaml:"direction"`
	// The name of the NetworkAclEntry.
	//
	// It is not recommended to use an explicit group name.
	NetworkAclEntryName *string `json:"networkAclEntryName" yaml:"networkAclEntryName"`
	// Whether to allow or deny traffic that matches the rule; valid values are "allow" or "deny".
	//
	// Any traffic that is not explicitly allowed is automatically denied in a custom
	// ACL, all traffic is automatically allowed in a default ACL.
	RuleAction Action `json:"ruleAction" yaml:"ruleAction"`
}

Basic NetworkACL entry props.

TODO: EXAMPLE

type ConfigSetProps

type ConfigSetProps struct {
	// The sets of configs to pick from.
	Configs *map[string]InitConfig `json:"configs" yaml:"configs"`
	// The definitions of each config set.
	ConfigSets *map[string]*[]*string `json:"configSets" yaml:"configSets"`
}

Options for CloudFormationInit.withConfigSets.

TODO: EXAMPLE

type ConfigureNatOptions

type ConfigureNatOptions struct {
	// The public subnets where the NAT providers need to be placed.
	NatSubnets *[]PublicSubnet `json:"natSubnets" yaml:"natSubnets"`
	// The private subnets that need to route through the NAT providers.
	//
	// There may be more private subnets than public subnets with NAT providers.
	PrivateSubnets *[]PrivateSubnet `json:"privateSubnets" yaml:"privateSubnets"`
	// The VPC we're configuring NAT for.
	Vpc Vpc `json:"vpc" yaml:"vpc"`
}

Options passed by the VPC when NAT needs to be configured.

TODO: EXAMPLE

type ConnectionRule

type ConnectionRule struct {
	// Start of port range for the TCP and UDP protocols, or an ICMP type number.
	//
	// If you specify icmp for the IpProtocol property, you can specify
	// -1 as a wildcard (i.e., any ICMP type number).
	FromPort *float64 `json:"fromPort" yaml:"fromPort"`
	// Description of this connection.
	//
	// It is applied to both the ingress rule
	// and the egress rule.
	Description *string `json:"description" yaml:"description"`
	// The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers).
	//
	// Use -1 to specify all protocols. If you specify -1, or a protocol number
	// other than tcp, udp, icmp, or 58 (ICMPv6), traffic on all ports is
	// allowed, regardless of any ports you specify. For tcp, udp, and icmp, you
	// must specify a port range. For protocol 58 (ICMPv6), you can optionally
	// specify a port range; if you don't, traffic for all types and codes is
	// allowed.
	Protocol *string `json:"protocol" yaml:"protocol"`
	// End of port range for the TCP and UDP protocols, or an ICMP code.
	//
	// If you specify icmp for the IpProtocol property, you can specify -1 as a
	// wildcard (i.e., any ICMP code).
	ToPort *float64 `json:"toPort" yaml:"toPort"`
}

TODO: EXAMPLE

type Connections

type Connections interface {
	IConnectable
	Connections() Connections
	DefaultPort() Port
	SecurityGroups() *[]ISecurityGroup
	AddSecurityGroup(securityGroups ...ISecurityGroup)
	AllowDefaultPortFrom(other IConnectable, description *string)
	AllowDefaultPortFromAnyIpv4(description *string)
	AllowDefaultPortInternally(description *string)
	AllowDefaultPortTo(other IConnectable, description *string)
	AllowFrom(other IConnectable, portRange Port, description *string)
	AllowFromAnyIpv4(portRange Port, description *string)
	AllowInternally(portRange Port, description *string)
	AllowTo(other IConnectable, portRange Port, description *string)
	AllowToAnyIpv4(portRange Port, description *string)
	AllowToDefaultPort(other IConnectable, description *string)
}

Manage the allowed network connections for constructs with Security Groups.

Security Groups can be thought of as a firewall for network-connected devices. This class makes it easy to allow network connections to and from security groups, and between security groups individually. When establishing connectivity between security groups, it will automatically add rules in both security groups

This object can manage one or more security groups.

TODO: EXAMPLE

func NewConnections

func NewConnections(props *ConnectionsProps) Connections

type ConnectionsProps

type ConnectionsProps struct {
	// Default port range for initiating connections to and from this object.
	DefaultPort Port `json:"defaultPort" yaml:"defaultPort"`
	// Class that represents the rule by which others can connect to this connectable.
	//
	// This object is required, but will be derived from securityGroup if that is passed.
	Peer IPeer `json:"peer" yaml:"peer"`
	// What securityGroup(s) this object is managing connections for.
	SecurityGroups *[]ISecurityGroup `json:"securityGroups" yaml:"securityGroups"`
}

Properties to intialize a new Connections object.

TODO: EXAMPLE

type CpuCredits

type CpuCredits string

Provides the options for specifying the CPU credit type for burstable EC2 instance types (T2, T3, T3a, etc). See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-how-to.html

const (
	CpuCredits_STANDARD  CpuCredits = "STANDARD"
	CpuCredits_UNLIMITED CpuCredits = "UNLIMITED"
)

type DefaultInstanceTenancy

type DefaultInstanceTenancy string

The default tenancy of instances launched into the VPC.

const (
	DefaultInstanceTenancy_DEFAULT   DefaultInstanceTenancy = "DEFAULT"
	DefaultInstanceTenancy_DEDICATED DefaultInstanceTenancy = "DEDICATED"
)

type EbsDeviceOptions

type EbsDeviceOptions struct {
	// Indicates whether to delete the volume when the instance is terminated.
	DeleteOnTermination *bool `json:"deleteOnTermination" yaml:"deleteOnTermination"`
	// The number of I/O operations per second (IOPS) to provision for the volume.
	//
	// Must only be set for {@link volumeType}: {@link EbsDeviceVolumeType.IO1}
	//
	// The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS,
	// you need at least 100 GiB storage on the volume.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	Iops *float64 `json:"iops" yaml:"iops"`
	// The EBS volume type.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	VolumeType EbsDeviceVolumeType `json:"volumeType" yaml:"volumeType"`
	// Specifies whether the EBS volume is encrypted.
	//
	// Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances
	//
	Encrypted *bool `json:"encrypted" yaml:"encrypted"`
	// The ARN of the AWS Key Management Service (AWS KMS) CMK used for encryption.
	//
	// You have to ensure that the KMS CMK has the correct permissions to be used by the service launching the ec2 instances.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#ebs-encryption-requirements
	//
	KmsKey awskms.IKey `json:"kmsKey" yaml:"kmsKey"`
}

Block device options for an EBS volume.

TODO: EXAMPLE

type EbsDeviceOptionsBase

type EbsDeviceOptionsBase struct {
	// Indicates whether to delete the volume when the instance is terminated.
	DeleteOnTermination *bool `json:"deleteOnTermination" yaml:"deleteOnTermination"`
	// The number of I/O operations per second (IOPS) to provision for the volume.
	//
	// Must only be set for {@link volumeType}: {@link EbsDeviceVolumeType.IO1}
	//
	// The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS,
	// you need at least 100 GiB storage on the volume.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	Iops *float64 `json:"iops" yaml:"iops"`
	// The EBS volume type.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	VolumeType EbsDeviceVolumeType `json:"volumeType" yaml:"volumeType"`
}

Base block device options for an EBS volume.

TODO: EXAMPLE

type EbsDeviceProps

type EbsDeviceProps struct {
	// Indicates whether to delete the volume when the instance is terminated.
	DeleteOnTermination *bool `json:"deleteOnTermination" yaml:"deleteOnTermination"`
	// The number of I/O operations per second (IOPS) to provision for the volume.
	//
	// Must only be set for {@link volumeType}: {@link EbsDeviceVolumeType.IO1}
	//
	// The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS,
	// you need at least 100 GiB storage on the volume.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	Iops *float64 `json:"iops" yaml:"iops"`
	// The EBS volume type.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	VolumeType EbsDeviceVolumeType `json:"volumeType" yaml:"volumeType"`
	// The volume size, in Gibibytes (GiB).
	//
	// If you specify volumeSize, it must be equal or greater than the size of the snapshot.
	VolumeSize *float64 `json:"volumeSize" yaml:"volumeSize"`
	// Specifies whether the EBS volume is encrypted.
	//
	// Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances
	//
	Encrypted *bool `json:"encrypted" yaml:"encrypted"`
	// The ARN of the AWS Key Management Service (AWS KMS) CMK used for encryption.
	//
	// You have to ensure that the KMS CMK has the correct permissions to be used by the service launching the ec2 instances.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#ebs-encryption-requirements
	//
	KmsKey awskms.IKey `json:"kmsKey" yaml:"kmsKey"`
	// The snapshot ID of the volume to use.
	SnapshotId *string `json:"snapshotId" yaml:"snapshotId"`
}

Properties of an EBS block device.

TODO: EXAMPLE

type EbsDeviceSnapshotOptions

type EbsDeviceSnapshotOptions struct {
	// Indicates whether to delete the volume when the instance is terminated.
	DeleteOnTermination *bool `json:"deleteOnTermination" yaml:"deleteOnTermination"`
	// The number of I/O operations per second (IOPS) to provision for the volume.
	//
	// Must only be set for {@link volumeType}: {@link EbsDeviceVolumeType.IO1}
	//
	// The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS,
	// you need at least 100 GiB storage on the volume.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	Iops *float64 `json:"iops" yaml:"iops"`
	// The EBS volume type.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	VolumeType EbsDeviceVolumeType `json:"volumeType" yaml:"volumeType"`
	// The volume size, in Gibibytes (GiB).
	//
	// If you specify volumeSize, it must be equal or greater than the size of the snapshot.
	VolumeSize *float64 `json:"volumeSize" yaml:"volumeSize"`
}

Block device options for an EBS volume created from a snapshot.

TODO: EXAMPLE

type EbsDeviceVolumeType

type EbsDeviceVolumeType string

Supported EBS volume types for blockDevices.

TODO: EXAMPLE

const (
	EbsDeviceVolumeType_STANDARD EbsDeviceVolumeType = "STANDARD"
	EbsDeviceVolumeType_IO1      EbsDeviceVolumeType = "IO1"
	EbsDeviceVolumeType_IO2      EbsDeviceVolumeType = "IO2"
	EbsDeviceVolumeType_GP2      EbsDeviceVolumeType = "GP2"
	EbsDeviceVolumeType_GP3      EbsDeviceVolumeType = "GP3"
	EbsDeviceVolumeType_ST1      EbsDeviceVolumeType = "ST1"
	EbsDeviceVolumeType_SC1      EbsDeviceVolumeType = "SC1"
)

type EnableVpnGatewayOptions

type EnableVpnGatewayOptions struct {
	// Default type ipsec.1.
	Type *string `json:"type" yaml:"type"`
	// Explicitly specify an Asn or let aws pick an Asn for you.
	AmazonSideAsn *float64 `json:"amazonSideAsn" yaml:"amazonSideAsn"`
	// Provide an array of subnets where the route propagation should be added.
	VpnRoutePropagation *[]*SubnetSelection `json:"vpnRoutePropagation" yaml:"vpnRoutePropagation"`
}

Options for the Vpc.enableVpnGateway() method.

TODO: EXAMPLE

type ExecuteFileOptions

type ExecuteFileOptions struct {
	// The path to the file.
	FilePath *string `json:"filePath" yaml:"filePath"`
	// The arguments to be passed to the file.
	Arguments *string `json:"arguments" yaml:"arguments"`
}

Options when executing a file.

TODO: EXAMPLE

type FlowLog

type FlowLog interface {
	awscdk.Resource
	IFlowLog
	Bucket() awss3.IBucket
	Env() *awscdk.ResourceEnvironment
	FlowLogId() *string
	IamRole() awsiam.IRole
	KeyPrefix() *string
	LogGroup() awslogs.ILogGroup
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

A VPC flow log.

TODO: EXAMPLE

func NewFlowLog

func NewFlowLog(scope constructs.Construct, id *string, props *FlowLogProps) FlowLog

type FlowLogDestination

type FlowLogDestination interface {
	Bind(scope constructs.Construct, flowLog FlowLog) *FlowLogDestinationConfig
}

The destination type for the flow log.

TODO: EXAMPLE

func FlowLogDestination_ToCloudWatchLogs

func FlowLogDestination_ToCloudWatchLogs(logGroup awslogs.ILogGroup, iamRole awsiam.IRole) FlowLogDestination

Use CloudWatch logs as the destination.

func FlowLogDestination_ToS3

func FlowLogDestination_ToS3(bucket awss3.IBucket, keyPrefix *string) FlowLogDestination

Use S3 as the destination.

type FlowLogDestinationConfig

type FlowLogDestinationConfig struct {
	// The type of destination to publish the flow logs to.
	LogDestinationType FlowLogDestinationType `json:"logDestinationType" yaml:"logDestinationType"`
	// The IAM Role that has access to publish to CloudWatch logs.
	IamRole awsiam.IRole `json:"iamRole" yaml:"iamRole"`
	// S3 bucket key prefix to publish the flow logs to.
	KeyPrefix *string `json:"keyPrefix" yaml:"keyPrefix"`
	// The CloudWatch Logs Log Group to publish the flow logs to.
	LogGroup awslogs.ILogGroup `json:"logGroup" yaml:"logGroup"`
	// S3 bucket to publish the flow logs to.
	S3Bucket awss3.IBucket `json:"s3Bucket" yaml:"s3Bucket"`
}

Flow Log Destination configuration.

TODO: EXAMPLE

type FlowLogDestinationType

type FlowLogDestinationType string

The available destination types for Flow Logs.

const (
	FlowLogDestinationType_CLOUD_WATCH_LOGS FlowLogDestinationType = "CLOUD_WATCH_LOGS"
	FlowLogDestinationType_S3               FlowLogDestinationType = "S3"
)

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 FlowLogDestination `json:"destination" yaml:"destination"`
	// The type of traffic to log.
	//
	// You can log traffic that the resource accepts or rejects, or all traffic.
	TrafficType FlowLogTrafficType `json:"trafficType" yaml:"trafficType"`
}

Options to add a flow log to a VPC.

TODO: EXAMPLE

type FlowLogProps

type FlowLogProps 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 FlowLogDestination `json:"destination" yaml:"destination"`
	// The type of traffic to log.
	//
	// You can log traffic that the resource accepts or rejects, or all traffic.
	TrafficType FlowLogTrafficType `json:"trafficType" yaml:"trafficType"`
	// The type of resource for which to create the flow log.
	ResourceType FlowLogResourceType `json:"resourceType" yaml:"resourceType"`
	// The name of the FlowLog.
	//
	// It is not recommended to use an explicit name.
	FlowLogName *string `json:"flowLogName" yaml:"flowLogName"`
}

Properties of a VPC Flow Log.

TODO: EXAMPLE

type FlowLogResourceType

type FlowLogResourceType interface {
	ResourceId() *string
	SetResourceId(val *string)
	ResourceType() *string
	SetResourceType(val *string)
}

The type of resource to create the flow log for.

TODO: EXAMPLE

func FlowLogResourceType_FromNetworkInterfaceId

func FlowLogResourceType_FromNetworkInterfaceId(id *string) FlowLogResourceType

The Network Interface to attach the Flow Log to.

func FlowLogResourceType_FromSubnet

func FlowLogResourceType_FromSubnet(subnet ISubnet) FlowLogResourceType

The subnet to attach the Flow Log to.

func FlowLogResourceType_FromVpc

func FlowLogResourceType_FromVpc(vpc IVpc) FlowLogResourceType

The VPC to attach the Flow Log to.

type FlowLogTrafficType

type FlowLogTrafficType string

The type of VPC traffic to log.

TODO: EXAMPLE

const (
	FlowLogTrafficType_ACCEPT FlowLogTrafficType = "ACCEPT"
	FlowLogTrafficType_ALL    FlowLogTrafficType = "ALL"
	FlowLogTrafficType_REJECT FlowLogTrafficType = "REJECT"
)

type GatewayConfig

type GatewayConfig struct {
	// Availability Zone.
	Az *string `json:"az" yaml:"az"`
	// Identity of gateway spawned by the provider.
	GatewayId *string `json:"gatewayId" yaml:"gatewayId"`
}

Pair represents a gateway created by NAT Provider.

TODO: EXAMPLE

type GatewayVpcEndpoint

type GatewayVpcEndpoint interface {
	VpcEndpoint
	IGatewayVpcEndpoint
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	PolicyDocument() awsiam.PolicyDocument
	SetPolicyDocument(val awsiam.PolicyDocument)
	Stack() awscdk.Stack
	VpcEndpointCreationTimestamp() *string
	VpcEndpointDnsEntries() *[]*string
	VpcEndpointId() *string
	VpcEndpointNetworkInterfaceIds() *[]*string
	AddToPolicy(statement awsiam.PolicyStatement)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

A gateway VPC endpoint.

TODO: EXAMPLE

func NewGatewayVpcEndpoint

func NewGatewayVpcEndpoint(scope constructs.Construct, id *string, props *GatewayVpcEndpointProps) GatewayVpcEndpoint

type GatewayVpcEndpointAwsService

type GatewayVpcEndpointAwsService interface {
	IGatewayVpcEndpointService
	Name() *string
}

An AWS service for a gateway VPC endpoint.

TODO: EXAMPLE

func GatewayVpcEndpointAwsService_DYNAMODB

func GatewayVpcEndpointAwsService_DYNAMODB() GatewayVpcEndpointAwsService

func GatewayVpcEndpointAwsService_S3

func GatewayVpcEndpointAwsService_S3() GatewayVpcEndpointAwsService

func NewGatewayVpcEndpointAwsService

func NewGatewayVpcEndpointAwsService(name *string, prefix *string) GatewayVpcEndpointAwsService

type GatewayVpcEndpointOptions

type GatewayVpcEndpointOptions struct {
	// The service to use for this gateway VPC endpoint.
	Service IGatewayVpcEndpointService `json:"service" yaml:"service"`
	// Where to add endpoint routing.
	//
	// By default, this endpoint will be routable from all subnets in the VPC.
	// Specify a list of subnet selection objects here to be more specific.
	//
	// TODO: EXAMPLE
	//
	Subnets *[]*SubnetSelection `json:"subnets" yaml:"subnets"`
}

Options to add a gateway endpoint to a VPC.

TODO: EXAMPLE

type GatewayVpcEndpointProps

type GatewayVpcEndpointProps struct {
	// The service to use for this gateway VPC endpoint.
	Service IGatewayVpcEndpointService `json:"service" yaml:"service"`
	// Where to add endpoint routing.
	//
	// By default, this endpoint will be routable from all subnets in the VPC.
	// Specify a list of subnet selection objects here to be more specific.
	//
	// TODO: EXAMPLE
	//
	Subnets *[]*SubnetSelection `json:"subnets" yaml:"subnets"`
	// The VPC network in which the gateway endpoint will be used.
	Vpc IVpc `json:"vpc" yaml:"vpc"`
}

Construction properties for a GatewayVpcEndpoint.

TODO: EXAMPLE

type GenericLinuxImage

type GenericLinuxImage interface {
	IMachineImage
	GetImage(scope constructs.Construct) *MachineImageConfig
}

Construct a Linux machine image from an AMI map.

Linux images IDs are not published to SSM parameter store yet, so you'll have to manually specify an AMI map.

TODO: EXAMPLE

func NewGenericLinuxImage

func NewGenericLinuxImage(amiMap *map[string]*string, props *GenericLinuxImageProps) GenericLinuxImage

type GenericLinuxImageProps

type GenericLinuxImageProps struct {
	// Initial user data.
	UserData UserData `json:"userData" yaml:"userData"`
}

Configuration options for GenericLinuxImage.

TODO: EXAMPLE

type GenericSSMParameterImage

type GenericSSMParameterImage interface {
	IMachineImage
	ParameterName() *string
	GetImage(scope constructs.Construct) *MachineImageConfig
}

Select the image based on a given SSM parameter.

This Machine Image automatically updates to the latest version on every deployment. Be aware this will cause your instances to be replaced when a new version of the image becomes available. Do not store stateful information on the instance if you are using this image.

The AMI ID is selected using the values published to the SSM parameter store.

TODO: EXAMPLE

func NewGenericSSMParameterImage

func NewGenericSSMParameterImage(parameterName *string, os OperatingSystemType, userData UserData) GenericSSMParameterImage

type GenericWindowsImage

type GenericWindowsImage interface {
	IMachineImage
	GetImage(scope constructs.Construct) *MachineImageConfig
}

Construct a Windows machine image from an AMI map.

Allows you to create a generic Windows EC2 , manually specify an AMI map.

TODO: EXAMPLE

func NewGenericWindowsImage

func NewGenericWindowsImage(amiMap *map[string]*string, props *GenericWindowsImageProps) GenericWindowsImage

type GenericWindowsImageProps

type GenericWindowsImageProps struct {
	// Initial user data.
	UserData UserData `json:"userData" yaml:"userData"`
}

Configuration options for GenericWindowsImage.

TODO: EXAMPLE

type IClientVpnConnectionHandler

type IClientVpnConnectionHandler interface {
	// The ARN of the function.
	FunctionArn() *string
	// The name of the function.
	FunctionName() *string
}

A connection handler for client VPN endpoints.

type IClientVpnEndpoint

type IClientVpnEndpoint interface {
	IConnectable
	awscdk.IResource
	// The endpoint ID.
	EndpointId() *string
	// Dependable that can be depended upon to force target networks associations.
	TargetNetworksAssociated() constructs.IDependable
}

A client VPN endpoint.

func ClientVpnEndpoint_FromEndpointAttributes

func ClientVpnEndpoint_FromEndpointAttributes(scope constructs.Construct, id *string, attrs *ClientVpnEndpointAttributes) IClientVpnEndpoint

Import an existing client VPN endpoint.

type IConnectable

type IConnectable interface {
	// The network connections associated with this resource.
	Connections() Connections
}

An object that has a Connections object.

type IFlowLog

type IFlowLog interface {
	awscdk.IResource
	// The Id of the VPC Flow Log.
	FlowLogId() *string
}

A FlowLog.

func FlowLog_FromFlowLogId

func FlowLog_FromFlowLogId(scope constructs.Construct, id *string, flowLogId *string) IFlowLog

Import a Flow Log by it's Id.

type IGatewayVpcEndpoint

type IGatewayVpcEndpoint interface {
	IVpcEndpoint
}

A gateway VPC endpoint.

func GatewayVpcEndpoint_FromGatewayVpcEndpointId

func GatewayVpcEndpoint_FromGatewayVpcEndpointId(scope constructs.Construct, id *string, gatewayVpcEndpointId *string) IGatewayVpcEndpoint

type IGatewayVpcEndpointService

type IGatewayVpcEndpointService interface {
	// The name of the service.
	Name() *string
}

A service for a gateway VPC endpoint.

type IInstance

type IInstance interface {
	IConnectable
	awsiam.IGrantable
	awscdk.IResource
	// The availability zone the instance was launched in.
	InstanceAvailabilityZone() *string
	// The instance's ID.
	InstanceId() *string
	// Private DNS name for this instance.
	InstancePrivateDnsName() *string
	// Private IP for this instance.
	InstancePrivateIp() *string
	// Publicly-routable DNS name for this instance.
	//
	// (May be an empty string if the instance does not have a public name).
	InstancePublicDnsName() *string
	// Publicly-routable IP  address for this instance.
	//
	// (May be an empty string if the instance does not have a public IP).
	InstancePublicIp() *string
}

type IInterfaceVpcEndpoint

type IInterfaceVpcEndpoint interface {
	IConnectable
	IVpcEndpoint
}

An interface VPC endpoint.

func InterfaceVpcEndpoint_FromInterfaceVpcEndpointAttributes

func InterfaceVpcEndpoint_FromInterfaceVpcEndpointAttributes(scope constructs.Construct, id *string, attrs *InterfaceVpcEndpointAttributes) IInterfaceVpcEndpoint

Imports an existing interface VPC endpoint.

type IInterfaceVpcEndpointService

type IInterfaceVpcEndpointService interface {
	// The name of the service.
	Name() *string
	// The port of the service.
	Port() *float64
	// Whether Private DNS is supported by default.
	PrivateDnsDefault() *bool
}

A service for an interface VPC endpoint.

type ILaunchTemplate

type ILaunchTemplate interface {
	awscdk.IResource
	// The identifier of the Launch Template.
	//
	// Exactly one of `launchTemplateId` and `launchTemplateName` will be set.
	LaunchTemplateId() *string
	// The name of the Launch Template.
	//
	// Exactly one of `launchTemplateId` and `launchTemplateName` will be set.
	LaunchTemplateName() *string
	// The version number of this launch template to use.
	VersionNumber() *string
}

Interface for LaunchTemplate-like objects.

func LaunchTemplate_FromLaunchTemplateAttributes

func LaunchTemplate_FromLaunchTemplateAttributes(scope constructs.Construct, id *string, attrs *LaunchTemplateAttributes) ILaunchTemplate

Import an existing LaunchTemplate.

type IMachineImage

type IMachineImage interface {
	// Return the image to use in the given context.
	GetImage(scope constructs.Construct) *MachineImageConfig
}

Interface for classes that can select an appropriate machine image to use.

func MachineImage_FromSsmParameter

func MachineImage_FromSsmParameter(parameterName *string, options *SsmParameterImageOptions) IMachineImage

An image specified in SSM parameter store.

By default, the SSM parameter is refreshed at every deployment, causing your instances to be replaced whenever a new version of the AMI is released.

Pass `{ cachedInContext: true }` to keep the AMI ID stable. If you do, you will have to remember to periodically invalidate the context to refresh to the newest AMI ID.

func MachineImage_GenericLinux

func MachineImage_GenericLinux(amiMap *map[string]*string, props *GenericLinuxImageProps) IMachineImage

A Linux image where you specify the AMI ID for every region.

func MachineImage_GenericWindows

func MachineImage_GenericWindows(amiMap *map[string]*string, props *GenericWindowsImageProps) IMachineImage

A Windows image where you specify the AMI ID for every region.

func MachineImage_LatestAmazonLinux

func MachineImage_LatestAmazonLinux(props *AmazonLinuxImageProps) IMachineImage

An Amazon Linux image that is automatically kept up-to-date.

This Machine Image automatically updates to the latest version on every deployment. Be aware this will cause your instances to be replaced when a new version of the image becomes available. Do not store stateful information on the instance if you are using this image.

func MachineImage_LatestWindows

func MachineImage_LatestWindows(version WindowsVersion, props *WindowsImageProps) IMachineImage

A Windows image that is automatically kept up-to-date.

This Machine Image automatically updates to the latest version on every deployment. Be aware this will cause your instances to be replaced when a new version of the image becomes available. Do not store stateful information on the instance if you are using this image.

func MachineImage_Lookup

func MachineImage_Lookup(props *LookupMachineImageProps) IMachineImage

Look up a shared Machine Image using DescribeImages.

The most recent, available, launchable image matching the given filter criteria will be used. Looking up AMIs may take a long time; specify as many filter criteria as possible to narrow down the search.

The AMI selected will be cached in `cdk.context.json` and the same value will be used on future runs. To refresh the AMI 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.

This function can not be used in environment-agnostic stacks.

type INetworkAcl

type INetworkAcl interface {
	awscdk.IResource
	// Add a new entry to the ACL.
	AddEntry(id *string, options *CommonNetworkAclEntryOptions) NetworkAclEntry
	// ID for the current Network ACL.
	NetworkAclId() *string
}

A NetworkAcl.

func NetworkAcl_FromNetworkAclId

func NetworkAcl_FromNetworkAclId(scope constructs.Construct, id *string, networkAclId *string) INetworkAcl

Import an existing NetworkAcl into this app.

type INetworkAclEntry

type INetworkAclEntry interface {
	awscdk.IResource
	// The network ACL.
	NetworkAcl() INetworkAcl
}

A NetworkAclEntry.

type IPeer

type IPeer interface {
	IConnectable
	// Produce the egress rule JSON for the given connection.
	ToEgressRuleConfig() interface{}
	// Produce the ingress rule JSON for the given connection.
	ToIngressRuleConfig() interface{}
	// Whether the rule can be inlined into a SecurityGroup or not.
	CanInlineRule() *bool
	// A unique identifier for this connection peer.
	UniqueId() *string
}

Interface for classes that provide the peer-specification parts of a security group rule.

func Peer_AnyIpv4

func Peer_AnyIpv4() IPeer

Any IPv4 address.

func Peer_AnyIpv6

func Peer_AnyIpv6() IPeer

Any IPv6 address.

func Peer_Ipv4

func Peer_Ipv4(cidrIp *string) IPeer

Create an IPv4 peer from a CIDR.

func Peer_Ipv6

func Peer_Ipv6(cidrIp *string) IPeer

Create an IPv6 peer from a CIDR.

func Peer_PrefixList

func Peer_PrefixList(prefixListId *string) IPeer

A prefix list.

func Peer_SecurityGroupId added in v2.9.0

func Peer_SecurityGroupId(securityGroupId *string, sourceSecurityGroupOwnerId *string) IPeer

A security group ID.

type IPrivateSubnet

type IPrivateSubnet interface {
	ISubnet
}

func PrivateSubnet_FromPrivateSubnetAttributes

func PrivateSubnet_FromPrivateSubnetAttributes(scope constructs.Construct, id *string, attrs *PrivateSubnetAttributes) IPrivateSubnet

type IPublicSubnet

type IPublicSubnet interface {
	ISubnet
}

func PublicSubnet_FromPublicSubnetAttributes

func PublicSubnet_FromPublicSubnetAttributes(scope constructs.Construct, id *string, attrs *PublicSubnetAttributes) IPublicSubnet

type IRouteTable

type IRouteTable interface {
	// Route table ID.
	RouteTableId() *string
}

An abstract route table.

type ISecurityGroup

type ISecurityGroup interface {
	IPeer
	awscdk.IResource
	// Add an egress rule for the current security group.
	//
	// `remoteRule` controls where the Rule object is created if the peer is also a
	// securityGroup and they are in different stack. If false (default) the
	// rule object is created under the current SecurityGroup object. If true and the
	// peer is also a SecurityGroup, the rule object is created under the remote
	// SecurityGroup object.
	AddEgressRule(peer IPeer, connection Port, description *string, remoteRule *bool)
	// Add an ingress rule for the current security group.
	//
	// `remoteRule` controls where the Rule object is created if the peer is also a
	// securityGroup and they are in different stack. If false (default) the
	// rule object is created under the current SecurityGroup object. If true and the
	// peer is also a SecurityGroup, the rule object is created under the remote
	// SecurityGroup object.
	AddIngressRule(peer IPeer, connection Port, description *string, remoteRule *bool)
	// Whether the SecurityGroup has been configured to allow all outbound traffic.
	AllowAllOutbound() *bool
	// ID for the current security group.
	SecurityGroupId() *string
}

Interface for security group-like objects.

func SecurityGroup_FromLookupById

func SecurityGroup_FromLookupById(scope constructs.Construct, id *string, securityGroupId *string) ISecurityGroup

Look up a security group by id.

func SecurityGroup_FromLookupByName

func SecurityGroup_FromLookupByName(scope constructs.Construct, id *string, securityGroupName *string, vpc IVpc) ISecurityGroup

Look up a security group by name.

func SecurityGroup_FromSecurityGroupId

func SecurityGroup_FromSecurityGroupId(scope constructs.Construct, id *string, securityGroupId *string, options *SecurityGroupImportOptions) ISecurityGroup

Import an existing security group into this app.

This method will assume that the Security Group has a rule in it which allows all outbound traffic, and so will not add egress rules to the imported Security Group (only ingress rules).

If your existing Security Group needs to have egress rules added, pass the `allowAllOutbound: false` option on import.

type ISubnet

type ISubnet interface {
	awscdk.IResource
	// Associate a Network ACL with this subnet.
	AssociateNetworkAcl(id *string, acl INetworkAcl)
	// The Availability Zone the subnet is located in.
	AvailabilityZone() *string
	// Dependable that can be depended upon to force internet connectivity established on the VPC.
	InternetConnectivityEstablished() constructs.IDependable
	// The IPv4 CIDR block for this subnet.
	Ipv4CidrBlock() *string
	// The route table for this subnet.
	RouteTable() IRouteTable
	// The subnetId for this particular subnet.
	SubnetId() *string
}

func PrivateSubnet_FromSubnetAttributes

func PrivateSubnet_FromSubnetAttributes(scope constructs.Construct, id *string, attrs *SubnetAttributes) ISubnet

func PrivateSubnet_FromSubnetId

func PrivateSubnet_FromSubnetId(scope constructs.Construct, id *string, subnetId *string) ISubnet

Import existing subnet from id.

func PublicSubnet_FromSubnetAttributes

func PublicSubnet_FromSubnetAttributes(scope constructs.Construct, id *string, attrs *SubnetAttributes) ISubnet

func PublicSubnet_FromSubnetId

func PublicSubnet_FromSubnetId(scope constructs.Construct, id *string, subnetId *string) ISubnet

Import existing subnet from id.

func Subnet_FromSubnetAttributes

func Subnet_FromSubnetAttributes(scope constructs.Construct, id *string, attrs *SubnetAttributes) ISubnet

func Subnet_FromSubnetId

func Subnet_FromSubnetId(scope constructs.Construct, id *string, subnetId *string) ISubnet

Import existing subnet from id.

type ISubnetNetworkAclAssociation

type ISubnetNetworkAclAssociation interface {
	awscdk.IResource
	// ID for the current SubnetNetworkAclAssociation.
	SubnetNetworkAclAssociationAssociationId() *string
}

A SubnetNetworkAclAssociation.

func SubnetNetworkAclAssociation_FromSubnetNetworkAclAssociationAssociationId

func SubnetNetworkAclAssociation_FromSubnetNetworkAclAssociationAssociationId(scope constructs.Construct, id *string, subnetNetworkAclAssociationAssociationId *string) ISubnetNetworkAclAssociation

type IVolume

type IVolume interface {
	awscdk.IResource
	// Grants permission to attach this Volume to an instance.
	//
	// CAUTION: Granting an instance permission to attach to itself using this method will lead to
	// an unresolvable circular reference between the instance role and the instance.
	// Use {@link IVolume.grantAttachVolumeToSelf} to grant an instance permission to attach this
	// volume to itself.
	GrantAttachVolume(grantee awsiam.IGrantable, instances *[]IInstance) awsiam.Grant
	// Grants permission to attach the Volume by a ResourceTag condition.
	//
	// If you are looking to
	// grant an Instance, AutoScalingGroup, EC2-Fleet, SpotFleet, ECS host, etc the ability to attach
	// this volume to **itself** then this is the method you want to use.
	//
	// This is implemented by adding a Tag with key `VolumeGrantAttach-<suffix>` to the given
	// constructs and this Volume, and then conditioning the Grant such that the grantee is only
	// given the ability to AttachVolume if both the Volume and the destination Instance have that
	// tag applied to them.
	GrantAttachVolumeByResourceTag(grantee awsiam.IGrantable, constructs *[]constructs.Construct, tagKeySuffix *string) awsiam.Grant
	// Grants permission to detach this Volume from an instance CAUTION: Granting an instance permission to detach from itself using this method will lead to an unresolvable circular reference between the instance role and the instance.
	//
	// Use {@link IVolume.grantDetachVolumeFromSelf} to grant an instance permission to detach this
	// volume from itself.
	GrantDetachVolume(grantee awsiam.IGrantable, instances *[]IInstance) awsiam.Grant
	// Grants permission to detach the Volume by a ResourceTag condition.
	//
	// This is implemented via the same mechanism as {@link IVolume.grantAttachVolumeByResourceTag},
	// and is subject to the same conditions.
	GrantDetachVolumeByResourceTag(grantee awsiam.IGrantable, constructs *[]constructs.Construct, tagKeySuffix *string) awsiam.Grant
	// The availability zone that the EBS Volume is contained within (ex: us-west-2a).
	AvailabilityZone() *string
	// The customer-managed encryption key that is used to encrypt the Volume.
	EncryptionKey() awskms.IKey
	// The EBS Volume's ID.
	VolumeId() *string
}

An EBS Volume in AWS EC2.

func Volume_FromVolumeAttributes

func Volume_FromVolumeAttributes(scope constructs.Construct, id *string, attrs *VolumeAttributes) IVolume

Import an existing EBS Volume into the Stack.

type IVpc

type IVpc interface {
	awscdk.IResource
	// Adds a new client VPN endpoint to this VPC.
	AddClientVpnEndpoint(id *string, options *ClientVpnEndpointOptions) ClientVpnEndpoint
	// Adds a new Flow Log to this VPC.
	AddFlowLog(id *string, options *FlowLogOptions) FlowLog
	// Adds a new gateway endpoint to this VPC.
	AddGatewayEndpoint(id *string, options *GatewayVpcEndpointOptions) GatewayVpcEndpoint
	// Adds a new interface endpoint to this VPC.
	AddInterfaceEndpoint(id *string, options *InterfaceVpcEndpointOptions) InterfaceVpcEndpoint
	// Adds a new VPN connection to this VPC.
	AddVpnConnection(id *string, options *VpnConnectionOptions) VpnConnection
	// Adds a VPN Gateway to this VPC.
	EnableVpnGateway(options *EnableVpnGatewayOptions)
	// Return information on the subnets appropriate for the given selection strategy.
	//
	// Requires that at least one subnet is matched, throws a descriptive
	// error message otherwise.
	SelectSubnets(selection *SubnetSelection) *SelectedSubnets
	// AZs for this VPC.
	AvailabilityZones() *[]*string
	// Dependable that can be depended upon to force internet connectivity established on the VPC.
	InternetConnectivityEstablished() constructs.IDependable
	// List of isolated subnets in this VPC.
	IsolatedSubnets() *[]ISubnet
	// List of private subnets in this VPC.
	PrivateSubnets() *[]ISubnet
	// List of public subnets in this VPC.
	PublicSubnets() *[]ISubnet
	// ARN for this VPC.
	VpcArn() *string
	// CIDR range for this VPC.
	VpcCidrBlock() *string
	// Identifier for this VPC.
	VpcId() *string
	// Identifier for the VPN gateway.
	VpnGatewayId() *string
}

func Vpc_FromLookup

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

Import an existing VPC from 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 Vpc_FromVpcAttributes

func Vpc_FromVpcAttributes(scope constructs.Construct, id *string, attrs *VpcAttributes) 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.

type IVpcEndpoint

type IVpcEndpoint interface {
	awscdk.IResource
	// The VPC endpoint identifier.
	VpcEndpointId() *string
}

A VPC endpoint.

type IVpcEndpointService

type IVpcEndpointService interface {
	awscdk.IResource
	// The id of the VPC Endpoint Service that clients use to connect to, like vpce-svc-xxxxxxxxxxxxxxxx.
	VpcEndpointServiceId() *string
	// The service name of the VPC Endpoint Service that clients use to connect to, like com.amazonaws.vpce.<region>.vpce-svc-xxxxxxxxxxxxxxxx.
	VpcEndpointServiceName() *string
}

A VPC endpoint service.

type IVpcEndpointServiceLoadBalancer

type IVpcEndpointServiceLoadBalancer interface {
	// The ARN of the load balancer that hosts the VPC Endpoint Service.
	LoadBalancerArn() *string
}

A load balancer that can host a VPC Endpoint Service.

type IVpnConnection

type IVpnConnection interface {
	awscdk.IResource
	// Return the given named metric for this VPNConnection.
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// The bytes received through the VPN tunnel.
	//
	// Sum over 5 minutes
	MetricTunnelDataIn(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// The bytes sent through the VPN tunnel.
	//
	// Sum over 5 minutes
	MetricTunnelDataOut(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// The state of the tunnel. 0 indicates DOWN and 1 indicates UP.
	//
	// Average over 5 minutes
	MetricTunnelState(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// The ASN of the customer gateway.
	CustomerGatewayAsn() *float64
	// The id of the customer gateway.
	CustomerGatewayId() *string
	// The ip address of the customer gateway.
	CustomerGatewayIp() *string
	// The id of the VPN connection.
	VpnId() *string
}

type IVpnGateway

type IVpnGateway interface {
	awscdk.IResource
	// The virtual private gateway Id.
	GatewayId() *string
}

The virtual private gateway interface.

type InitCommand

type InitCommand interface {
	InitElement
	ElementType() *string
}

Command to execute on the instance.

TODO: EXAMPLE

func InitCommand_ArgvCommand

func InitCommand_ArgvCommand(argv *[]*string, options *InitCommandOptions) InitCommand

Run a command from an argv array.

You do not need to escape space characters or enclose command parameters in quotes.

func InitCommand_ShellCommand

func InitCommand_ShellCommand(shellCommand *string, options *InitCommandOptions) InitCommand

Run a shell command.

Remember that some characters like `&`, `|`, `;`, `>` etc. have special meaning in a shell and need to be preceded by a `\` if you want to treat them as part of a filename.

type InitCommandOptions

type InitCommandOptions struct {
	// The working directory.
	Cwd *string `json:"cwd" yaml:"cwd"`
	// Sets environment variables for the command.
	//
	// This property overwrites, rather than appends, the existing environment.
	Env *map[string]*string `json:"env" yaml:"env"`
	// Continue running if this command fails.
	IgnoreErrors *bool `json:"ignoreErrors" yaml:"ignoreErrors"`
	// Identifier key for this command.
	//
	// Commands are executed in lexicographical order of their key names.
	Key *string `json:"key" yaml:"key"`
	// Restart the given service(s) after this command has run.
	ServiceRestartHandles *[]InitServiceRestartHandle `json:"serviceRestartHandles" yaml:"serviceRestartHandles"`
	// Command to determine whether this command should be run.
	//
	// If the test passes (exits with error code of 0), the command is run.
	TestCmd *string `json:"testCmd" yaml:"testCmd"`
	// The duration to wait after a command has finished in case the command causes a reboot.
	//
	// Set this value to `InitCommandWaitDuration.none()` if you do not want to wait for every command;
	// `InitCommandWaitDuration.forever()` directs cfn-init to exit and resume only after the reboot is complete.
	//
	// For Windows systems only.
	WaitAfterCompletion InitCommandWaitDuration `json:"waitAfterCompletion" yaml:"waitAfterCompletion"`
}

Options for InitCommand.

TODO: EXAMPLE

type InitCommandWaitDuration

type InitCommandWaitDuration interface {
}

Represents a duration to wait after a command has finished, in case of a reboot (Windows only).

TODO: EXAMPLE

func InitCommandWaitDuration_Forever

func InitCommandWaitDuration_Forever() InitCommandWaitDuration

cfn-init will exit and resume only after a reboot.

func InitCommandWaitDuration_None

func InitCommandWaitDuration_None() InitCommandWaitDuration

Do not wait for this command.

func InitCommandWaitDuration_Of

func InitCommandWaitDuration_Of(duration awscdk.Duration) InitCommandWaitDuration

Wait for a specified duration after a command.

type InitConfig

type InitConfig interface {
	Add(elements ...InitElement)
	IsEmpty() *bool
}

A collection of configuration elements.

TODO: EXAMPLE

func NewInitConfig

func NewInitConfig(elements *[]InitElement) InitConfig

type InitElement

type InitElement interface {
	ElementType() *string
}

Base class for all CloudFormation Init elements.

TODO: EXAMPLE

type InitFile

type InitFile interface {
	InitElement
	ElementType() *string
}

Create files on the EC2 instance.

TODO: EXAMPLE

func InitFile_FromAsset

func InitFile_FromAsset(targetFileName *string, path *string, options *InitFileAssetOptions) InitFile

Create an asset from the given file.

This is appropriate for files that are too large to embed into the template.

func InitFile_FromExistingAsset

func InitFile_FromExistingAsset(targetFileName *string, asset awss3assets.Asset, options *InitFileOptions) InitFile

Use a file from an asset at instance startup time.

func InitFile_FromFileInline

func InitFile_FromFileInline(targetFileName *string, sourceFileName *string, options *InitFileOptions) InitFile

Read a file from disk and use its contents.

The file will be embedded in the template, so care should be taken to not exceed the template size.

If options.base64encoded is set to true, this will base64-encode the file's contents.

func InitFile_FromObject

func InitFile_FromObject(fileName *string, obj *map[string]interface{}, options *InitFileOptions) InitFile

Use a JSON-compatible object as the file content, write it to a JSON file.

May contain tokens.

func InitFile_FromS3Object

func InitFile_FromS3Object(fileName *string, bucket awss3.IBucket, key *string, options *InitFileOptions) InitFile

Download a file from an S3 bucket at instance startup time.

func InitFile_FromString

func InitFile_FromString(fileName *string, content *string, options *InitFileOptions) InitFile

Use a literal string as the file content.

func InitFile_FromUrl

func InitFile_FromUrl(fileName *string, url *string, options *InitFileOptions) InitFile

Download from a URL at instance startup time.

func InitFile_Symlink(fileName *string, target *string, options *InitFileOptions) InitFile

Write a symlink with the given symlink target.

type InitFileAssetOptions

type InitFileAssetOptions struct {
	// True if the inlined content (from a string or file) should be treated as base64 encoded.
	//
	// Only applicable for inlined string and file content.
	Base64Encoded *bool `json:"base64Encoded" yaml:"base64Encoded"`
	// The name of the owning group for this file.
	//
	// Not supported for Windows systems.
	Group *string `json:"group" yaml:"group"`
	// A six-digit octal value representing the mode for this file.
	//
	// Use the first three digits for symlinks and the last three digits for
	// setting permissions. To create a symlink, specify 120xxx, where xxx
	// defines the permissions of the target file. To specify permissions for a
	// file, use the last three digits, such as 000644.
	//
	// Not supported for Windows systems.
	Mode *string `json:"mode" yaml:"mode"`
	// The name of the owning user for this file.
	//
	// Not supported for Windows systems.
	Owner *string `json:"owner" yaml:"owner"`
	// Restart the given service after this file has been written.
	ServiceRestartHandles *[]InitServiceRestartHandle `json:"serviceRestartHandles" yaml:"serviceRestartHandles"`
	// Specify a custom hash for this asset.
	//
	// If `assetHashType` is set it must
	// be set to `AssetHashType.CUSTOM`. For consistency, this custom hash will
	// be SHA256 hashed and encoded as hex. The resulting hash will be the asset
	// hash.
	//
	// NOTE: the hash is used in order to identify a specific revision of the asset, and
	// used for optimizing and caching deployment activities related to this asset such as
	// packaging, uploading to Amazon S3, etc. If you chose to customize the hash, you will
	// need to make sure it is updated every time the asset changes, or otherwise it is
	// possible that some deployments will not be invalidated.
	AssetHash *string `json:"assetHash" yaml:"assetHash"`
	// Specifies the type of hash to calculate for this asset.
	//
	// If `assetHash` is configured, this option must be `undefined` or
	// `AssetHashType.CUSTOM`.
	AssetHashType awscdk.AssetHashType `json:"assetHashType" yaml:"assetHashType"`
	// Bundle the asset by executing a command in a Docker container or a custom bundling provider.
	//
	// The asset path will be mounted at `/asset-input`. The Docker
	// container is responsible for putting content at `/asset-output`.
	// The content at `/asset-output` will be zipped and used as the
	// final asset.
	Bundling *awscdk.BundlingOptions `json:"bundling" yaml:"bundling"`
	// Glob patterns to exclude from the copy.
	Exclude *[]*string `json:"exclude" yaml:"exclude"`
	// A strategy for how to handle symlinks.
	FollowSymlinks awscdk.SymlinkFollowMode `json:"followSymlinks" yaml:"followSymlinks"`
	// The ignore behavior to use for exclude patterns.
	IgnoreMode awscdk.IgnoreMode `json:"ignoreMode" yaml:"ignoreMode"`
	// A list of principals that should be able to read this asset from S3.
	//
	// You can use `asset.grantRead(principal)` to grant read permissions later.
	Readers *[]awsiam.IGrantable `json:"readers" yaml:"readers"`
}

Additional options for creating an InitFile from an asset.

TODO: EXAMPLE

type InitFileOptions

type InitFileOptions struct {
	// True if the inlined content (from a string or file) should be treated as base64 encoded.
	//
	// Only applicable for inlined string and file content.
	Base64Encoded *bool `json:"base64Encoded" yaml:"base64Encoded"`
	// The name of the owning group for this file.
	//
	// Not supported for Windows systems.
	Group *string `json:"group" yaml:"group"`
	// A six-digit octal value representing the mode for this file.
	//
	// Use the first three digits for symlinks and the last three digits for
	// setting permissions. To create a symlink, specify 120xxx, where xxx
	// defines the permissions of the target file. To specify permissions for a
	// file, use the last three digits, such as 000644.
	//
	// Not supported for Windows systems.
	Mode *string `json:"mode" yaml:"mode"`
	// The name of the owning user for this file.
	//
	// Not supported for Windows systems.
	Owner *string `json:"owner" yaml:"owner"`
	// Restart the given service after this file has been written.
	ServiceRestartHandles *[]InitServiceRestartHandle `json:"serviceRestartHandles" yaml:"serviceRestartHandles"`
}

Options for InitFile.

TODO: EXAMPLE

type InitGroup

type InitGroup interface {
	InitElement
	ElementType() *string
}

Create Linux/UNIX groups and assign group IDs.

Not supported for Windows systems.

TODO: EXAMPLE

func InitGroup_FromName

func InitGroup_FromName(groupName *string, groupId *float64) InitGroup

Create a group from its name, and optionally, group id.

func NewInitGroup

func NewInitGroup(groupName *string, groupId *float64) InitGroup

type InitPackage

type InitPackage interface {
	InitElement
	ElementType() *string
	RenderPackageVersions() interface{}
}

A package to be installed during cfn-init time.

TODO: EXAMPLE

func InitPackage_Apt

func InitPackage_Apt(packageName *string, options *NamedPackageOptions) InitPackage

Install a package using APT.

func InitPackage_Msi

func InitPackage_Msi(location *string, options *LocationPackageOptions) InitPackage

Install an MSI package from an HTTP URL or a location on disk.

func InitPackage_Python

func InitPackage_Python(packageName *string, options *NamedPackageOptions) InitPackage

Install a package from PyPI.

func InitPackage_Rpm

func InitPackage_Rpm(location *string, options *LocationPackageOptions) InitPackage

Install an RPM from an HTTP URL or a location on disk.

func InitPackage_RubyGem

func InitPackage_RubyGem(gemName *string, options *NamedPackageOptions) InitPackage

Install a package from RubyGems.

func InitPackage_Yum

func InitPackage_Yum(packageName *string, options *NamedPackageOptions) InitPackage

Install a package using Yum.

func NewInitPackage

func NewInitPackage(type_ *string, versions *[]*string, packageName *string, serviceHandles *[]InitServiceRestartHandle) InitPackage

type InitService

type InitService interface {
	InitElement
	ElementType() *string
}

A services that be enabled, disabled or restarted when the instance is launched.

TODO: EXAMPLE

func InitService_Disable

func InitService_Disable(serviceName *string) InitService

Disable and stop the given service.

func InitService_Enable

func InitService_Enable(serviceName *string, options *InitServiceOptions) InitService

Enable and start the given service, optionally restarting it.

type InitServiceOptions

type InitServiceOptions struct {
	// Enable or disable this service.
	//
	// Set to true to ensure that the service will be started automatically upon boot.
	//
	// Set to false to ensure that the service will not be started automatically upon boot.
	Enabled *bool `json:"enabled" yaml:"enabled"`
	// Make sure this service is running or not running after cfn-init finishes.
	//
	// Set to true to ensure that the service is running after cfn-init finishes.
	//
	// Set to false to ensure that the service is not running after cfn-init finishes.
	EnsureRunning *bool `json:"ensureRunning" yaml:"ensureRunning"`
	// Restart service when the actions registered into the restartHandle have been performed.
	//
	// Register actions into the restartHandle by passing it to `InitFile`, `InitCommand`,
	// `InitPackage` and `InitSource` objects.
	ServiceRestartHandle InitServiceRestartHandle `json:"serviceRestartHandle" yaml:"serviceRestartHandle"`
}

Options for an InitService.

TODO: EXAMPLE

type InitServiceRestartHandle

type InitServiceRestartHandle interface {
}

An object that represents reasons to restart an InitService.

Pass an instance of this object to the `InitFile`, `InitCommand`, `InitSource` and `InitPackage` objects, and finally to an `InitService` itself to cause the actions (files, commands, sources, and packages) to trigger a restart of the service.

For example, the following will run a custom command to install Nginx, and trigger the nginx service to be restarted after the command has run.

```ts const handle = new ec2.InitServiceRestartHandle(); ec2.CloudFormationInit.fromElements(

ec2.InitCommand.shellCommand('/usr/bin/custom-nginx-install.sh', { serviceRestartHandles: [handle] }),
ec2.InitService.enable('nginx', { serviceRestartHandle: handle }),

); ```

TODO: EXAMPLE

func NewInitServiceRestartHandle

func NewInitServiceRestartHandle() InitServiceRestartHandle

type InitSource

type InitSource interface {
	InitElement
	ElementType() *string
}

Extract an archive into a directory.

TODO: EXAMPLE

func InitSource_FromAsset

func InitSource_FromAsset(targetDirectory *string, path *string, options *InitSourceAssetOptions) InitSource

Create an InitSource from an asset created from the given path.

func InitSource_FromExistingAsset

func InitSource_FromExistingAsset(targetDirectory *string, asset awss3assets.Asset, options *InitSourceOptions) InitSource

Extract a directory from an existing directory asset.

func InitSource_FromGitHub

func InitSource_FromGitHub(targetDirectory *string, owner *string, repo *string, refSpec *string, options *InitSourceOptions) InitSource

Extract a GitHub branch into a given directory.

func InitSource_FromS3Object

func InitSource_FromS3Object(targetDirectory *string, bucket awss3.IBucket, key *string, options *InitSourceOptions) InitSource

Extract an archive stored in an S3 bucket into the given directory.

func InitSource_FromUrl

func InitSource_FromUrl(targetDirectory *string, url *string, options *InitSourceOptions) InitSource

Retrieve a URL and extract it into the given directory.

type InitSourceAssetOptions

type InitSourceAssetOptions struct {
	// Restart the given services after this archive has been extracted.
	ServiceRestartHandles *[]InitServiceRestartHandle `json:"serviceRestartHandles" yaml:"serviceRestartHandles"`
	// Specify a custom hash for this asset.
	//
	// If `assetHashType` is set it must
	// be set to `AssetHashType.CUSTOM`. For consistency, this custom hash will
	// be SHA256 hashed and encoded as hex. The resulting hash will be the asset
	// hash.
	//
	// NOTE: the hash is used in order to identify a specific revision of the asset, and
	// used for optimizing and caching deployment activities related to this asset such as
	// packaging, uploading to Amazon S3, etc. If you chose to customize the hash, you will
	// need to make sure it is updated every time the asset changes, or otherwise it is
	// possible that some deployments will not be invalidated.
	AssetHash *string `json:"assetHash" yaml:"assetHash"`
	// Specifies the type of hash to calculate for this asset.
	//
	// If `assetHash` is configured, this option must be `undefined` or
	// `AssetHashType.CUSTOM`.
	AssetHashType awscdk.AssetHashType `json:"assetHashType" yaml:"assetHashType"`
	// Bundle the asset by executing a command in a Docker container or a custom bundling provider.
	//
	// The asset path will be mounted at `/asset-input`. The Docker
	// container is responsible for putting content at `/asset-output`.
	// The content at `/asset-output` will be zipped and used as the
	// final asset.
	Bundling *awscdk.BundlingOptions `json:"bundling" yaml:"bundling"`
	// Glob patterns to exclude from the copy.
	Exclude *[]*string `json:"exclude" yaml:"exclude"`
	// A strategy for how to handle symlinks.
	FollowSymlinks awscdk.SymlinkFollowMode `json:"followSymlinks" yaml:"followSymlinks"`
	// The ignore behavior to use for exclude patterns.
	IgnoreMode awscdk.IgnoreMode `json:"ignoreMode" yaml:"ignoreMode"`
	// A list of principals that should be able to read this asset from S3.
	//
	// You can use `asset.grantRead(principal)` to grant read permissions later.
	Readers *[]awsiam.IGrantable `json:"readers" yaml:"readers"`
}

Additional options for an InitSource that builds an asset from local files.

TODO: EXAMPLE

type InitSourceOptions

type InitSourceOptions struct {
	// Restart the given services after this archive has been extracted.
	ServiceRestartHandles *[]InitServiceRestartHandle `json:"serviceRestartHandles" yaml:"serviceRestartHandles"`
}

Additional options for an InitSource.

TODO: EXAMPLE

type InitUser

type InitUser interface {
	InitElement
	ElementType() *string
}

Create Linux/UNIX users and to assign user IDs.

Users are created as non-interactive system users with a shell of /sbin/nologin. This is by design and cannot be modified.

Not supported for Windows systems.

TODO: EXAMPLE

func InitUser_FromName

func InitUser_FromName(userName *string, options *InitUserOptions) InitUser

Create a user from user name.

func NewInitUser

func NewInitUser(userName *string, userOptions *InitUserOptions) InitUser

type InitUserOptions

type InitUserOptions struct {
	// A list of group names.
	//
	// The user will be added to each group in the list.
	Groups *[]*string `json:"groups" yaml:"groups"`
	// The user's home directory.
	HomeDir *string `json:"homeDir" yaml:"homeDir"`
	// A user ID.
	//
	// The creation process fails if the user name exists with a different user ID.
	// If the user ID is already assigned to an existing user the operating system may
	// reject the creation request.
	UserId *float64 `json:"userId" yaml:"userId"`
}

Optional parameters used when creating a user.

TODO: EXAMPLE

type Instance

type Instance interface {
	awscdk.Resource
	IInstance
	Connections() Connections
	Env() *awscdk.ResourceEnvironment
	GrantPrincipal() awsiam.IPrincipal
	Instance() CfnInstance
	InstanceAvailabilityZone() *string
	InstanceId() *string
	InstancePrivateDnsName() *string
	InstancePrivateIp() *string
	InstancePublicDnsName() *string
	InstancePublicIp() *string
	Node() constructs.Node
	OsType() OperatingSystemType
	PhysicalName() *string
	Role() awsiam.IRole
	Stack() awscdk.Stack
	UserData() UserData
	AddSecurityGroup(securityGroup ISecurityGroup)
	AddToRolePolicy(statement awsiam.PolicyStatement)
	AddUserData(commands ...*string)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

This represents a single EC2 instance.

TODO: EXAMPLE

func NewInstance

func NewInstance(scope constructs.Construct, id *string, props *InstanceProps) Instance

type InstanceArchitecture

type InstanceArchitecture string

Identifies an instance's CPU architecture.

const (
	InstanceArchitecture_ARM_64 InstanceArchitecture = "ARM_64"
	InstanceArchitecture_X86_64 InstanceArchitecture = "X86_64"
)

type InstanceClass

type InstanceClass string

What class and generation of instance to use.

We have both symbolic and concrete enums for every type.

The first are for people that want to specify by purpose, the second one are for people who already know exactly what 'R4' means.

TODO: EXAMPLE

const (
	InstanceClass_STANDARD3                                   InstanceClass = "STANDARD3"
	InstanceClass_STANDARD4                                   InstanceClass = "STANDARD4"
	InstanceClass_STANDARD5                                   InstanceClass = "STANDARD5"
	InstanceClass_STANDARD5_NVME_DRIVE                        InstanceClass = "STANDARD5_NVME_DRIVE"
	InstanceClass_STANDARD5_AMD                               InstanceClass = "STANDARD5_AMD"
	InstanceClass_STANDARD5_AMD_NVME_DRIVE                    InstanceClass = "STANDARD5_AMD_NVME_DRIVE"
	InstanceClass_STANDARD5_HIGH_PERFORMANCE                  InstanceClass = "STANDARD5_HIGH_PERFORMANCE"
	InstanceClass_STANDARD5_NVME_DRIVE_HIGH_PERFORMANCE       InstanceClass = "STANDARD5_NVME_DRIVE_HIGH_PERFORMANCE"
	InstanceClass_STANDARD5_HIGH_COMPUTE                      InstanceClass = "STANDARD5_HIGH_COMPUTE"
	InstanceClass_MEMORY3                                     InstanceClass = "MEMORY3"
	InstanceClass_MEMORY4                                     InstanceClass = "MEMORY4"
	InstanceClass_MEMORY5                                     InstanceClass = "MEMORY5"
	InstanceClass_MEMORY6_INTEL                               InstanceClass = "MEMORY6_INTEL"
	InstanceClass_MEMORY5_HIGH_PERFORMANCE                    InstanceClass = "MEMORY5_HIGH_PERFORMANCE"
	InstanceClass_MEMORY5_NVME_DRIVE                          InstanceClass = "MEMORY5_NVME_DRIVE"
	InstanceClass_MEMORY5_NVME_DRIVE_HIGH_PERFORMANCE         InstanceClass = "MEMORY5_NVME_DRIVE_HIGH_PERFORMANCE"
	InstanceClass_MEMORY5_AMD                                 InstanceClass = "MEMORY5_AMD"
	InstanceClass_MEMORY5_AMD_NVME_DRIVE                      InstanceClass = "MEMORY5_AMD_NVME_DRIVE"
	InstanceClass_HIGH_MEMORY_6TB_1                           InstanceClass = "HIGH_MEMORY_6TB_1"
	InstanceClass_HIGH_MEMORY_9TB_1                           InstanceClass = "HIGH_MEMORY_9TB_1"
	InstanceClass_HIGH_MEMORY_12TB_1                          InstanceClass = "HIGH_MEMORY_12TB_1"
	InstanceClass_HIGH_MEMORY_18TB_1                          InstanceClass = "HIGH_MEMORY_18TB_1"
	InstanceClass_HIGH_MEMORY_24TB_1                          InstanceClass = "HIGH_MEMORY_24TB_1"
	InstanceClass_MEMORY5_EBS_OPTIMIZED                       InstanceClass = "MEMORY5_EBS_OPTIMIZED"
	InstanceClass_MEMORY6_GRAVITON                            InstanceClass = "MEMORY6_GRAVITON"
	InstanceClass_MEMORY6_GRAVITON2_NVME_DRIVE                InstanceClass = "MEMORY6_GRAVITON2_NVME_DRIVE"
	InstanceClass_COMPUTE3                                    InstanceClass = "COMPUTE3"
	InstanceClass_COMPUTE4                                    InstanceClass = "COMPUTE4"
	InstanceClass_COMPUTE5                                    InstanceClass = "COMPUTE5"
	InstanceClass_COMPUTE5_NVME_DRIVE                         InstanceClass = "COMPUTE5_NVME_DRIVE"
	InstanceClass_COMPUTE5_AMD                                InstanceClass = "COMPUTE5_AMD"
	InstanceClass_COMPUTE5_AMD_NVME_DRIVE                     InstanceClass = "COMPUTE5_AMD_NVME_DRIVE"
	InstanceClass_COMPUTE5_HIGH_PERFORMANCE                   InstanceClass = "COMPUTE5_HIGH_PERFORMANCE"
	InstanceClass_COMPUTE6_INTEL                              InstanceClass = "COMPUTE6_INTEL"
	InstanceClass_COMPUTE6_AMD                                InstanceClass = "COMPUTE6_AMD"
	InstanceClass_COMPUTE6_GRAVITON2                          InstanceClass = "COMPUTE6_GRAVITON2"
	InstanceClass_COMPUTE6_GRAVITON2_NVME_DRIVE               InstanceClass = "COMPUTE6_GRAVITON2_NVME_DRIVE"
	InstanceClass_COMPUTE6_GRAVITON2_HIGH_NETWORK_BANDWITH    InstanceClass = "COMPUTE6_GRAVITON2_HIGH_NETWORK_BANDWITH"
	InstanceClass_STORAGE2                                    InstanceClass = "STORAGE2"
	InstanceClass_STORAGE3                                    InstanceClass = "STORAGE3"
	InstanceClass_STORAGE3_ENHANCED_NETWORK                   InstanceClass = "STORAGE3_ENHANCED_NETWORK"
	InstanceClass_STORAGE_COMPUTE_1                           InstanceClass = "STORAGE_COMPUTE_1"
	InstanceClass_IO3                                         InstanceClass = "IO3"
	InstanceClass_IO3_DENSE_NVME_DRIVE                        InstanceClass = "IO3_DENSE_NVME_DRIVE"
	InstanceClass_STORAGE4_GRAVITON_NETWORK_OPTIMIZED         InstanceClass = "STORAGE4_GRAVITON_NETWORK_OPTIMIZED"
	InstanceClass_STORAGE4_GRAVITON_NETWORK_STORAGE_OPTIMIZED InstanceClass = "STORAGE4_GRAVITON_NETWORK_STORAGE_OPTIMIZED"
	InstanceClass_BURSTABLE2                                  InstanceClass = "BURSTABLE2"
	InstanceClass_BURSTABLE3                                  InstanceClass = "BURSTABLE3"
	InstanceClass_BURSTABLE3_AMD                              InstanceClass = "BURSTABLE3_AMD"
	InstanceClass_BURSTABLE4_GRAVITON                         InstanceClass = "BURSTABLE4_GRAVITON"
	InstanceClass_MEMORY_INTENSIVE_1                          InstanceClass = "MEMORY_INTENSIVE_1"
	InstanceClass_MEMORY_INTENSIVE_1_EXTENDED                 InstanceClass = "MEMORY_INTENSIVE_1_EXTENDED"
	InstanceClass_MEMORY_INTENSIVE_2_GRAVITON2                InstanceClass = "MEMORY_INTENSIVE_2_GRAVITON2"
	InstanceClass_MEMORY_INTENSIVE_2_GRAVITON2_NVME_DRIVE     InstanceClass = "MEMORY_INTENSIVE_2_GRAVITON2_NVME_DRIVE"
	InstanceClass_MEMORY_INTENSIVE_2_XT_INTEL                 InstanceClass = "MEMORY_INTENSIVE_2_XT_INTEL"
	InstanceClass_MEMORY_INTENSIVE_2_INTEL                    InstanceClass = "MEMORY_INTENSIVE_2_INTEL"
	InstanceClass_FPGA1                                       InstanceClass = "FPGA1"
	InstanceClass_GRAPHICS3                                   InstanceClass = "GRAPHICS3"
	InstanceClass_GRAPHICS4_NVME_DRIVE_HIGH_PERFORMANCE       InstanceClass = "GRAPHICS4_NVME_DRIVE_HIGH_PERFORMANCE"
	InstanceClass_GRAPHICS4_AMD_NVME_DRIVE                    InstanceClass = "GRAPHICS4_AMD_NVME_DRIVE"
	InstanceClass_GRAPHICS5                                   InstanceClass = "GRAPHICS5"
	InstanceClass_GRAPHICS5_GRAVITON2                         InstanceClass = "GRAPHICS5_GRAVITON2"
	InstanceClass_PARALLEL2                                   InstanceClass = "PARALLEL2"
	InstanceClass_PARALLEL3                                   InstanceClass = "PARALLEL3"
	InstanceClass_PARALLEL4                                   InstanceClass = "PARALLEL4"
	InstanceClass_ARM1                                        InstanceClass = "ARM1"
	InstanceClass_STANDARD6_GRAVITON                          InstanceClass = "STANDARD6_GRAVITON"
	InstanceClass_STANDARD6_INTEL                             InstanceClass = "STANDARD6_INTEL"
	InstanceClass_STANDARD6_AMD                               InstanceClass = "STANDARD6_AMD"
	InstanceClass_STANDARD6_GRAVITON2_NVME_DRIVE              InstanceClass = "STANDARD6_GRAVITON2_NVME_DRIVE"
	InstanceClass_HIGH_COMPUTE_MEMORY1                        InstanceClass = "HIGH_COMPUTE_MEMORY1"
	InstanceClass_INFERENCE1                                  InstanceClass = "INFERENCE1"
	InstanceClass_MACINTOSH1_INTEL                            InstanceClass = "MACINTOSH1_INTEL"
	InstanceClass_VIDEO_TRANSCODING1                          InstanceClass = "VIDEO_TRANSCODING1"
	InstanceClass_HIGH_PERFORMANCE_COMPUTING6_AMD             InstanceClass = "HIGH_PERFORMANCE_COMPUTING6_AMD"
)

type InstanceInitiatedShutdownBehavior

type InstanceInitiatedShutdownBehavior string

Provides the options for specifying the instance initiated shutdown behavior. See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior

const (
	InstanceInitiatedShutdownBehavior_STOP      InstanceInitiatedShutdownBehavior = "STOP"
	InstanceInitiatedShutdownBehavior_TERMINATE InstanceInitiatedShutdownBehavior = "TERMINATE"
)

type InstanceProps

type InstanceProps struct {
	// Type of instance to launch.
	InstanceType InstanceType `json:"instanceType" yaml:"instanceType"`
	// AMI to launch.
	MachineImage IMachineImage `json:"machineImage" yaml:"machineImage"`
	// VPC to launch the instance in.
	Vpc IVpc `json:"vpc" yaml:"vpc"`
	// Whether the instance could initiate connections to anywhere by default.
	//
	// This property is only used when you do not provide a security group.
	AllowAllOutbound *bool `json:"allowAllOutbound" yaml:"allowAllOutbound"`
	// In which AZ to place the instance within the VPC.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes.
	//
	// Each instance that is launched has an associated root device volume,
	// either an Amazon EBS volume or an instance store volume.
	// You can use block device mappings to specify additional EBS volumes or
	// instance store volumes to attach to an instance when it is launched.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html
	//
	BlockDevices *[]*BlockDevice `json:"blockDevices" yaml:"blockDevices"`
	// Apply the given CloudFormation Init configuration to the instance at startup.
	Init CloudFormationInit `json:"init" yaml:"init"`
	// Use the given options for applying CloudFormation Init.
	//
	// Describes the configsets to use and the timeout to wait
	InitOptions *ApplyCloudFormationInitOptions `json:"initOptions" yaml:"initOptions"`
	// The name of the instance.
	InstanceName *string `json:"instanceName" yaml:"instanceName"`
	// Name of SSH keypair to grant access to instance.
	KeyName *string `json:"keyName" yaml:"keyName"`
	// Defines a private IP address to associate with an instance.
	//
	// Private IP should be available within the VPC that the instance is build within.
	PrivateIpAddress *string `json:"privateIpAddress" yaml:"privateIpAddress"`
	// Propagate the EC2 instance tags to the EBS volumes.
	PropagateTagsToVolumeOnCreation *bool `json:"propagateTagsToVolumeOnCreation" yaml:"propagateTagsToVolumeOnCreation"`
	// Whether IMDSv2 should be required on this instance.
	RequireImdsv2 *bool `json:"requireImdsv2" yaml:"requireImdsv2"`
	// The length of time to wait for the resourceSignalCount.
	//
	// The maximum value is 43200 (12 hours).
	ResourceSignalTimeout awscdk.Duration `json:"resourceSignalTimeout" yaml:"resourceSignalTimeout"`
	// An IAM role to associate with the instance profile assigned to this Auto Scaling Group.
	//
	// The role must be assumable by the service principal `ec2.amazonaws.com`:
	//
	// TODO: EXAMPLE
	//
	Role awsiam.IRole `json:"role" yaml:"role"`
	// Security Group to assign to this instance.
	SecurityGroup ISecurityGroup `json:"securityGroup" yaml:"securityGroup"`
	// Specifies whether to enable an instance launched in a VPC to perform NAT.
	//
	// This controls whether source/destination checking is enabled on the instance.
	// A value of true means that checking is enabled, and false means that checking is disabled.
	// The value must be false for the instance to perform NAT.
	SourceDestCheck *bool `json:"sourceDestCheck" yaml:"sourceDestCheck"`
	// Specific UserData to use.
	//
	// The UserData may still be mutated after creation.
	UserData UserData `json:"userData" yaml:"userData"`
	// Changes to the UserData force replacement.
	//
	// Depending the EC2 instance type, changing UserData either
	// restarts the instance or replaces the instance.
	//
	// - Instance store-backed instances are replaced.
	// - EBS-backed instances are restarted.
	//
	// By default, restarting does not execute the new UserData so you
	// will need a different mechanism to ensure the instance is restarted.
	//
	// Setting this to `true` will make the instance's Logical ID depend on the
	// UserData, which will cause CloudFormation to replace it if the UserData
	// changes.
	UserDataCausesReplacement *bool `json:"userDataCausesReplacement" yaml:"userDataCausesReplacement"`
	// Where to place the instance within the VPC.
	VpcSubnets *SubnetSelection `json:"vpcSubnets" yaml:"vpcSubnets"`
}

Properties of an EC2 Instance.

TODO: EXAMPLE

type InstanceRequireImdsv2Aspect

type InstanceRequireImdsv2Aspect interface {
	awscdk.IAspect
	SuppressWarnings() *bool
	Visit(node constructs.IConstruct)
	Warn(node constructs.IConstruct, message *string)
}

Aspect that applies IMDS configuration on EC2 Instance constructs.

This aspect configures IMDS on an EC2 instance by creating a Launch Template with the IMDS configuration and associating that Launch Template with the instance. If an Instance is already associated with a Launch Template, a warning will (optionally) be added to the construct node and it will be skipped.

To cover Instances already associated with Launch Templates, use `LaunchTemplateImdsAspect`.

TODO: EXAMPLE

type InstanceRequireImdsv2AspectProps

type InstanceRequireImdsv2AspectProps struct {
	// Whether warnings that would be raised when an Instance is associated with an existing Launch Template should be suppressed or not.
	//
	// You can set this to `true` if `LaunchTemplateImdsAspect` is being used alongside this Aspect to
	// suppress false-positive warnings because any Launch Templates associated with Instances will still be covered.
	SuppressLaunchTemplateWarning *bool `json:"suppressLaunchTemplateWarning" yaml:"suppressLaunchTemplateWarning"`
	// Whether warning annotations from this Aspect should be suppressed or not.
	SuppressWarnings *bool `json:"suppressWarnings" yaml:"suppressWarnings"`
}

Properties for `InstanceRequireImdsv2Aspect`.

TODO: EXAMPLE

type InstanceSize

type InstanceSize string

What size of instance to use.

TODO: EXAMPLE

const (
	InstanceSize_NANO      InstanceSize = "NANO"
	InstanceSize_MICRO     InstanceSize = "MICRO"
	InstanceSize_SMALL     InstanceSize = "SMALL"
	InstanceSize_MEDIUM    InstanceSize = "MEDIUM"
	InstanceSize_LARGE     InstanceSize = "LARGE"
	InstanceSize_XLARGE    InstanceSize = "XLARGE"
	InstanceSize_XLARGE2   InstanceSize = "XLARGE2"
	InstanceSize_XLARGE3   InstanceSize = "XLARGE3"
	InstanceSize_XLARGE4   InstanceSize = "XLARGE4"
	InstanceSize_XLARGE6   InstanceSize = "XLARGE6"
	InstanceSize_XLARGE8   InstanceSize = "XLARGE8"
	InstanceSize_XLARGE9   InstanceSize = "XLARGE9"
	InstanceSize_XLARGE10  InstanceSize = "XLARGE10"
	InstanceSize_XLARGE12  InstanceSize = "XLARGE12"
	InstanceSize_XLARGE16  InstanceSize = "XLARGE16"
	InstanceSize_XLARGE18  InstanceSize = "XLARGE18"
	InstanceSize_XLARGE24  InstanceSize = "XLARGE24"
	InstanceSize_XLARGE32  InstanceSize = "XLARGE32"
	InstanceSize_XLARGE48  InstanceSize = "XLARGE48"
	InstanceSize_XLARGE56  InstanceSize = "XLARGE56"
	InstanceSize_XLARGE112 InstanceSize = "XLARGE112"
	InstanceSize_METAL     InstanceSize = "METAL"
)

type InstanceType

type InstanceType interface {
	Architecture() InstanceArchitecture
	ToString() *string
}

Instance type for EC2 instances.

This class takes a literal string, good if you already know the identifier of the type you want.

TODO: EXAMPLE

func InstanceType_Of

func InstanceType_Of(instanceClass InstanceClass, instanceSize InstanceSize) InstanceType

Instance type for EC2 instances.

This class takes a combination of a class and size.

Be aware that not all combinations of class and size are available, and not all classes are available in all regions.

func NewInstanceType

func NewInstanceType(instanceTypeIdentifier *string) InstanceType

type InterfaceVpcEndpoint

type InterfaceVpcEndpoint interface {
	VpcEndpoint
	IInterfaceVpcEndpoint
	Connections() Connections
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	PolicyDocument() awsiam.PolicyDocument
	SetPolicyDocument(val awsiam.PolicyDocument)
	Stack() awscdk.Stack
	VpcEndpointCreationTimestamp() *string
	VpcEndpointDnsEntries() *[]*string
	VpcEndpointId() *string
	VpcEndpointNetworkInterfaceIds() *[]*string
	AddToPolicy(statement awsiam.PolicyStatement)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

A interface VPC endpoint.

TODO: EXAMPLE

func NewInterfaceVpcEndpoint

func NewInterfaceVpcEndpoint(scope constructs.Construct, id *string, props *InterfaceVpcEndpointProps) InterfaceVpcEndpoint

type InterfaceVpcEndpointAttributes

type InterfaceVpcEndpointAttributes struct {
	// The port of the service of the interface VPC endpoint.
	Port *float64 `json:"port" yaml:"port"`
	// The interface VPC endpoint identifier.
	VpcEndpointId *string `json:"vpcEndpointId" yaml:"vpcEndpointId"`
	// The security groups associated with the interface VPC endpoint.
	SecurityGroups *[]ISecurityGroup `json:"securityGroups" yaml:"securityGroups"`
}

Construction properties for an ImportedInterfaceVpcEndpoint.

TODO: EXAMPLE

type InterfaceVpcEndpointAwsService

type InterfaceVpcEndpointAwsService interface {
	IInterfaceVpcEndpointService
	Name() *string
	Port() *float64
	PrivateDnsDefault() *bool
}

An AWS service for an interface VPC endpoint.

TODO: EXAMPLE

func InterfaceVpcEndpointAwsService_APIGATEWAY

func InterfaceVpcEndpointAwsService_APIGATEWAY() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_ATHENA

func InterfaceVpcEndpointAwsService_ATHENA() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CLOUDFORMATION

func InterfaceVpcEndpointAwsService_CLOUDFORMATION() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CLOUDTRAIL

func InterfaceVpcEndpointAwsService_CLOUDTRAIL() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CLOUDWATCH

func InterfaceVpcEndpointAwsService_CLOUDWATCH() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CLOUDWATCH_EVENTS

func InterfaceVpcEndpointAwsService_CLOUDWATCH_EVENTS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CLOUDWATCH_LOGS

func InterfaceVpcEndpointAwsService_CLOUDWATCH_LOGS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CODEBUILD

func InterfaceVpcEndpointAwsService_CODEBUILD() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CODEBUILD_FIPS

func InterfaceVpcEndpointAwsService_CODEBUILD_FIPS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CODECOMMIT

func InterfaceVpcEndpointAwsService_CODECOMMIT() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CODECOMMIT_FIPS

func InterfaceVpcEndpointAwsService_CODECOMMIT_FIPS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CODECOMMIT_GIT

func InterfaceVpcEndpointAwsService_CODECOMMIT_GIT() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CODECOMMIT_GIT_FIPS

func InterfaceVpcEndpointAwsService_CODECOMMIT_GIT_FIPS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CODEGURU_PROFILER

func InterfaceVpcEndpointAwsService_CODEGURU_PROFILER() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CODEGURU_REVIEWER

func InterfaceVpcEndpointAwsService_CODEGURU_REVIEWER() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CODEPIPELINE

func InterfaceVpcEndpointAwsService_CODEPIPELINE() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_CONFIG

func InterfaceVpcEndpointAwsService_CONFIG() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_EC2

func InterfaceVpcEndpointAwsService_EC2() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_EC2_MESSAGES

func InterfaceVpcEndpointAwsService_EC2_MESSAGES() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_ECR

func InterfaceVpcEndpointAwsService_ECR() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_ECR_DOCKER

func InterfaceVpcEndpointAwsService_ECR_DOCKER() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_ECS

func InterfaceVpcEndpointAwsService_ECS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_ECS_AGENT

func InterfaceVpcEndpointAwsService_ECS_AGENT() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_ECS_TELEMETRY

func InterfaceVpcEndpointAwsService_ECS_TELEMETRY() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_ELASTIC_FILESYSTEM

func InterfaceVpcEndpointAwsService_ELASTIC_FILESYSTEM() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_ELASTIC_FILESYSTEM_FIPS

func InterfaceVpcEndpointAwsService_ELASTIC_FILESYSTEM_FIPS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_ELASTIC_INFERENCE_RUNTIME

func InterfaceVpcEndpointAwsService_ELASTIC_INFERENCE_RUNTIME() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_ELASTIC_LOAD_BALANCING

func InterfaceVpcEndpointAwsService_ELASTIC_LOAD_BALANCING() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_GLUE

func InterfaceVpcEndpointAwsService_GLUE() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_KEYSPACES

func InterfaceVpcEndpointAwsService_KEYSPACES() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_KINESIS_FIREHOSE

func InterfaceVpcEndpointAwsService_KINESIS_FIREHOSE() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_KINESIS_STREAMS

func InterfaceVpcEndpointAwsService_KINESIS_STREAMS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_KMS

func InterfaceVpcEndpointAwsService_KMS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_LAMBDA

func InterfaceVpcEndpointAwsService_LAMBDA() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_RDS

func InterfaceVpcEndpointAwsService_RDS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_RDS_DATA

func InterfaceVpcEndpointAwsService_RDS_DATA() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_REKOGNITION

func InterfaceVpcEndpointAwsService_REKOGNITION() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_REKOGNITION_FIPS

func InterfaceVpcEndpointAwsService_REKOGNITION_FIPS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_SAGEMAKER_API

func InterfaceVpcEndpointAwsService_SAGEMAKER_API() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_SAGEMAKER_NOTEBOOK

func InterfaceVpcEndpointAwsService_SAGEMAKER_NOTEBOOK() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_SAGEMAKER_RUNTIME

func InterfaceVpcEndpointAwsService_SAGEMAKER_RUNTIME() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_SAGEMAKER_RUNTIME_FIPS

func InterfaceVpcEndpointAwsService_SAGEMAKER_RUNTIME_FIPS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_SECRETS_MANAGER

func InterfaceVpcEndpointAwsService_SECRETS_MANAGER() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_SERVICE_CATALOG

func InterfaceVpcEndpointAwsService_SERVICE_CATALOG() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_SNS

func InterfaceVpcEndpointAwsService_SNS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_SQS

func InterfaceVpcEndpointAwsService_SQS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_SSM

func InterfaceVpcEndpointAwsService_SSM() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_SSM_MESSAGES

func InterfaceVpcEndpointAwsService_SSM_MESSAGES() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_STEP_FUNCTIONS

func InterfaceVpcEndpointAwsService_STEP_FUNCTIONS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_STORAGE_GATEWAY

func InterfaceVpcEndpointAwsService_STORAGE_GATEWAY() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_STS

func InterfaceVpcEndpointAwsService_STS() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_TRANSCRIBE

func InterfaceVpcEndpointAwsService_TRANSCRIBE() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_TRANSFER

func InterfaceVpcEndpointAwsService_TRANSFER() InterfaceVpcEndpointAwsService

func InterfaceVpcEndpointAwsService_XRAY

func InterfaceVpcEndpointAwsService_XRAY() InterfaceVpcEndpointAwsService

func NewInterfaceVpcEndpointAwsService

func NewInterfaceVpcEndpointAwsService(name *string, prefix *string, port *float64) InterfaceVpcEndpointAwsService

type InterfaceVpcEndpointOptions

type InterfaceVpcEndpointOptions struct {
	// The service to use for this interface VPC endpoint.
	Service IInterfaceVpcEndpointService `json:"service" yaml:"service"`
	// Limit to only those availability zones where the endpoint service can be created.
	//
	// Setting this to 'true' requires a lookup to be performed at synthesis time. Account
	// and region must be set on the containing stack for this to work.
	LookupSupportedAzs *bool `json:"lookupSupportedAzs" yaml:"lookupSupportedAzs"`
	// Whether to automatically allow VPC traffic to the endpoint.
	//
	// If enabled, all traffic to the endpoint from within the VPC will be
	// automatically allowed. This is done based on the VPC's CIDR range.
	Open *bool `json:"open" yaml:"open"`
	// Whether to associate a private hosted zone with the specified VPC.
	//
	// This
	// allows you to make requests to the service using its default DNS hostname.
	PrivateDnsEnabled *bool `json:"privateDnsEnabled" yaml:"privateDnsEnabled"`
	// The security groups to associate with this interface VPC endpoint.
	SecurityGroups *[]ISecurityGroup `json:"securityGroups" yaml:"securityGroups"`
	// The subnets in which to create an endpoint network interface.
	//
	// At most one
	// per availability zone.
	Subnets *SubnetSelection `json:"subnets" yaml:"subnets"`
}

Options to add an interface endpoint to a VPC.

TODO: EXAMPLE

type InterfaceVpcEndpointProps

type InterfaceVpcEndpointProps struct {
	// The service to use for this interface VPC endpoint.
	Service IInterfaceVpcEndpointService `json:"service" yaml:"service"`
	// Limit to only those availability zones where the endpoint service can be created.
	//
	// Setting this to 'true' requires a lookup to be performed at synthesis time. Account
	// and region must be set on the containing stack for this to work.
	LookupSupportedAzs *bool `json:"lookupSupportedAzs" yaml:"lookupSupportedAzs"`
	// Whether to automatically allow VPC traffic to the endpoint.
	//
	// If enabled, all traffic to the endpoint from within the VPC will be
	// automatically allowed. This is done based on the VPC's CIDR range.
	Open *bool `json:"open" yaml:"open"`
	// Whether to associate a private hosted zone with the specified VPC.
	//
	// This
	// allows you to make requests to the service using its default DNS hostname.
	PrivateDnsEnabled *bool `json:"privateDnsEnabled" yaml:"privateDnsEnabled"`
	// The security groups to associate with this interface VPC endpoint.
	SecurityGroups *[]ISecurityGroup `json:"securityGroups" yaml:"securityGroups"`
	// The subnets in which to create an endpoint network interface.
	//
	// At most one
	// per availability zone.
	Subnets *SubnetSelection `json:"subnets" yaml:"subnets"`
	// The VPC network in which the interface endpoint will be used.
	Vpc IVpc `json:"vpc" yaml:"vpc"`
}

Construction properties for an InterfaceVpcEndpoint.

TODO: EXAMPLE

type InterfaceVpcEndpointService

type InterfaceVpcEndpointService interface {
	IInterfaceVpcEndpointService
	Name() *string
	Port() *float64
	PrivateDnsDefault() *bool
}

A custom-hosted service for an interface VPC endpoint.

TODO: EXAMPLE

func NewInterfaceVpcEndpointService

func NewInterfaceVpcEndpointService(name *string, port *float64) InterfaceVpcEndpointService

type LaunchTemplate

type LaunchTemplate interface {
	awscdk.Resource
	IConnectable
	ILaunchTemplate
	awsiam.IGrantable
	Connections() Connections
	DefaultVersionNumber() *string
	Env() *awscdk.ResourceEnvironment
	GrantPrincipal() awsiam.IPrincipal
	LatestVersionNumber() *string
	LaunchTemplateId() *string
	LaunchTemplateName() *string
	Node() constructs.Node
	OsType() OperatingSystemType
	PhysicalName() *string
	Role() awsiam.IRole
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UserData() UserData
	VersionNumber() *string
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

This represents an EC2 LaunchTemplate.

TODO: EXAMPLE

See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html

func NewLaunchTemplate

func NewLaunchTemplate(scope constructs.Construct, id *string, props *LaunchTemplateProps) LaunchTemplate

type LaunchTemplateAttributes

type LaunchTemplateAttributes struct {
	// The identifier of the Launch Template.
	//
	// Exactly one of `launchTemplateId` and `launchTemplateName` may be set.
	LaunchTemplateId *string `json:"launchTemplateId" yaml:"launchTemplateId"`
	// The name of the Launch Template.
	//
	// Exactly one of `launchTemplateId` and `launchTemplateName` may be set.
	LaunchTemplateName *string `json:"launchTemplateName" yaml:"launchTemplateName"`
	// The version number of this launch template to use.
	VersionNumber *string `json:"versionNumber" yaml:"versionNumber"`
}

Attributes for an imported LaunchTemplate.

TODO: EXAMPLE

type LaunchTemplateProps

type LaunchTemplateProps struct {
	// Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes.
	//
	// Each instance that is launched has an associated root device volume,
	// either an Amazon EBS volume or an instance store volume.
	// You can use block device mappings to specify additional EBS volumes or
	// instance store volumes to attach to an instance when it is launched.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html
	//
	BlockDevices *[]*BlockDevice `json:"blockDevices" yaml:"blockDevices"`
	// CPU credit type for burstable EC2 instance types.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html
	//
	CpuCredits CpuCredits `json:"cpuCredits" yaml:"cpuCredits"`
	// If set to true, then detailed monitoring will be enabled on instances created with this launch template.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html
	//
	DetailedMonitoring *bool `json:"detailedMonitoring" yaml:"detailedMonitoring"`
	// If you set this parameter to true, you cannot terminate the instances launched with this launch template using the Amazon EC2 console, CLI, or API;
	//
	// otherwise, you can.
	DisableApiTermination *bool `json:"disableApiTermination" yaml:"disableApiTermination"`
	// Indicates whether the instances are optimized for Amazon EBS I/O.
	//
	// This optimization provides dedicated throughput
	// to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization
	// isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.
	EbsOptimized *bool `json:"ebsOptimized" yaml:"ebsOptimized"`
	// If you set this parameter to true, the instance is enabled for hibernation.
	HibernationConfigured *bool `json:"hibernationConfigured" yaml:"hibernationConfigured"`
	// Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior
	//
	InstanceInitiatedShutdownBehavior InstanceInitiatedShutdownBehavior `json:"instanceInitiatedShutdownBehavior" yaml:"instanceInitiatedShutdownBehavior"`
	// Type of instance to launch.
	InstanceType InstanceType `json:"instanceType" yaml:"instanceType"`
	// Name of SSH keypair to grant access to instance.
	KeyName *string `json:"keyName" yaml:"keyName"`
	// Name for this launch template.
	LaunchTemplateName *string `json:"launchTemplateName" yaml:"launchTemplateName"`
	// The AMI that will be used by instances.
	MachineImage IMachineImage `json:"machineImage" yaml:"machineImage"`
	// If this parameter is set to true, the instance is enabled for AWS Nitro Enclaves;
	//
	// otherwise, it is not enabled for AWS Nitro Enclaves.
	NitroEnclaveEnabled *bool `json:"nitroEnclaveEnabled" yaml:"nitroEnclaveEnabled"`
	// Whether IMDSv2 should be required on launched instances.
	RequireImdsv2 *bool `json:"requireImdsv2" yaml:"requireImdsv2"`
	// An IAM role to associate with the instance profile that is used by instances.
	//
	// The role must be assumable by the service principal `ec2.amazonaws.com`:
	//
	// TODO: EXAMPLE
	//
	Role awsiam.IRole `json:"role" yaml:"role"`
	// Security group to assign to instances created with the launch template.
	SecurityGroup ISecurityGroup `json:"securityGroup" yaml:"securityGroup"`
	// If this property is defined, then the Launch Template's InstanceMarketOptions will be set to use Spot instances, and the options for the Spot instances will be as defined.
	SpotOptions *LaunchTemplateSpotOptions `json:"spotOptions" yaml:"spotOptions"`
	// The AMI that will be used by instances.
	UserData UserData `json:"userData" yaml:"userData"`
}

Properties of a LaunchTemplate.

TODO: EXAMPLE

type LaunchTemplateRequireImdsv2Aspect

type LaunchTemplateRequireImdsv2Aspect interface {
	awscdk.IAspect
	SuppressWarnings() *bool
	Visit(node constructs.IConstruct)
	Warn(node constructs.IConstruct, message *string)
}

Aspect that applies IMDS configuration on EC2 Launch Template constructs.

TODO: EXAMPLE

See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html

type LaunchTemplateRequireImdsv2AspectProps

type LaunchTemplateRequireImdsv2AspectProps struct {
	// Whether warning annotations from this Aspect should be suppressed or not.
	SuppressWarnings *bool `json:"suppressWarnings" yaml:"suppressWarnings"`
}

Properties for `LaunchTemplateRequireImdsv2Aspect`.

TODO: EXAMPLE

type LaunchTemplateSpecialVersions

type LaunchTemplateSpecialVersions interface {
}

A class that provides convenient access to special version tokens for LaunchTemplate versions.

TODO: EXAMPLE

func NewLaunchTemplateSpecialVersions

func NewLaunchTemplateSpecialVersions() LaunchTemplateSpecialVersions

type LaunchTemplateSpotOptions

type LaunchTemplateSpotOptions struct {
	// Spot Instances with a defined duration (also known as Spot blocks) are designed not to be interrupted and will run continuously for the duration you select.
	//
	// You can use a duration of 1, 2, 3, 4, 5, or 6 hours.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#fixed-duration-spot-instances
	//
	BlockDuration awscdk.Duration `json:"blockDuration" yaml:"blockDuration"`
	// The behavior when a Spot Instance is interrupted.
	InterruptionBehavior SpotInstanceInterruption `json:"interruptionBehavior" yaml:"interruptionBehavior"`
	// Maximum hourly price you're willing to pay for each Spot instance.
	//
	// The value is given
	// in dollars. ex: 0.01 for 1 cent per hour, or 0.001 for one-tenth of a cent per hour.
	MaxPrice *float64 `json:"maxPrice" yaml:"maxPrice"`
	// The Spot Instance request type.
	//
	// If you are using Spot Instances with an Auto Scaling group, use one-time requests, as the
	// Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is
	// below its desired capacity.
	RequestType SpotRequestType `json:"requestType" yaml:"requestType"`
	// The end date of the request.
	//
	// For a one-time request, the request remains active until all instances
	// launch, the request is canceled, or this date is reached. If the request is persistent, it remains
	// active until it is canceled or this date and time is reached.
	ValidUntil awscdk.Expiration `json:"validUntil" yaml:"validUntil"`
}

Interface for the Spot market instance options provided in a LaunchTemplate.

TODO: EXAMPLE

type LinuxUserDataOptions

type LinuxUserDataOptions struct {
	// Shebang for the UserData script.
	Shebang *string `json:"shebang" yaml:"shebang"`
}

Options when constructing UserData for Linux.

TODO: EXAMPLE

type LocationPackageOptions

type LocationPackageOptions struct {
	// Identifier key for this package.
	//
	// You can use this to order package installs.
	Key *string `json:"key" yaml:"key"`
	// Restart the given service after this command has run.
	ServiceRestartHandles *[]InitServiceRestartHandle `json:"serviceRestartHandles" yaml:"serviceRestartHandles"`
}

Options for InitPackage.rpm/InitPackage.msi.

TODO: EXAMPLE

type LookupMachineImage

type LookupMachineImage interface {
	IMachineImage
	GetImage(scope constructs.Construct) *MachineImageConfig
}

A machine image whose AMI ID will be searched using DescribeImages.

The most recent, available, launchable image matching the given filter criteria will be used. Looking up AMIs may take a long time; specify as many filter criteria as possible to narrow down the search.

The AMI selected will be cached in `cdk.context.json` and the same value will be used on future runs. To refresh the AMI 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.

TODO: EXAMPLE

func NewLookupMachineImage

func NewLookupMachineImage(props *LookupMachineImageProps) LookupMachineImage

type LookupMachineImageProps

type LookupMachineImageProps struct {
	// Name of the image (may contain wildcards).
	Name *string `json:"name" yaml:"name"`
	// Additional filters on the AMI.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html
	//
	Filters *map[string]*[]*string `json:"filters" yaml:"filters"`
	// Owner account IDs or aliases.
	Owners *[]*string `json:"owners" yaml:"owners"`
	// Custom userdata for this image.
	UserData UserData `json:"userData" yaml:"userData"`
	// Look for Windows images.
	Windows *bool `json:"windows" yaml:"windows"`
}

Properties for looking up an image.

TODO: EXAMPLE

type MachineImage

type MachineImage interface {
}

Factory functions for standard Amazon Machine Image objects.

TODO: EXAMPLE

type MachineImageConfig

type MachineImageConfig struct {
	// The AMI ID of the image to use.
	ImageId *string `json:"imageId" yaml:"imageId"`
	// Operating system type for this image.
	OsType OperatingSystemType `json:"osType" yaml:"osType"`
	// Initial UserData for this image.
	UserData UserData `json:"userData" yaml:"userData"`
}

Configuration for a machine image.

TODO: EXAMPLE

type MultipartBody

type MultipartBody interface {
	RenderBodyPart() *[]*string
}

The base class for all classes which can be used as {@link MultipartUserData}.

TODO: EXAMPLE

func MultipartBody_FromRawBody

func MultipartBody_FromRawBody(opts *MultipartBodyOptions) MultipartBody

Constructs the raw `MultipartBody` using specified body, content type and transfer encoding.

When transfer encoding is specified (typically as Base64), it's caller responsibility to convert body to Base64 either by wrapping with `Fn.base64` or by converting it by other converters.

func MultipartBody_FromUserData

func MultipartBody_FromUserData(userData UserData, contentType *string) MultipartBody

Constructs the new `MultipartBody` wrapping existing `UserData`. Modification to `UserData` are reflected in subsequent renders of the part.

For more information about content types see {@link MultipartBodyOptions.contentType}.

type MultipartBodyOptions

type MultipartBodyOptions struct {
	// `Content-Type` header of this part.
	//
	// Some examples of content types:
	// * `text/x-shellscript; charset="utf-8"` (shell script)
	// * `text/cloud-boothook; charset="utf-8"` (shell script executed during boot phase)
	//
	// For Linux shell scripts use `text/x-shellscript`.
	ContentType *string `json:"contentType" yaml:"contentType"`
	// The body of message.
	Body *string `json:"body" yaml:"body"`
	// `Content-Transfer-Encoding` header specifying part encoding.
	TransferEncoding *string `json:"transferEncoding" yaml:"transferEncoding"`
}

Options when creating `MultipartBody`.

TODO: EXAMPLE

type MultipartUserData

type MultipartUserData interface {
	UserData
	AddCommands(commands ...*string)
	AddExecuteFileCommand(params *ExecuteFileOptions)
	AddOnExitCommands(commands ...*string)
	AddPart(part MultipartBody)
	AddS3DownloadCommand(params *S3DownloadOptions) *string
	AddSignalOnExitCommand(resource awscdk.Resource)
	AddUserDataPart(userData UserData, contentType *string, makeDefault *bool)
	Render() *string
}

Mime multipart user data.

This class represents MIME multipart user data, as described in. [Specifying Multiple User Data Blocks Using a MIME Multi Part Archive](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#multi-part_user_data)

TODO: EXAMPLE

func NewMultipartUserData

func NewMultipartUserData(opts *MultipartUserDataOptions) MultipartUserData

type MultipartUserDataOptions

type MultipartUserDataOptions struct {
	// The string used to separate parts in multipart user data archive (it's like MIME boundary).
	//
	// This string should contain [a-zA-Z0-9()+,-./:=?] characters only, and should not be present in any part, or in text content of archive.
	PartsSeparator *string `json:"partsSeparator" yaml:"partsSeparator"`
}

Options for creating {@link MultipartUserData}.

TODO: EXAMPLE

type NamedPackageOptions

type NamedPackageOptions struct {
	// Restart the given services after this command has run.
	ServiceRestartHandles *[]InitServiceRestartHandle `json:"serviceRestartHandles" yaml:"serviceRestartHandles"`
	// Specify the versions to install.
	Version *[]*string `json:"version" yaml:"version"`
}

Options for InitPackage.yum/apt/rubyGem/python.

TODO: EXAMPLE

type NatGatewayProps

type NatGatewayProps struct {
	// EIP allocation IDs for the NAT gateways.
	EipAllocationIds *[]*string `json:"eipAllocationIds" yaml:"eipAllocationIds"`
}

Properties for a NAT gateway.

TODO: EXAMPLE

type NatInstanceImage

type NatInstanceImage interface {
	LookupMachineImage
	GetImage(scope constructs.Construct) *MachineImageConfig
}

Machine image representing the latest NAT instance image.

TODO: EXAMPLE

func NewNatInstanceImage

func NewNatInstanceImage() NatInstanceImage

type NatInstanceProps

type NatInstanceProps struct {
	// Instance type of the NAT instance.
	InstanceType InstanceType `json:"instanceType" yaml:"instanceType"`
	// Direction to allow all traffic through the NAT instance by default.
	//
	// By default, inbound and outbound traffic is allowed.
	//
	// If you set this to another value than INBOUND_AND_OUTBOUND, you must
	// configure the NAT instance's security groups in another way, either by
	// passing in a fully configured Security Group using the `securityGroup`
	// property, or by configuring it using the `.securityGroup` or
	// `.connections` members after passing the NAT Instance Provider to a Vpc.
	DefaultAllowedTraffic NatTrafficDirection `json:"defaultAllowedTraffic" yaml:"defaultAllowedTraffic"`
	// Name of SSH keypair to grant access to instance.
	KeyName *string `json:"keyName" yaml:"keyName"`
	// The machine image (AMI) to use.
	//
	// By default, will do an AMI lookup for the latest NAT instance image.
	//
	// If you have a specific AMI ID you want to use, pass a `GenericLinuxImage`. For example:
	//
	// “`ts
	// ec2.NatProvider.instance({
	//    instanceType: new ec2.InstanceType('t3.micro'),
	//    machineImage: new ec2.GenericLinuxImage({
	//      'us-east-2': 'ami-0f9c61b5a562a16af'
	//    })
	// })
	// “`
	MachineImage IMachineImage `json:"machineImage" yaml:"machineImage"`
	// Security Group for NAT instances.
	SecurityGroup ISecurityGroup `json:"securityGroup" yaml:"securityGroup"`
}

Properties for a NAT instance.

TODO: EXAMPLE

type NatInstanceProvider

type NatInstanceProvider interface {
	NatProvider
	IConnectable
	ConfiguredGateways() *[]*GatewayConfig
	Connections() Connections
	SecurityGroup() ISecurityGroup
	ConfigureNat(options *ConfigureNatOptions)
	ConfigureSubnet(subnet PrivateSubnet)
}

NAT provider which uses NAT Instances.

TODO: EXAMPLE

func NatInstanceProvider_Instance

func NatInstanceProvider_Instance(props *NatInstanceProps) NatInstanceProvider

Use NAT instances to provide NAT services for your VPC.

NAT instances are managed by you, but in return allow more configuration.

Be aware that instances created using this provider will not be automatically replaced if they are stopped for any reason. You should implement your own NatProvider based on AutoScaling groups if you need that. See: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html

func NatProvider_Instance

func NatProvider_Instance(props *NatInstanceProps) NatInstanceProvider

Use NAT instances to provide NAT services for your VPC.

NAT instances are managed by you, but in return allow more configuration.

Be aware that instances created using this provider will not be automatically replaced if they are stopped for any reason. You should implement your own NatProvider based on AutoScaling groups if you need that. See: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html

func NewNatInstanceProvider

func NewNatInstanceProvider(props *NatInstanceProps) NatInstanceProvider

type NatProvider

type NatProvider interface {
	ConfiguredGateways() *[]*GatewayConfig
	ConfigureNat(options *ConfigureNatOptions)
	ConfigureSubnet(subnet PrivateSubnet)
}

NAT providers.

Determines what type of NAT provider to create, either NAT gateways or NAT instance.

TODO: EXAMPLE

func NatInstanceProvider_Gateway

func NatInstanceProvider_Gateway(props *NatGatewayProps) NatProvider

Use NAT Gateways to provide NAT services for your VPC.

NAT gateways are managed by AWS. See: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html

func NatProvider_Gateway

func NatProvider_Gateway(props *NatGatewayProps) NatProvider

Use NAT Gateways to provide NAT services for your VPC.

NAT gateways are managed by AWS. See: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html

type NatTrafficDirection

type NatTrafficDirection string

Direction of traffic to allow all by default.

const (
	NatTrafficDirection_OUTBOUND_ONLY        NatTrafficDirection = "OUTBOUND_ONLY"
	NatTrafficDirection_INBOUND_AND_OUTBOUND NatTrafficDirection = "INBOUND_AND_OUTBOUND"
	NatTrafficDirection_NONE                 NatTrafficDirection = "NONE"
)

type NetworkAcl

type NetworkAcl interface {
	awscdk.Resource
	INetworkAcl
	Env() *awscdk.ResourceEnvironment
	NetworkAclId() *string
	NetworkAclVpcId() *string
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	AddEntry(id *string, options *CommonNetworkAclEntryOptions) NetworkAclEntry
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	AssociateWithSubnet(id *string, selection *SubnetSelection)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Define a new custom network ACL.

By default, will deny all inbound and outbound traffic unless entries are added explicitly allowing it.

TODO: EXAMPLE

func NewNetworkAcl

func NewNetworkAcl(scope constructs.Construct, id *string, props *NetworkAclProps) NetworkAcl

type NetworkAclEntry

type NetworkAclEntry interface {
	awscdk.Resource
	INetworkAclEntry
	Env() *awscdk.ResourceEnvironment
	NetworkAcl() INetworkAcl
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Define an entry in a Network ACL table.

TODO: EXAMPLE

func NewNetworkAclEntry

func NewNetworkAclEntry(scope constructs.Construct, id *string, props *NetworkAclEntryProps) NetworkAclEntry

type NetworkAclEntryProps

type NetworkAclEntryProps struct {
	// The CIDR range to allow or deny.
	Cidr AclCidr `json:"cidr" yaml:"cidr"`
	// Rule number to assign to the entry, such as 100.
	//
	// ACL entries are processed in ascending order by rule number.
	// Entries can't use the same rule number unless one is an egress rule and the other is an ingress rule.
	RuleNumber *float64 `json:"ruleNumber" yaml:"ruleNumber"`
	// What kind of traffic this ACL rule applies to.
	Traffic AclTraffic `json:"traffic" yaml:"traffic"`
	// Traffic direction, with respect to the subnet, this rule applies to.
	Direction TrafficDirection `json:"direction" yaml:"direction"`
	// The name of the NetworkAclEntry.
	//
	// It is not recommended to use an explicit group name.
	NetworkAclEntryName *string `json:"networkAclEntryName" yaml:"networkAclEntryName"`
	// Whether to allow or deny traffic that matches the rule; valid values are "allow" or "deny".
	//
	// Any traffic that is not explicitly allowed is automatically denied in a custom
	// ACL, all traffic is automatically allowed in a default ACL.
	RuleAction Action `json:"ruleAction" yaml:"ruleAction"`
	// The network ACL this entry applies to.
	NetworkAcl INetworkAcl `json:"networkAcl" yaml:"networkAcl"`
}

Properties to create NetworkAclEntry.

TODO: EXAMPLE

type NetworkAclProps

type NetworkAclProps struct {
	// The VPC in which to create the NetworkACL.
	Vpc IVpc `json:"vpc" yaml:"vpc"`
	// The name of the NetworkAcl.
	//
	// It is not recommended to use an explicit name.
	NetworkAclName *string `json:"networkAclName" yaml:"networkAclName"`
	// Subnets in the given VPC to associate the ACL with.
	//
	// More subnets can always be added later by calling
	// `associateWithSubnets()`.
	SubnetSelection *SubnetSelection `json:"subnetSelection" yaml:"subnetSelection"`
}

Properties to create NetworkAcl.

TODO: EXAMPLE

type OperatingSystemType

type OperatingSystemType string

The OS type of a particular image.

TODO: EXAMPLE

const (
	OperatingSystemType_LINUX   OperatingSystemType = "LINUX"
	OperatingSystemType_WINDOWS OperatingSystemType = "WINDOWS"
	OperatingSystemType_UNKNOWN OperatingSystemType = "UNKNOWN"
)

type Peer

type Peer interface {
}

Peer object factories (to be used in Security Group management).

The static methods on this object can be used to create peer objects which represent a connection partner in Security Group rules.

Use this object if you need to represent connection partners using plain IP addresses, or a prefix list ID.

If you want to address a connection partner by Security Group, you can just use the Security Group (or the construct that contains a Security Group) directly, as it already implements `IPeer`.

TODO: EXAMPLE

func NewPeer

func NewPeer() Peer

type Port

type Port interface {
	CanInlineRule() *bool
	ToRuleJson() interface{}
	ToString() *string
}

Interface for classes that provide the connection-specification parts of a security group rule.

TODO: EXAMPLE

func NewPort

func NewPort(props *PortProps) Port

func Port_Ah

func Port_Ah() Port

A single AH port.

func Port_AllIcmp

func Port_AllIcmp() Port

All ICMP traffic.

func Port_AllTcp

func Port_AllTcp() Port

Any TCP traffic.

func Port_AllTraffic

func Port_AllTraffic() Port

All traffic.

func Port_AllUdp

func Port_AllUdp() Port

Any UDP traffic.

func Port_Esp

func Port_Esp() Port

A single ESP port.

func Port_IcmpPing

func Port_IcmpPing() Port

ICMP ping (echo) traffic.

func Port_IcmpType

func Port_IcmpType(type_ *float64) Port

All codes for a single ICMP type.

func Port_IcmpTypeAndCode

func Port_IcmpTypeAndCode(type_ *float64, code *float64) Port

A specific combination of ICMP type and code. See: https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml

func Port_Tcp

func Port_Tcp(port *float64) Port

A single TCP port.

func Port_TcpRange

func Port_TcpRange(startPort *float64, endPort *float64) Port

A TCP port range.

func Port_Udp

func Port_Udp(port *float64) Port

A single UDP port.

func Port_UdpRange

func Port_UdpRange(startPort *float64, endPort *float64) Port

A UDP port range.

type PortProps

type PortProps struct {
	// The protocol for the range.
	Protocol Protocol `json:"protocol" yaml:"protocol"`
	// String representation for this object.
	StringRepresentation *string `json:"stringRepresentation" yaml:"stringRepresentation"`
	// The starting port for the range.
	FromPort *float64 `json:"fromPort" yaml:"fromPort"`
	// The ending port for the range.
	ToPort *float64 `json:"toPort" yaml:"toPort"`
}

Properties to create a port range.

TODO: EXAMPLE

type PrivateSubnet

type PrivateSubnet interface {
	Subnet
	IPrivateSubnet
	AvailabilityZone() *string
	DependencyElements() *[]constructs.IDependable
	Env() *awscdk.ResourceEnvironment
	InternetConnectivityEstablished() constructs.IDependable
	Ipv4CidrBlock() *string
	NetworkAcl() INetworkAcl
	Node() constructs.Node
	PhysicalName() *string
	RouteTable() IRouteTable
	Stack() awscdk.Stack
	SubnetAvailabilityZone() *string
	SubnetId() *string
	SubnetIpv6CidrBlocks() *[]*string
	SubnetNetworkAclAssociationId() *string
	SubnetOutpostArn() *string
	SubnetVpcId() *string
	AddDefaultInternetRoute(gatewayId *string, gatewayAttachment constructs.IDependable)
	AddDefaultNatRoute(natGatewayId *string)
	AddRoute(id *string, options *AddRouteOptions)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	AssociateNetworkAcl(id *string, networkAcl INetworkAcl)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Represents a private VPC subnet resource.

TODO: EXAMPLE

func NewPrivateSubnet

func NewPrivateSubnet(scope constructs.Construct, id *string, props *PrivateSubnetProps) PrivateSubnet

type PrivateSubnetAttributes

type PrivateSubnetAttributes struct {
	// The subnetId for this particular subnet.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
	// The Availability Zone the subnet is located in.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The IPv4 CIDR block associated with the subnet.
	Ipv4CidrBlock *string `json:"ipv4CidrBlock" yaml:"ipv4CidrBlock"`
	// The ID of the route table for this particular subnet.
	RouteTableId *string `json:"routeTableId" yaml:"routeTableId"`
}

TODO: EXAMPLE

type PrivateSubnetProps

type PrivateSubnetProps struct {
	// The availability zone for the subnet.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The CIDR notation for this subnet.
	CidrBlock *string `json:"cidrBlock" yaml:"cidrBlock"`
	// The VPC which this subnet is part of.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// Controls if a public IP is associated to an instance at launch.
	MapPublicIpOnLaunch *bool `json:"mapPublicIpOnLaunch" yaml:"mapPublicIpOnLaunch"`
}

TODO: EXAMPLE

type Protocol

type Protocol string

Protocol for use in Connection Rules.

https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml

const (
	Protocol_ALL             Protocol = "ALL"
	Protocol_HOPOPT          Protocol = "HOPOPT"
	Protocol_ICMP            Protocol = "ICMP"
	Protocol_IGMP            Protocol = "IGMP"
	Protocol_GGP             Protocol = "GGP"
	Protocol_IPV4            Protocol = "IPV4"
	Protocol_ST              Protocol = "ST"
	Protocol_TCP             Protocol = "TCP"
	Protocol_CBT             Protocol = "CBT"
	Protocol_EGP             Protocol = "EGP"
	Protocol_IGP             Protocol = "IGP"
	Protocol_BBN_RCC_MON     Protocol = "BBN_RCC_MON"
	Protocol_NVP_II          Protocol = "NVP_II"
	Protocol_PUP             Protocol = "PUP"
	Protocol_EMCON           Protocol = "EMCON"
	Protocol_XNET            Protocol = "XNET"
	Protocol_CHAOS           Protocol = "CHAOS"
	Protocol_UDP             Protocol = "UDP"
	Protocol_MUX             Protocol = "MUX"
	Protocol_DCN_MEAS        Protocol = "DCN_MEAS"
	Protocol_HMP             Protocol = "HMP"
	Protocol_PRM             Protocol = "PRM"
	Protocol_XNS_IDP         Protocol = "XNS_IDP"
	Protocol_TRUNK_1         Protocol = "TRUNK_1"
	Protocol_TRUNK_2         Protocol = "TRUNK_2"
	Protocol_LEAF_1          Protocol = "LEAF_1"
	Protocol_LEAF_2          Protocol = "LEAF_2"
	Protocol_RDP             Protocol = "RDP"
	Protocol_IRTP            Protocol = "IRTP"
	Protocol_ISO_TP4         Protocol = "ISO_TP4"
	Protocol_NETBLT          Protocol = "NETBLT"
	Protocol_MFE_NSP         Protocol = "MFE_NSP"
	Protocol_MERIT_INP       Protocol = "MERIT_INP"
	Protocol_DCCP            Protocol = "DCCP"
	Protocol_THREEPC         Protocol = "THREEPC"
	Protocol_IDPR            Protocol = "IDPR"
	Protocol_XTP             Protocol = "XTP"
	Protocol_DDP             Protocol = "DDP"
	Protocol_IDPR_CMTP       Protocol = "IDPR_CMTP"
	Protocol_TPPLUSPLUS      Protocol = "TPPLUSPLUS"
	Protocol_IL              Protocol = "IL"
	Protocol_IPV6            Protocol = "IPV6"
	Protocol_SDRP            Protocol = "SDRP"
	Protocol_IPV6_ROUTE      Protocol = "IPV6_ROUTE"
	Protocol_IPV6_FRAG       Protocol = "IPV6_FRAG"
	Protocol_IDRP            Protocol = "IDRP"
	Protocol_RSVP            Protocol = "RSVP"
	Protocol_GRE             Protocol = "GRE"
	Protocol_DSR             Protocol = "DSR"
	Protocol_BNA             Protocol = "BNA"
	Protocol_ESP             Protocol = "ESP"
	Protocol_AH              Protocol = "AH"
	Protocol_I_NLSP          Protocol = "I_NLSP"
	Protocol_SWIPE           Protocol = "SWIPE"
	Protocol_NARP            Protocol = "NARP"
	Protocol_MOBILE          Protocol = "MOBILE"
	Protocol_TLSP            Protocol = "TLSP"
	Protocol_SKIP            Protocol = "SKIP"
	Protocol_ICMPV6          Protocol = "ICMPV6"
	Protocol_IPV6_NONXT      Protocol = "IPV6_NONXT"
	Protocol_IPV6_OPTS       Protocol = "IPV6_OPTS"
	Protocol_CFTP            Protocol = "CFTP"
	Protocol_ANY_LOCAL       Protocol = "ANY_LOCAL"
	Protocol_SAT_EXPAK       Protocol = "SAT_EXPAK"
	Protocol_KRYPTOLAN       Protocol = "KRYPTOLAN"
	Protocol_RVD             Protocol = "RVD"
	Protocol_IPPC            Protocol = "IPPC"
	Protocol_ANY_DFS         Protocol = "ANY_DFS"
	Protocol_SAT_MON         Protocol = "SAT_MON"
	Protocol_VISA            Protocol = "VISA"
	Protocol_IPCV            Protocol = "IPCV"
	Protocol_CPNX            Protocol = "CPNX"
	Protocol_CPHB            Protocol = "CPHB"
	Protocol_WSN             Protocol = "WSN"
	Protocol_PVP             Protocol = "PVP"
	Protocol_BR_SAT_MON      Protocol = "BR_SAT_MON"
	Protocol_SUN_ND          Protocol = "SUN_ND"
	Protocol_WB_MON          Protocol = "WB_MON"
	Protocol_WB_EXPAK        Protocol = "WB_EXPAK"
	Protocol_ISO_IP          Protocol = "ISO_IP"
	Protocol_VMTP            Protocol = "VMTP"
	Protocol_SECURE_VMTP     Protocol = "SECURE_VMTP"
	Protocol_VINES           Protocol = "VINES"
	Protocol_TTP             Protocol = "TTP"
	Protocol_NSFNET_IGP      Protocol = "NSFNET_IGP"
	Protocol_DGP             Protocol = "DGP"
	Protocol_TCF             Protocol = "TCF"
	Protocol_EIGRP           Protocol = "EIGRP"
	Protocol_OSPFIGP         Protocol = "OSPFIGP"
	Protocol_SPRITE_RPC      Protocol = "SPRITE_RPC"
	Protocol_LARP            Protocol = "LARP"
	Protocol_MTP             Protocol = "MTP"
	Protocol_AX_25           Protocol = "AX_25"
	Protocol_IPIP            Protocol = "IPIP"
	Protocol_MICP            Protocol = "MICP"
	Protocol_SCC_SP          Protocol = "SCC_SP"
	Protocol_ETHERIP         Protocol = "ETHERIP"
	Protocol_ENCAP           Protocol = "ENCAP"
	Protocol_ANY_ENC         Protocol = "ANY_ENC"
	Protocol_GMTP            Protocol = "GMTP"
	Protocol_IFMP            Protocol = "IFMP"
	Protocol_PNNI            Protocol = "PNNI"
	Protocol_PIM             Protocol = "PIM"
	Protocol_ARIS            Protocol = "ARIS"
	Protocol_SCPS            Protocol = "SCPS"
	Protocol_QNX             Protocol = "QNX"
	Protocol_A_N             Protocol = "A_N"
	Protocol_IPCOMP          Protocol = "IPCOMP"
	Protocol_SNP             Protocol = "SNP"
	Protocol_COMPAQ_PEER     Protocol = "COMPAQ_PEER"
	Protocol_IPX_IN_IP       Protocol = "IPX_IN_IP"
	Protocol_VRRP            Protocol = "VRRP"
	Protocol_PGM             Protocol = "PGM"
	Protocol_ANY_0_HOP       Protocol = "ANY_0_HOP"
	Protocol_L2_T_P          Protocol = "L2_T_P"
	Protocol_DDX             Protocol = "DDX"
	Protocol_IATP            Protocol = "IATP"
	Protocol_STP             Protocol = "STP"
	Protocol_SRP             Protocol = "SRP"
	Protocol_UTI             Protocol = "UTI"
	Protocol_SMP             Protocol = "SMP"
	Protocol_SM              Protocol = "SM"
	Protocol_PTP             Protocol = "PTP"
	Protocol_ISIS_IPV4       Protocol = "ISIS_IPV4"
	Protocol_FIRE            Protocol = "FIRE"
	Protocol_CRTP            Protocol = "CRTP"
	Protocol_CRUDP           Protocol = "CRUDP"
	Protocol_SSCOPMCE        Protocol = "SSCOPMCE"
	Protocol_IPLT            Protocol = "IPLT"
	Protocol_SPS             Protocol = "SPS"
	Protocol_PIPE            Protocol = "PIPE"
	Protocol_SCTP            Protocol = "SCTP"
	Protocol_FC              Protocol = "FC"
	Protocol_RSVP_E2E_IGNORE Protocol = "RSVP_E2E_IGNORE"
	Protocol_MOBILITY_HEADER Protocol = "MOBILITY_HEADER"
	Protocol_UDPLITE         Protocol = "UDPLITE"
	Protocol_MPLS_IN_IP      Protocol = "MPLS_IN_IP"
	Protocol_MANET           Protocol = "MANET"
	Protocol_HIP             Protocol = "HIP"
	Protocol_SHIM6           Protocol = "SHIM6"
	Protocol_WESP            Protocol = "WESP"
	Protocol_ROHC            Protocol = "ROHC"
	Protocol_ETHERNET        Protocol = "ETHERNET"
	Protocol_EXPERIMENT_1    Protocol = "EXPERIMENT_1"
	Protocol_EXPERIMENT_2    Protocol = "EXPERIMENT_2"
	Protocol_RESERVED        Protocol = "RESERVED"
)

type PublicSubnet

type PublicSubnet interface {
	Subnet
	IPublicSubnet
	AvailabilityZone() *string
	DependencyElements() *[]constructs.IDependable
	Env() *awscdk.ResourceEnvironment
	InternetConnectivityEstablished() constructs.IDependable
	Ipv4CidrBlock() *string
	NetworkAcl() INetworkAcl
	Node() constructs.Node
	PhysicalName() *string
	RouteTable() IRouteTable
	Stack() awscdk.Stack
	SubnetAvailabilityZone() *string
	SubnetId() *string
	SubnetIpv6CidrBlocks() *[]*string
	SubnetNetworkAclAssociationId() *string
	SubnetOutpostArn() *string
	SubnetVpcId() *string
	AddDefaultInternetRoute(gatewayId *string, gatewayAttachment constructs.IDependable)
	AddDefaultNatRoute(natGatewayId *string)
	AddNatGateway(eipAllocationId *string) CfnNatGateway
	AddRoute(id *string, options *AddRouteOptions)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	AssociateNetworkAcl(id *string, networkAcl INetworkAcl)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Represents a public VPC subnet resource.

TODO: EXAMPLE

func NewPublicSubnet

func NewPublicSubnet(scope constructs.Construct, id *string, props *PublicSubnetProps) PublicSubnet

type PublicSubnetAttributes

type PublicSubnetAttributes struct {
	// The subnetId for this particular subnet.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
	// The Availability Zone the subnet is located in.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The IPv4 CIDR block associated with the subnet.
	Ipv4CidrBlock *string `json:"ipv4CidrBlock" yaml:"ipv4CidrBlock"`
	// The ID of the route table for this particular subnet.
	RouteTableId *string `json:"routeTableId" yaml:"routeTableId"`
}

TODO: EXAMPLE

type PublicSubnetProps

type PublicSubnetProps struct {
	// The availability zone for the subnet.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The CIDR notation for this subnet.
	CidrBlock *string `json:"cidrBlock" yaml:"cidrBlock"`
	// The VPC which this subnet is part of.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// Controls if a public IP is associated to an instance at launch.
	MapPublicIpOnLaunch *bool `json:"mapPublicIpOnLaunch" yaml:"mapPublicIpOnLaunch"`
}

TODO: EXAMPLE

type RouterType

type RouterType string

Type of router used in route.

TODO: EXAMPLE

const (
	RouterType_EGRESS_ONLY_INTERNET_GATEWAY RouterType = "EGRESS_ONLY_INTERNET_GATEWAY"
	RouterType_GATEWAY                      RouterType = "GATEWAY"
	RouterType_INSTANCE                     RouterType = "INSTANCE"
	RouterType_NAT_GATEWAY                  RouterType = "NAT_GATEWAY"
	RouterType_NETWORK_INTERFACE            RouterType = "NETWORK_INTERFACE"
	RouterType_VPC_PEERING_CONNECTION       RouterType = "VPC_PEERING_CONNECTION"
)

type S3DownloadOptions

type S3DownloadOptions struct {
	// Name of the S3 bucket to download from.
	Bucket awss3.IBucket `json:"bucket" yaml:"bucket"`
	// The key of the file to download.
	BucketKey *string `json:"bucketKey" yaml:"bucketKey"`
	// The name of the local file.
	LocalFile *string `json:"localFile" yaml:"localFile"`
	// The region of the S3 Bucket (needed for access via VPC Gateway).
	Region *string `json:"region" yaml:"region"`
}

Options when downloading files from S3.

TODO: EXAMPLE

type SecurityGroup

type SecurityGroup interface {
	awscdk.Resource
	ISecurityGroup
	AllowAllOutbound() *bool
	CanInlineRule() *bool
	Connections() Connections
	DefaultPort() Port
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	SecurityGroupId() *string
	SecurityGroupVpcId() *string
	Stack() awscdk.Stack
	UniqueId() *string
	AddEgressRule(peer IPeer, connection Port, description *string, remoteRule *bool)
	AddIngressRule(peer IPeer, connection Port, description *string, remoteRule *bool)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	DetermineRuleScope(peer IPeer, connection Port, fromTo *string, remoteRule *bool) *map[string]interface{}
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToEgressRuleConfig() interface{}
	ToIngressRuleConfig() interface{}
	ToString() *string
}

Creates an Amazon EC2 security group within a VPC.

Security Groups act like a firewall with a set of rules, and are associated with any AWS resource that has or creates Elastic Network Interfaces (ENIs). A typical example of a resource that has a security group is an Instance (or Auto Scaling Group of instances)

If you are defining new infrastructure in CDK, there is a good chance you won't have to interact with this class at all. Like IAM Roles, Security Groups need to exist to control access between AWS resources, but CDK will automatically generate and populate them with least-privilege permissions for you so you can concentrate on your business logic.

All Constructs that require Security Groups will create one for you if you don't specify one at construction. After construction, you can selectively allow connections to and between constructs via--for example-- the `instance.connections` object. Think of it as "allowing connections to your instance", rather than "adding ingress rules a security group". See the [Allowing Connections](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-ec2-readme.html#allowing-connections) section in the library documentation for examples.

Direct manipulation of the Security Group through `addIngressRule` and `addEgressRule` is possible, but mutation through the `.connections` object is recommended. If you peer two constructs with security groups this way, appropriate rules will be created in both.

If you have an existing security group you want to use in your CDK application, you would import it like this:

```ts

const securityGroup = ec2.SecurityGroup.fromSecurityGroupId(this, 'SG', 'sg-12345', {
   mutable: false
});

```

TODO: EXAMPLE

func NewSecurityGroup

func NewSecurityGroup(scope constructs.Construct, id *string, props *SecurityGroupProps) SecurityGroup

type SecurityGroupImportOptions

type SecurityGroupImportOptions struct {
	// Mark the SecurityGroup as having been created allowing all outbound traffic.
	//
	// Only if this is set to false will egress rules be added to this security
	// group. Be aware, this would undo any potential "all outbound traffic"
	// default.
	AllowAllOutbound *bool `json:"allowAllOutbound" yaml:"allowAllOutbound"`
	// If a SecurityGroup is mutable CDK can add rules to existing groups.
	//
	// Beware that making a SecurityGroup immutable might lead to issue
	// due to missing ingress/egress rules for new resources.
	Mutable *bool `json:"mutable" yaml:"mutable"`
}

Additional options for imported security groups.

TODO: EXAMPLE

type SecurityGroupProps

type SecurityGroupProps struct {
	// The VPC in which to create the security group.
	Vpc IVpc `json:"vpc" yaml:"vpc"`
	// Whether to allow all outbound traffic by default.
	//
	// If this is set to true, there will only be a single egress rule which allows all
	// outbound traffic. If this is set to false, no outbound traffic will be allowed by
	// default and all egress traffic must be explicitly authorized.
	AllowAllOutbound *bool `json:"allowAllOutbound" yaml:"allowAllOutbound"`
	// A description of the security group.
	Description *string `json:"description" yaml:"description"`
	// Whether to disable inline ingress and egress rule optimization.
	//
	// If this is set to true, ingress and egress rules will not be declared under the
	// SecurityGroup in cloudformation, but will be separate elements.
	//
	// Inlining rules is an optimization for producing smaller stack templates. Sometimes
	// this is not desirable, for example when security group access is managed via tags.
	//
	// The default value can be overriden globally by setting the context variable
	// '@aws-cdk/aws-ec2.securityGroupDisableInlineRules'.
	DisableInlineRules *bool `json:"disableInlineRules" yaml:"disableInlineRules"`
	// The name of the security group.
	//
	// For valid values, see the GroupName
	// parameter of the CreateSecurityGroup action in the Amazon EC2 API
	// Reference.
	//
	// It is not recommended to use an explicit group name.
	SecurityGroupName *string `json:"securityGroupName" yaml:"securityGroupName"`
}

TODO: EXAMPLE

type SelectedSubnets

type SelectedSubnets struct {
	// The respective AZs of each subnet.
	AvailabilityZones *[]*string `json:"availabilityZones" yaml:"availabilityZones"`
	// Whether any of the given subnets are from the VPC's public subnets.
	HasPublic *bool `json:"hasPublic" yaml:"hasPublic"`
	// Dependency representing internet connectivity for these subnets.
	InternetConnectivityEstablished constructs.IDependable `json:"internetConnectivityEstablished" yaml:"internetConnectivityEstablished"`
	// The subnet IDs.
	SubnetIds *[]*string `json:"subnetIds" yaml:"subnetIds"`
	// Selected subnet objects.
	Subnets *[]ISubnet `json:"subnets" yaml:"subnets"`
	// The subnet selection is not actually real yet.
	//
	// If this value is true, don't validate anything about the subnets. The count
	// or identities are not known yet, and the validation will most likely fail
	// which will prevent a successful lookup.
	IsPendingLookup *bool `json:"isPendingLookup" yaml:"isPendingLookup"`
}

Result of selecting a subset of subnets from a VPC.

TODO: EXAMPLE

type SpotInstanceInterruption

type SpotInstanceInterruption string

Provides the options for the types of interruption for spot instances.

const (
	SpotInstanceInterruption_STOP      SpotInstanceInterruption = "STOP"
	SpotInstanceInterruption_TERMINATE SpotInstanceInterruption = "TERMINATE"
	SpotInstanceInterruption_HIBERNATE SpotInstanceInterruption = "HIBERNATE"
)

type SpotRequestType

type SpotRequestType string

The Spot Instance request type. See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html

const (
	SpotRequestType_ONE_TIME   SpotRequestType = "ONE_TIME"
	SpotRequestType_PERSISTENT SpotRequestType = "PERSISTENT"
)

type SsmParameterImageOptions

type SsmParameterImageOptions struct {
	// Whether the AMI ID is cached to be stable between deployments.
	//
	// By default, the newest image is used on each deployment. This will cause
	// instances to be replaced whenever a new version is released, and may cause
	// downtime if there aren't enough running instances in the AutoScalingGroup
	// to reschedule the tasks on.
	//
	// If set to true, the AMI ID will be cached in `cdk.context.json` and the
	// same value will be used on future runs. Your instances will not be replaced
	// but your AMI version will grow old over time. To refresh the AMI 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.
	//
	// Can not be set to `true` in environment-agnostic stacks.
	CachedInContext *bool `json:"cachedInContext" yaml:"cachedInContext"`
	// Operating system.
	Os OperatingSystemType `json:"os" yaml:"os"`
	// Custom UserData.
	UserData UserData `json:"userData" yaml:"userData"`
}

Properties for GenericSsmParameterImage.

TODO: EXAMPLE

type Subnet

type Subnet interface {
	awscdk.Resource
	ISubnet
	AvailabilityZone() *string
	DependencyElements() *[]constructs.IDependable
	Env() *awscdk.ResourceEnvironment
	InternetConnectivityEstablished() constructs.IDependable
	Ipv4CidrBlock() *string
	NetworkAcl() INetworkAcl
	Node() constructs.Node
	PhysicalName() *string
	RouteTable() IRouteTable
	Stack() awscdk.Stack
	SubnetAvailabilityZone() *string
	SubnetId() *string
	SubnetIpv6CidrBlocks() *[]*string
	SubnetNetworkAclAssociationId() *string
	SubnetOutpostArn() *string
	SubnetVpcId() *string
	AddDefaultInternetRoute(gatewayId *string, gatewayAttachment constructs.IDependable)
	AddDefaultNatRoute(natGatewayId *string)
	AddRoute(id *string, options *AddRouteOptions)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	AssociateNetworkAcl(id *string, networkAcl INetworkAcl)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Represents a new VPC subnet resource.

TODO: EXAMPLE

func NewSubnet

func NewSubnet(scope constructs.Construct, id *string, props *SubnetProps) Subnet

type SubnetAttributes

type SubnetAttributes struct {
	// The subnetId for this particular subnet.
	SubnetId *string `json:"subnetId" yaml:"subnetId"`
	// The Availability Zone the subnet is located in.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The IPv4 CIDR block associated with the subnet.
	Ipv4CidrBlock *string `json:"ipv4CidrBlock" yaml:"ipv4CidrBlock"`
	// The ID of the route table for this particular subnet.
	RouteTableId *string `json:"routeTableId" yaml:"routeTableId"`
}

TODO: EXAMPLE

type SubnetConfiguration

type SubnetConfiguration struct {
	// Logical name for the subnet group.
	//
	// This name can be used when selecting VPC subnets to distinguish
	// between different subnet groups of the same type.
	Name *string `json:"name" yaml:"name"`
	// The type of Subnet to configure.
	//
	// The Subnet type will control the ability to route and connect to the
	// Internet.
	SubnetType SubnetType `json:"subnetType" yaml:"subnetType"`
	// The number of leading 1 bits in the routing mask.
	//
	// The number of available IP addresses in each subnet of this group
	// will be equal to `2^(32 - cidrMask) - 2`.
	//
	// Valid values are `16--28`.
	CidrMask *float64 `json:"cidrMask" yaml:"cidrMask"`
	// Controls if a public IP is associated to an instance at launch.
	MapPublicIpOnLaunch *bool `json:"mapPublicIpOnLaunch" yaml:"mapPublicIpOnLaunch"`
	// Controls if subnet IP space needs to be reserved.
	//
	// When true, the IP space for the subnet is reserved but no actual
	// resources are provisioned. This space is only dependent on the
	// number of availability zones and on `cidrMask` - all other subnet
	// properties are ignored.
	Reserved *bool `json:"reserved" yaml:"reserved"`
}

Specify configuration parameters for a single subnet group in a VPC.

TODO: EXAMPLE

type SubnetFilter

type SubnetFilter interface {
	SelectSubnets(_subnets *[]ISubnet) *[]ISubnet
}

Contains logic which chooses a set of subnets from a larger list, in conjunction with SubnetSelection, to determine where to place AWS resources such as VPC endpoints, EC2 instances, etc.

TODO: EXAMPLE

func SubnetFilter_AvailabilityZones

func SubnetFilter_AvailabilityZones(availabilityZones *[]*string) SubnetFilter

Chooses subnets which are in one of the given availability zones.

func SubnetFilter_ByCidrMask

func SubnetFilter_ByCidrMask(mask *float64) SubnetFilter

Chooses subnets which have the provided CIDR netmask.

func SubnetFilter_ByIds

func SubnetFilter_ByIds(subnetIds *[]*string) SubnetFilter

Chooses subnets by id.

func SubnetFilter_ContainsIpAddresses

func SubnetFilter_ContainsIpAddresses(ipv4addrs *[]*string) SubnetFilter

Chooses subnets which contain any of the specified IP addresses.

func SubnetFilter_OnePerAz

func SubnetFilter_OnePerAz() SubnetFilter

Chooses subnets such that there is at most one per availability zone.

type SubnetNetworkAclAssociation

type SubnetNetworkAclAssociation interface {
	awscdk.Resource
	ISubnetNetworkAclAssociation
	Env() *awscdk.ResourceEnvironment
	NetworkAcl() INetworkAcl
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	Subnet() ISubnet
	SubnetNetworkAclAssociationAssociationId() *string
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

TODO: EXAMPLE

func NewSubnetNetworkAclAssociation

func NewSubnetNetworkAclAssociation(scope constructs.Construct, id *string, props *SubnetNetworkAclAssociationProps) SubnetNetworkAclAssociation

type SubnetNetworkAclAssociationProps

type SubnetNetworkAclAssociationProps struct {
	// The Network ACL this association is defined for.
	NetworkAcl INetworkAcl `json:"networkAcl" yaml:"networkAcl"`
	// ID of the Subnet.
	Subnet ISubnet `json:"subnet" yaml:"subnet"`
	// The name of the SubnetNetworkAclAssociation.
	//
	// It is not recommended to use an explicit name.
	SubnetNetworkAclAssociationName *string `json:"subnetNetworkAclAssociationName" yaml:"subnetNetworkAclAssociationName"`
}

Properties to create a SubnetNetworkAclAssociation.

TODO: EXAMPLE

type SubnetProps

type SubnetProps struct {
	// The availability zone for the subnet.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The CIDR notation for this subnet.
	CidrBlock *string `json:"cidrBlock" yaml:"cidrBlock"`
	// The VPC which this subnet is part of.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// Controls if a public IP is associated to an instance at launch.
	MapPublicIpOnLaunch *bool `json:"mapPublicIpOnLaunch" yaml:"mapPublicIpOnLaunch"`
}

Specify configuration parameters for a VPC subnet.

TODO: EXAMPLE

type SubnetSelection

type SubnetSelection struct {
	// Select subnets only in the given AZs.
	AvailabilityZones *[]*string `json:"availabilityZones" yaml:"availabilityZones"`
	// If true, return at most one subnet per AZ.
	OnePerAz *bool `json:"onePerAz" yaml:"onePerAz"`
	// List of provided subnet filters.
	SubnetFilters *[]SubnetFilter `json:"subnetFilters" yaml:"subnetFilters"`
	// Select the subnet group with the given name.
	//
	// Select the subnet group with the given name. This only needs
	// to be used if you have multiple subnet groups of the same type
	// and you need to distinguish between them. Otherwise, prefer
	// `subnetType`.
	//
	// This field does not select individual subnets, it selects all subnets that
	// share the given subnet group name. This is the name supplied in
	// `subnetConfiguration`.
	//
	// At most one of `subnetType` and `subnetGroupName` can be supplied.
	SubnetGroupName *string `json:"subnetGroupName" yaml:"subnetGroupName"`
	// Explicitly select individual subnets.
	//
	// Use this if you don't want to automatically use all subnets in
	// a group, but have a need to control selection down to
	// individual subnets.
	//
	// Cannot be specified together with `subnetType` or `subnetGroupName`.
	Subnets *[]ISubnet `json:"subnets" yaml:"subnets"`
	// Select all subnets of the given type.
	//
	// At most one of `subnetType` and `subnetGroupName` can be supplied.
	SubnetType SubnetType `json:"subnetType" yaml:"subnetType"`
}

Customize subnets that are selected for placement of ENIs.

Constructs that allow customization of VPC placement use parameters of this type to provide placement settings.

By default, the instances are placed in the private subnets.

TODO: EXAMPLE

type SubnetType

type SubnetType string

The type of Subnet.

TODO: EXAMPLE

const (
	SubnetType_PRIVATE_ISOLATED SubnetType = "PRIVATE_ISOLATED"
	SubnetType_PRIVATE_WITH_NAT SubnetType = "PRIVATE_WITH_NAT"
	SubnetType_PUBLIC           SubnetType = "PUBLIC"
)

type TrafficDirection

type TrafficDirection string

Direction of traffic the AclEntry applies to.

const (
	TrafficDirection_EGRESS  TrafficDirection = "EGRESS"
	TrafficDirection_INGRESS TrafficDirection = "INGRESS"
)

type TransportProtocol

type TransportProtocol string

Transport protocol for client VPN.

const (
	TransportProtocol_TCP TransportProtocol = "TCP"
	TransportProtocol_UDP TransportProtocol = "UDP"
)

type UserData

type UserData interface {
	AddCommands(commands ...*string)
	AddExecuteFileCommand(params *ExecuteFileOptions)
	AddOnExitCommands(commands ...*string)
	AddS3DownloadCommand(params *S3DownloadOptions) *string
	AddSignalOnExitCommand(resource awscdk.Resource)
	Render() *string
}

Instance User Data.

TODO: EXAMPLE

func MultipartUserData_Custom

func MultipartUserData_Custom(content *string) UserData

Create a userdata object with custom content.

func MultipartUserData_ForLinux

func MultipartUserData_ForLinux(options *LinuxUserDataOptions) UserData

Create a userdata object for Linux hosts.

func MultipartUserData_ForOperatingSystem

func MultipartUserData_ForOperatingSystem(os OperatingSystemType) UserData

func MultipartUserData_ForWindows

func MultipartUserData_ForWindows() UserData

Create a userdata object for Windows hosts.

func UserData_Custom

func UserData_Custom(content *string) UserData

Create a userdata object with custom content.

func UserData_ForLinux

func UserData_ForLinux(options *LinuxUserDataOptions) UserData

Create a userdata object for Linux hosts.

func UserData_ForOperatingSystem

func UserData_ForOperatingSystem(os OperatingSystemType) UserData

func UserData_ForWindows

func UserData_ForWindows() UserData

Create a userdata object for Windows hosts.

type Volume

type Volume interface {
	awscdk.Resource
	IVolume
	AvailabilityZone() *string
	EncryptionKey() awskms.IKey
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	VolumeId() *string
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	GrantAttachVolume(grantee awsiam.IGrantable, instances *[]IInstance) awsiam.Grant
	GrantAttachVolumeByResourceTag(grantee awsiam.IGrantable, constructs *[]constructs.Construct, tagKeySuffix *string) awsiam.Grant
	GrantDetachVolume(grantee awsiam.IGrantable, instances *[]IInstance) awsiam.Grant
	GrantDetachVolumeByResourceTag(grantee awsiam.IGrantable, constructs *[]constructs.Construct, tagKeySuffix *string) awsiam.Grant
	ToString() *string
	ValidateProps(props *VolumeProps)
}

Creates a new EBS Volume in AWS EC2.

TODO: EXAMPLE

func NewVolume

func NewVolume(scope constructs.Construct, id *string, props *VolumeProps) Volume

type VolumeAttributes

type VolumeAttributes struct {
	// The availability zone that the EBS Volume is contained within (ex: us-west-2a).
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// The EBS Volume's ID.
	VolumeId *string `json:"volumeId" yaml:"volumeId"`
	// The customer-managed encryption key that is used to encrypt the Volume.
	EncryptionKey awskms.IKey `json:"encryptionKey" yaml:"encryptionKey"`
}

Attributes required to import an existing EBS Volume into the Stack.

TODO: EXAMPLE

type VolumeProps

type VolumeProps struct {
	// The Availability Zone in which to create the volume.
	AvailabilityZone *string `json:"availabilityZone" yaml:"availabilityZone"`
	// Indicates whether the volume is auto-enabled for I/O operations.
	//
	// By default, Amazon EBS disables I/O to the volume from attached EC2
	// instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and
	// you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O.
	AutoEnableIo *bool `json:"autoEnableIo" yaml:"autoEnableIo"`
	// Indicates whether Amazon EBS Multi-Attach is enabled.
	//
	// See {@link https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html#considerations|Considerations and limitations}
	// for the constraints of multi-attach.
	EnableMultiAttach *bool `json:"enableMultiAttach" yaml:"enableMultiAttach"`
	// Specifies whether the volume should be encrypted.
	//
	// The effect of setting the encryption state to true depends on the volume origin
	// (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information,
	// see {@link https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default|Encryption by Default}
	// in the Amazon Elastic Compute Cloud User Guide.
	//
	// Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see
	// {@link https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances|Supported Instance Types.}
	Encrypted *bool `json:"encrypted" yaml:"encrypted"`
	// The customer-managed encryption key that is used to encrypt the Volume.
	//
	// The encrypted property must
	// be true if this is provided.
	//
	// Note: If using an {@link aws-kms.IKey} created from a {@link aws-kms.Key.fromKeyArn()} here,
	// then the KMS key **must** have the following in its Key policy; otherwise, the Volume
	// will fail to create.
	//
	//      {
	//        "Effect": "Allow",
	//        "Principal": { "AWS": "<arn for your account-user> ex: arn:aws:iam::00000000000:root" },
	//        "Resource": "*",
	//        "Action": [
	//          "kms:DescribeKey",
	//          "kms:GenerateDataKeyWithoutPlainText",
	//        ],
	//        "Condition": {
	//          "StringEquals": {
	//            "kms:ViaService": "ec2.<Region>.amazonaws.com", (eg: ec2.us-east-1.amazonaws.com)
	//            "kms:CallerAccount": "0000000000" (your account ID)
	//          }
	//        }
	//      }
	EncryptionKey awskms.IKey `json:"encryptionKey" yaml:"encryptionKey"`
	// The number of I/O operations per second (IOPS) to provision for the volume.
	//
	// The maximum ratio is 50 IOPS/GiB for PROVISIONED_IOPS_SSD,
	// and 500 IOPS/GiB for both PROVISIONED_IOPS_SSD_IO2 and GENERAL_PURPOSE_SSD_GP3.
	// See {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html}
	// for more information.
	//
	// This parameter is valid only for PROVISIONED_IOPS_SSD, PROVISIONED_IOPS_SSD_IO2 and GENERAL_PURPOSE_SSD_GP3 volumes.
	Iops *float64 `json:"iops" yaml:"iops"`
	// Policy to apply when the volume is removed from the stack.
	RemovalPolicy awscdk.RemovalPolicy `json:"removalPolicy" yaml:"removalPolicy"`
	// The size of the volume, in GiBs.
	//
	// You must specify either a snapshot ID or a volume size.
	// See {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html}
	// for details on the allowable size for each type of volume.
	Size awscdk.Size `json:"size" yaml:"size"`
	// The snapshot from which to create the volume.
	//
	// You must specify either a snapshot ID or a volume size.
	SnapshotId *string `json:"snapshotId" yaml:"snapshotId"`
	// The value of the physicalName property of this resource.
	VolumeName *string `json:"volumeName" yaml:"volumeName"`
	// The type of the volume;
	//
	// what type of storage to use to form the EBS Volume.
	VolumeType EbsDeviceVolumeType `json:"volumeType" yaml:"volumeType"`
}

Properties of an EBS Volume.

TODO: EXAMPLE

type Vpc

type Vpc interface {
	awscdk.Resource
	IVpc
	AvailabilityZones() *[]*string
	DnsHostnamesEnabled() *bool
	DnsSupportEnabled() *bool
	Env() *awscdk.ResourceEnvironment
	IncompleteSubnetDefinition() *bool
	SetIncompleteSubnetDefinition(val *bool)
	InternetConnectivityEstablished() constructs.IDependable
	InternetGatewayId() *string
	IsolatedSubnets() *[]ISubnet
	Node() constructs.Node
	PhysicalName() *string
	PrivateSubnets() *[]ISubnet
	PublicSubnets() *[]ISubnet
	Stack() awscdk.Stack
	VpcArn() *string
	VpcCidrBlock() *string
	VpcCidrBlockAssociations() *[]*string
	VpcDefaultNetworkAcl() *string
	VpcDefaultSecurityGroup() *string
	VpcId() *string
	VpcIpv6CidrBlocks() *[]*string
	VpnGatewayId() *string
	AddClientVpnEndpoint(id *string, options *ClientVpnEndpointOptions) ClientVpnEndpoint
	AddFlowLog(id *string, options *FlowLogOptions) FlowLog
	AddGatewayEndpoint(id *string, options *GatewayVpcEndpointOptions) GatewayVpcEndpoint
	AddInterfaceEndpoint(id *string, options *InterfaceVpcEndpointOptions) InterfaceVpcEndpoint
	AddVpnConnection(id *string, options *VpnConnectionOptions) VpnConnection
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	EnableVpnGateway(options *EnableVpnGatewayOptions)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	SelectSubnetObjects(selection *SubnetSelection) *[]ISubnet
	SelectSubnets(selection *SubnetSelection) *SelectedSubnets
	ToString() *string
}

Define an AWS Virtual Private Cloud.

See the package-level documentation of this package for an overview of the various dimensions in which you can configure your VPC.

For example:

```ts

const vpc = new ec2.Vpc(this, 'TheVPC', {
   cidr: "10.0.0.0/16"
})

// Iterate the private subnets

const selection = vpc.selectSubnets({
   subnetType: ec2.SubnetType.PRIVATE_WITH_NAT
});
for (const subnet of selection.subnets) {
   // ...
}

```

TODO: EXAMPLE

func NewVpc

func NewVpc(scope constructs.Construct, id *string, props *VpcProps) Vpc

Vpc creates a VPC that spans a whole region.

It will automatically divide the provided VPC CIDR range, and create public and private subnets per Availability Zone. Network routing for the public subnets will be configured to allow outbound access directly via an Internet Gateway. Network routing for the private subnets will be configured to allow outbound access via a set of resilient NAT Gateways (one per AZ).

type VpcAttributes

type VpcAttributes struct {
	// List of availability zones for the subnets in this VPC.
	AvailabilityZones *[]*string `json:"availabilityZones" yaml:"availabilityZones"`
	// VPC's identifier.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// List of isolated subnet IDs.
	//
	// Must be undefined or match the availability zones in length and order.
	IsolatedSubnetIds *[]*string `json:"isolatedSubnetIds" yaml:"isolatedSubnetIds"`
	// List of names for the isolated subnets.
	//
	// Must be undefined or have a name for every isolated subnet group.
	IsolatedSubnetNames *[]*string `json:"isolatedSubnetNames" yaml:"isolatedSubnetNames"`
	// List of IDs of routing tables for the isolated subnets.
	//
	// Must be undefined or have a name for every isolated subnet group.
	IsolatedSubnetRouteTableIds *[]*string `json:"isolatedSubnetRouteTableIds" yaml:"isolatedSubnetRouteTableIds"`
	// List of private subnet IDs.
	//
	// Must be undefined or match the availability zones in length and order.
	PrivateSubnetIds *[]*string `json:"privateSubnetIds" yaml:"privateSubnetIds"`
	// List of names for the private subnets.
	//
	// Must be undefined or have a name for every private subnet group.
	PrivateSubnetNames *[]*string `json:"privateSubnetNames" yaml:"privateSubnetNames"`
	// List of IDs of routing tables for the private subnets.
	//
	// Must be undefined or have a name for every private subnet group.
	PrivateSubnetRouteTableIds *[]*string `json:"privateSubnetRouteTableIds" yaml:"privateSubnetRouteTableIds"`
	// List of public subnet IDs.
	//
	// Must be undefined or match the availability zones in length and order.
	PublicSubnetIds *[]*string `json:"publicSubnetIds" yaml:"publicSubnetIds"`
	// List of names for the public subnets.
	//
	// Must be undefined or have a name for every public subnet group.
	PublicSubnetNames *[]*string `json:"publicSubnetNames" yaml:"publicSubnetNames"`
	// List of IDs of routing tables for the public subnets.
	//
	// Must be undefined or have a name for every public subnet group.
	PublicSubnetRouteTableIds *[]*string `json:"publicSubnetRouteTableIds" yaml:"publicSubnetRouteTableIds"`
	// VPC's CIDR range.
	VpcCidrBlock *string `json:"vpcCidrBlock" yaml:"vpcCidrBlock"`
	// VPN gateway's identifier.
	VpnGatewayId *string `json:"vpnGatewayId" yaml:"vpnGatewayId"`
}

Properties that reference an external Vpc.

TODO: EXAMPLE

type VpcEndpoint

type VpcEndpoint interface {
	awscdk.Resource
	IVpcEndpoint
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	PolicyDocument() awsiam.PolicyDocument
	SetPolicyDocument(val awsiam.PolicyDocument)
	Stack() awscdk.Stack
	VpcEndpointId() *string
	AddToPolicy(statement awsiam.PolicyStatement)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

type VpcEndpointService

type VpcEndpointService interface {
	awscdk.Resource
	IVpcEndpointService
	AcceptanceRequired() *bool
	AllowedPrincipals() *[]awsiam.ArnPrincipal
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	VpcEndpointServiceId() *string
	VpcEndpointServiceLoadBalancers() *[]IVpcEndpointServiceLoadBalancer
	VpcEndpointServiceName() *string
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

A VPC endpoint service.

TODO: EXAMPLE

func NewVpcEndpointService

func NewVpcEndpointService(scope constructs.Construct, id *string, props *VpcEndpointServiceProps) VpcEndpointService

type VpcEndpointServiceProps

type VpcEndpointServiceProps struct {
	// One or more load balancers to host the VPC Endpoint Service.
	VpcEndpointServiceLoadBalancers *[]IVpcEndpointServiceLoadBalancer `json:"vpcEndpointServiceLoadBalancers" yaml:"vpcEndpointServiceLoadBalancers"`
	// Whether requests from service consumers to connect to the service through an endpoint must be accepted.
	AcceptanceRequired *bool `json:"acceptanceRequired" yaml:"acceptanceRequired"`
	// IAM users, IAM roles, or AWS accounts to allow inbound connections from.
	//
	// These principals can connect to your service using VPC endpoints. Takes a
	// list of one or more ArnPrincipal.
	AllowedPrincipals *[]awsiam.ArnPrincipal `json:"allowedPrincipals" yaml:"allowedPrincipals"`
}

Construction properties for a VpcEndpointService.

TODO: EXAMPLE

type VpcEndpointType

type VpcEndpointType string

The type of VPC endpoint.

const (
	VpcEndpointType_INTERFACE VpcEndpointType = "INTERFACE"
	VpcEndpointType_GATEWAY   VpcEndpointType = "GATEWAY"
)

type VpcLookupOptions

type VpcLookupOptions struct {
	// Whether to match the default VPC.
	IsDefault *bool `json:"isDefault" yaml:"isDefault"`
	// Optional to override inferred region.
	Region *string `json:"region" yaml:"region"`
	// Optional tag for subnet group name.
	//
	// If not provided, we'll look at the aws-cdk:subnet-name tag.
	// If the subnet does not have the specified tag,
	// we'll use its type as the name.
	SubnetGroupNameTag *string `json:"subnetGroupNameTag" yaml:"subnetGroupNameTag"`
	// Tags on the VPC.
	//
	// The VPC must have all of these tags
	Tags *map[string]*string `json:"tags" yaml:"tags"`
	// The ID of the VPC.
	//
	// If given, will import exactly this VPC.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
	// The name of the VPC.
	//
	// If given, will import the VPC with this name.
	VpcName *string `json:"vpcName" yaml:"vpcName"`
}

Properties for looking up an existing VPC.

The combination of properties must specify filter down to exactly one non-default VPC, otherwise an error is raised.

TODO: EXAMPLE

type VpcProps

type VpcProps struct {
	// The CIDR range to use for the VPC, e.g. '10.0.0.0/16'.
	//
	// Should be a minimum of /28 and maximum size of /16. The range will be
	// split across all subnets per Availability Zone.
	Cidr *string `json:"cidr" yaml:"cidr"`
	// The default tenancy of instances launched into the VPC.
	//
	// By setting this to dedicated tenancy, instances will be launched on
	// hardware dedicated to a single AWS customer, unless specifically specified
	// at instance launch time. Please note, not all instance types are usable
	// with Dedicated tenancy.
	DefaultInstanceTenancy DefaultInstanceTenancy `json:"defaultInstanceTenancy" yaml:"defaultInstanceTenancy"`
	// Indicates whether the instances launched in the VPC get public DNS hostnames.
	//
	// If this attribute is true, instances in the VPC get public DNS hostnames,
	// but only if the enableDnsSupport attribute is also set to true.
	EnableDnsHostnames *bool `json:"enableDnsHostnames" yaml:"enableDnsHostnames"`
	// Indicates whether the DNS resolution is supported for the VPC.
	//
	// If this attribute is false, the Amazon-provided DNS server in the VPC that
	// resolves public DNS hostnames to IP addresses is not enabled. If this
	// attribute is true, queries to the Amazon provided DNS server at the
	// 169.254.169.253 IP address, or the reserved IP address at the base of the
	// VPC IPv4 network range plus two will succeed.
	EnableDnsSupport *bool `json:"enableDnsSupport" yaml:"enableDnsSupport"`
	// Flow logs to add to this VPC.
	FlowLogs *map[string]*FlowLogOptions `json:"flowLogs" yaml:"flowLogs"`
	// Gateway endpoints to add to this VPC.
	GatewayEndpoints *map[string]*GatewayVpcEndpointOptions `json:"gatewayEndpoints" yaml:"gatewayEndpoints"`
	// Define the maximum number of AZs to use in this region.
	//
	// If the region has more AZs than you want to use (for example, because of
	// EIP limits), pick a lower number here. The AZs will be sorted and picked
	// from the start of the list.
	//
	// If you pick a higher number than the number of AZs in the region, all AZs
	// in the region will be selected. To use "all AZs" available to your
	// account, use a high number (such as 99).
	//
	// Be aware that environment-agnostic stacks will be created with access to
	// only 2 AZs, so to use more than 2 AZs, be sure to specify the account and
	// region on your stack.
	MaxAzs *float64 `json:"maxAzs" yaml:"maxAzs"`
	// What type of NAT provider to use.
	//
	// Select between NAT gateways or NAT instances. NAT gateways
	// may not be available in all AWS regions.
	NatGatewayProvider NatProvider `json:"natGatewayProvider" yaml:"natGatewayProvider"`
	// The number of NAT Gateways/Instances to create.
	//
	// The type of NAT gateway or instance will be determined by the
	// `natGatewayProvider` parameter.
	//
	// You can set this number lower than the number of Availability Zones in your
	// VPC in order to save on NAT cost. Be aware you may be charged for
	// cross-AZ data traffic instead.
	NatGateways *float64 `json:"natGateways" yaml:"natGateways"`
	// Configures the subnets which will have NAT Gateways/Instances.
	//
	// You can pick a specific group of subnets by specifying the group name;
	// the picked subnets must be public subnets.
	//
	// Only necessary if you have more than one public subnet group.
	NatGatewaySubnets *SubnetSelection `json:"natGatewaySubnets" yaml:"natGatewaySubnets"`
	// Configure the subnets to build for each AZ.
	//
	// Each entry in this list configures a Subnet Group; each group will contain a
	// subnet for each Availability Zone.
	//
	// For example, if you want 1 public subnet, 1 private subnet, and 1 isolated
	// subnet in each AZ provide the following:
	//
	// “`ts
	// new ec2.Vpc(this, 'VPC', {
	//    subnetConfiguration: [
	//       {
	//         cidrMask: 24,
	//         name: 'ingress',
	//         subnetType: ec2.SubnetType.PUBLIC,
	//       },
	//       {
	//         cidrMask: 24,
	//         name: 'application',
	//         subnetType: ec2.SubnetType.PRIVATE_WITH_NAT,
	//       },
	//       {
	//         cidrMask: 28,
	//         name: 'rds',
	//         subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
	//       }
	//    ]
	// });
	// “`
	SubnetConfiguration *[]*SubnetConfiguration `json:"subnetConfiguration" yaml:"subnetConfiguration"`
	// The VPC name.
	//
	// Since the VPC resource doesn't support providing a physical name, the value provided here will be recorded in the `Name` tag
	VpcName *string `json:"vpcName" yaml:"vpcName"`
	// VPN connections to this VPC.
	VpnConnections *map[string]*VpnConnectionOptions `json:"vpnConnections" yaml:"vpnConnections"`
	// Indicates whether a VPN gateway should be created and attached to this VPC.
	VpnGateway *bool `json:"vpnGateway" yaml:"vpnGateway"`
	// The private Autonomous System Number (ASN) for the VPN gateway.
	VpnGatewayAsn *float64 `json:"vpnGatewayAsn" yaml:"vpnGatewayAsn"`
	// Where to propagate VPN routes.
	VpnRoutePropagation *[]*SubnetSelection `json:"vpnRoutePropagation" yaml:"vpnRoutePropagation"`
}

Configuration for Vpc.

TODO: EXAMPLE

type VpnConnection

type VpnConnection interface {
	awscdk.Resource
	IVpnConnection
	CustomerGatewayAsn() *float64
	CustomerGatewayId() *string
	CustomerGatewayIp() *string
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	VpnId() *string
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricTunnelDataIn(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricTunnelDataOut(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricTunnelState(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	ToString() *string
}

Define a VPN Connection.

TODO: EXAMPLE

func NewVpnConnection

func NewVpnConnection(scope constructs.Construct, id *string, props *VpnConnectionProps) VpnConnection

type VpnConnectionOptions

type VpnConnectionOptions struct {
	// The ip address of the customer gateway.
	Ip *string `json:"ip" yaml:"ip"`
	// The ASN of the customer gateway.
	Asn *float64 `json:"asn" yaml:"asn"`
	// The static routes to be routed from the VPN gateway to the customer gateway.
	StaticRoutes *[]*string `json:"staticRoutes" yaml:"staticRoutes"`
	// The tunnel options for the VPN connection.
	//
	// At most two elements (one per tunnel).
	// Duplicates not allowed.
	TunnelOptions *[]*VpnTunnelOption `json:"tunnelOptions" yaml:"tunnelOptions"`
}

TODO: EXAMPLE

type VpnConnectionProps

type VpnConnectionProps struct {
	// The ip address of the customer gateway.
	Ip *string `json:"ip" yaml:"ip"`
	// The ASN of the customer gateway.
	Asn *float64 `json:"asn" yaml:"asn"`
	// The static routes to be routed from the VPN gateway to the customer gateway.
	StaticRoutes *[]*string `json:"staticRoutes" yaml:"staticRoutes"`
	// The tunnel options for the VPN connection.
	//
	// At most two elements (one per tunnel).
	// Duplicates not allowed.
	TunnelOptions *[]*VpnTunnelOption `json:"tunnelOptions" yaml:"tunnelOptions"`
	// The VPC to connect to.
	Vpc IVpc `json:"vpc" yaml:"vpc"`
}

TODO: EXAMPLE

type VpnConnectionType

type VpnConnectionType string

The VPN connection type.

const (
	VpnConnectionType_IPSEC_1 VpnConnectionType = "IPSEC_1"
	VpnConnectionType_DUMMY   VpnConnectionType = "DUMMY"
)

type VpnGateway

type VpnGateway interface {
	awscdk.Resource
	IVpnGateway
	Env() *awscdk.ResourceEnvironment
	GatewayId() *string
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

The VPN Gateway that shall be added to the VPC.

TODO: EXAMPLE

func NewVpnGateway

func NewVpnGateway(scope constructs.Construct, id *string, props *VpnGatewayProps) VpnGateway

type VpnGatewayProps

type VpnGatewayProps struct {
	// Default type ipsec.1.
	Type *string `json:"type" yaml:"type"`
	// Explicitly specify an Asn or let aws pick an Asn for you.
	AmazonSideAsn *float64 `json:"amazonSideAsn" yaml:"amazonSideAsn"`
}

The VpnGateway Properties.

TODO: EXAMPLE

type VpnPort

type VpnPort string

Port for client VPN.

const (
	VpnPort_HTTPS   VpnPort = "HTTPS"
	VpnPort_OPENVPN VpnPort = "OPENVPN"
)

type VpnTunnelOption

type VpnTunnelOption struct {
	// The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and customer gateway.
	//
	// Allowed characters are alphanumeric characters
	// and ._. Must be between 8 and 64 characters in length and cannot start with zero (0).
	PreSharedKey *string `json:"preSharedKey" yaml:"preSharedKey"`
	// The range of inside IP addresses for the tunnel.
	//
	// Any specified CIDR blocks must be
	// unique across all VPN connections that use the same virtual private gateway.
	// A size /30 CIDR block from the 169.254.0.0/16 range.
	TunnelInsideCidr *string `json:"tunnelInsideCidr" yaml:"tunnelInsideCidr"`
}

TODO: EXAMPLE

type WindowsImage

type WindowsImage interface {
	GenericSSMParameterImage
	ParameterName() *string
	GetImage(scope constructs.Construct) *MachineImageConfig
}

Select the latest version of the indicated Windows version.

This Machine Image automatically updates to the latest version on every deployment. Be aware this will cause your instances to be replaced when a new version of the image becomes available. Do not store stateful information on the instance if you are using this image.

The AMI ID is selected using the values published to the SSM parameter store.

https://aws.amazon.com/blogs/mt/query-for-the-latest-windows-ami-using-systems-manager-parameter-store/

TODO: EXAMPLE

func NewWindowsImage

func NewWindowsImage(version WindowsVersion, props *WindowsImageProps) WindowsImage

type WindowsImageProps

type WindowsImageProps struct {
	// Initial user data.
	UserData UserData `json:"userData" yaml:"userData"`
}

Configuration options for WindowsImage.

TODO: EXAMPLE

type WindowsVersion

type WindowsVersion string

The Windows version to use for the WindowsImage.

TODO: EXAMPLE

const (
	WindowsVersion_WINDOWS_SERVER_2008_SP2_ENGLISH_64BIT_SQL_2008_SP4_EXPRESS               WindowsVersion = "WINDOWS_SERVER_2008_SP2_ENGLISH_64BIT_SQL_2008_SP4_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_CHINESE_SIMPLIFIED_64BIT_BASE                 WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_CHINESE_SIMPLIFIED_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_CHINESE_TRADITIONAL_64BIT_BASE                WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_CHINESE_TRADITIONAL_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_DUTCH_64BIT_BASE                              WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_DUTCH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP2_ENTERPRISE         WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP2_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_HUNGARIAN_64BIT_BASE                          WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_HUNGARIAN_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_BASE                           WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_CORE_CONTAINERS                              WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_CORE_CONTAINERS"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP1_WEB                        WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP1_WEB"
	WindowsVersion_WINDOWS_SERVER_2016_GERMAN_FULL_BASE                                     WindowsVersion = "WINDOWS_SERVER_2016_GERMAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2003_R2_SP2_LANGUAGE_PACKS_32BIT_BASE                     WindowsVersion = "WINDOWS_SERVER_2003_R2_SP2_LANGUAGE_PACKS_32BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SQL_2008_R2_SP3_WEB             WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SQL_2008_R2_SP3_WEB"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SQL_2012_SP4_EXPRESS            WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SQL_2012_SP4_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_R2_SP1_PORTUGUESE_BRAZIL_64BIT_CORE                  WindowsVersion = "WINDOWS_SERVER_2012_R2_SP1_PORTUGUESE_BRAZIL_64BIT_CORE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP2_STANDARD           WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP2_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2014_SP2_EXPRESS               WindowsVersion = "WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2014_SP2_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_ITALIAN_64BIT_BASE                               WindowsVersion = "WINDOWS_SERVER_2012_RTM_ITALIAN_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP1_EXPRESS                    WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP1_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_DEEP_LEARNING                                WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_DEEP_LEARNING"
	WindowsVersion_WINDOWS_SERVER_2019_ITALIAN_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2019_ITALIAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_KOREAN_64BIT_BASE                             WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_KOREAN_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP1_EXPRESS            WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP1_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2016_SP2_WEB               WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2016_SP2_WEB"
	WindowsVersion_WINDOWS_SERVER_2016_JAPANESE_FULL_FQL_2016_SP2_WEB                       WindowsVersion = "WINDOWS_SERVER_2016_JAPANESE_FULL_FQL_2016_SP2_WEB"
	WindowsVersion_WINDOWS_SERVER_2016_KOREAN_FULL_BASE                                     WindowsVersion = "WINDOWS_SERVER_2016_KOREAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_KOREAN_FULL_SQL_2016_SP2_STANDARD                    WindowsVersion = "WINDOWS_SERVER_2016_KOREAN_FULL_SQL_2016_SP2_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2016_PORTUGUESE_PORTUGAL_FULL_BASE                        WindowsVersion = "WINDOWS_SERVER_2016_PORTUGUESE_PORTUGAL_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2017_WEB                            WindowsVersion = "WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2017_WEB"
	WindowsVersion_WINDOWS_SERVER_2019_FRENCH_FULL_BASE                                     WindowsVersion = "WINDOWS_SERVER_2019_FRENCH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2019_KOREAN_FULL_BASE                                     WindowsVersion = "WINDOWS_SERVER_2019_KOREAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_CHINESE_HONG_KONG_SAR_64BIT_BASE              WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_CHINESE_HONG_KONG_SAR_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_CHINESE_PRC_64BIT_BASE                        WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_CHINESE_PRC_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_FRENCH_64BIT_BASE                                WindowsVersion = "WINDOWS_SERVER_2012_RTM_FRENCH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_CONTAINERS                              WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_CONTAINERS"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP1_STANDARD                   WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP1_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2016_RUSSIAN_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2016_RUSSIAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2019_CHINESE_SIMPLIFIED_FULL_BASE                         WindowsVersion = "WINDOWS_SERVER_2019_CHINESE_SIMPLIFIED_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2016_SP2_STANDARD                   WindowsVersion = "WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2016_SP2_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2019_HUNGARIAN_FULL_BASE                                  WindowsVersion = "WINDOWS_SERVER_2019_HUNGARIAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SQL_2008_R2_SP3_EXPRESS         WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SQL_2008_R2_SP3_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2007_R2_SP1_LANGUAGE_PACKS_64BIT_BASE                     WindowsVersion = "WINDOWS_SERVER_2007_R2_SP1_LANGUAGE_PACKS_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_SP2_ENGLISH_32BIT_BASE                               WindowsVersion = "WINDOWS_SERVER_2008_SP2_ENGLISH_32BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2012_SP4_ENTERPRISE         WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2012_SP4_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_CHINESE_TRADITIONAL_64BIT_BASE                   WindowsVersion = "WINDOWS_SERVER_2012_RTM_CHINESE_TRADITIONAL_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2008_R2_SP3_EXPRESS            WindowsVersion = "WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2008_R2_SP3_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2014_SP2_STANDARD              WindowsVersion = "WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2014_SP2_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2014_SP2_EXPRESS              WindowsVersion = "WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2014_SP2_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2016_POLISH_FULL_BASE                                     WindowsVersion = "WINDOWS_SERVER_2016_POLISH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2016_SP2_WEB                        WindowsVersion = "WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2016_SP2_WEB"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP3_STANDARD           WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP3_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP2_EXPRESS            WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP2_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_DEEP_LEARNING                         WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_DEEP_LEARNING"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_GERMAN_64BIT_BASE                             WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_GERMAN_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2016_SP1_EXPRESS           WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2016_SP1_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_RUSSIAN_64BIT_BASE                            WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_RUSSIAN_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_CHINESE_TRADITIONAL_HONG_KONG_SAR_64BIT_BASE     WindowsVersion = "WINDOWS_SERVER_2012_RTM_CHINESE_TRADITIONAL_HONG_KONG_SAR_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_HUNGARIAN_64BIT_BASE                             WindowsVersion = "WINDOWS_SERVER_2012_RTM_HUNGARIAN_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2014_SP3_STANDARD             WindowsVersion = "WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2014_SP3_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2019_ENGLISH_FULL_HYPERV                                  WindowsVersion = "WINDOWS_SERVER_2019_ENGLISH_FULL_HYPERV"
	WindowsVersion_WINDOWS_SERVER_2003_R2_SP2_ENGLISH_64BIT_SQL_2005_SP4_EXPRESS            WindowsVersion = "WINDOWS_SERVER_2003_R2_SP2_ENGLISH_64BIT_SQL_2005_SP4_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_JAPANESE_64BIT_SQL_2012_SP4_EXPRESS           WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_JAPANESE_64BIT_SQL_2012_SP4_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_GERMAN_64BIT_BASE                                WindowsVersion = "WINDOWS_SERVER_2012_RTM_GERMAN_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2008_R2_SP3_STANDARD          WindowsVersion = "WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2008_R2_SP3_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP2_STANDARD                   WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP2_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2017_EXPRESS                        WindowsVersion = "WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2017_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2019_JAPANESE_FULL_BASE                                   WindowsVersion = "WINDOWS_SERVER_2019_JAPANESE_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2019_RUSSIAN_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2019_RUSSIAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP2_STANDARD           WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP2_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ITALIAN_64BIT_BASE                            WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ITALIAN_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_BASE                               WindowsVersion = "WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2008_R2_SP3_STANDARD           WindowsVersion = "WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2008_R2_SP3_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_HYPERV                                  WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_HYPERV"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP2_ENTERPRISE                 WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP2_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2019_CHINESE_TRADITIONAL_FULL_BASE                        WindowsVersion = "WINDOWS_SERVER_2019_CHINESE_TRADITIONAL_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2019_ENGLISH_CORE_BASE                                    WindowsVersion = "WINDOWS_SERVER_2019_ENGLISH_CORE_BASE"
	WindowsVersion_WINDOWS_SERVER_2019_ENGLISH_CORE_CONTAINERSLATEST                        WindowsVersion = "WINDOWS_SERVER_2019_ENGLISH_CORE_CONTAINERSLATEST"
	WindowsVersion_WINDOWS_SERVER_2008_SP2_ENGLISH_64BIT_BASE                               WindowsVersion = "WINDOWS_SERVER_2008_SP2_ENGLISH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_FRENCH_64BIT_BASE                             WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_FRENCH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_POLISH_64BIT_BASE                             WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_POLISH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2012_SP4_EXPRESS               WindowsVersion = "WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2012_SP4_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2014_SP3_STANDARD              WindowsVersion = "WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2014_SP3_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_2012_SP4_STANDARD                 WindowsVersion = "WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_2012_SP4_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_CORE_CONTAINERSLATEST                        WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_CORE_CONTAINERSLATEST"
	WindowsVersion_WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2016_SP2_EXPRESS                    WindowsVersion = "WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2016_SP2_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2019_TURKISH_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2019_TURKISH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP2_EXPRESS            WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP2_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP3_WEB                WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP3_WEB"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2016_SP1_WEB               WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2016_SP1_WEB"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_PORTUGUESE_BRAZIL_64BIT_BASE                  WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_PORTUGUESE_BRAZIL_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_PORTUGUESE_PORTUGAL_64BIT_BASE                WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_PORTUGUESE_PORTUGAL_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_SWEDISH_64BIT_BASE                            WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_SWEDISH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP1_EXPRESS                    WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP1_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2016_ITALIAN_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2016_ITALIAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_SPANISH_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2016_SPANISH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2017_STANDARD                       WindowsVersion = "WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2017_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2003_R2_SP2_LANGUAGE_PACKS_64BIT_SQL_2005_SP4_STANDARD    WindowsVersion = "WINDOWS_SERVER_2003_R2_SP2_LANGUAGE_PACKS_64BIT_SQL_2005_SP4_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_JAPANESE_64BIT_SQL_2008_R2_SP3_STANDARD       WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_JAPANESE_64BIT_SQL_2008_R2_SP3_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2016_SP1_STANDARD          WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2016_SP1_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2007_R2_SP3_WEB                WindowsVersion = "WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2007_R2_SP3_WEB"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2014_SP2_WEB                  WindowsVersion = "WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2014_SP2_WEB"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP2_ENTERPRISE                 WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP2_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2016_PORTUGUESE_BRAZIL_FULL_BASE                          WindowsVersion = "WINDOWS_SERVER_2016_PORTUGUESE_BRAZIL_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2019_ENGLISH_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2019_ENGLISH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2003_R2_SP2_ENGLISH_32BIT_BASE                            WindowsVersion = "WINDOWS_SERVER_2003_R2_SP2_ENGLISH_32BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_CZECH_64BIT_BASE                              WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_CZECH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP1_STANDARD           WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP1_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2014_SP2_EXPRESS           WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2014_SP2_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2012_SP4_STANDARD              WindowsVersion = "WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2012_SP4_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP1_ENTERPRISE                 WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP1_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2016_JAPANESE_FULL_SQL_2016_SP1_WEB                       WindowsVersion = "WINDOWS_SERVER_2016_JAPANESE_FULL_SQL_2016_SP1_WEB"
	WindowsVersion_WINDOWS_SERVER_2016_SWEDISH_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2016_SWEDISH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_TURKISH_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2016_TURKISH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_CORE_SQL_2012_SP4_STANDARD      WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_CORE_SQL_2012_SP4_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_LANGUAGE_PACKS_64BIT_SQL_2008_R2_SP3_STANDARD WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_LANGUAGE_PACKS_64BIT_SQL_2008_R2_SP3_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_CZECH_64BIT_BASE                                 WindowsVersion = "WINDOWS_SERVER_2012_RTM_CZECH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_TURKISH_64BIT_BASE                               WindowsVersion = "WINDOWS_SERVER_2012_RTM_TURKISH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_DUTCH_FULL_BASE                                      WindowsVersion = "WINDOWS_SERVER_2016_DUTCH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP2_EXPRESS                    WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP2_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2017_ENTERPRISE                     WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2017_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2016_HUNGARIAN_FULL_BASE                                  WindowsVersion = "WINDOWS_SERVER_2016_HUNGARIAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_KOREAN_FULL_SQL_2016_SP1_STANDARD                    WindowsVersion = "WINDOWS_SERVER_2016_KOREAN_FULL_SQL_2016_SP1_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2019_SPANISH_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2019_SPANISH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2003_R2_SP2_ENGLISH_64BIT_BASE                            WindowsVersion = "WINDOWS_SERVER_2003_R2_SP2_ENGLISH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_BASE                            WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_LANGUAGE_PACKS_64BIT_SQL_2008_R2_SP3_EXPRESS  WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_LANGUAGE_PACKS_64BIT_SQL_2008_R2_SP3_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_SP2_PORTUGUESE_BRAZIL_64BIT_BASE                     WindowsVersion = "WINDOWS_SERVER_2012_SP2_PORTUGUESE_BRAZIL_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP1_WEB                WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP1_WEB"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2014_SP3_EXPRESS           WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2014_SP3_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2016_SP2_ENTERPRISE        WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2016_SP2_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_BASE                              WindowsVersion = "WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2019_ENGLISH_FULL_CONTAINERSLATEST                        WindowsVersion = "WINDOWS_SERVER_2019_ENGLISH_FULL_CONTAINERSLATEST"
	WindowsVersion_WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2017_ENTERPRISE                     WindowsVersion = "WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2017_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_1709_ENGLISH_CORE_CONTAINERSLATEST                        WindowsVersion = "WINDOWS_SERVER_1709_ENGLISH_CORE_CONTAINERSLATEST"
	WindowsVersion_WINDOWS_SERVER_1803_ENGLISH_CORE_BASE                                    WindowsVersion = "WINDOWS_SERVER_1803_ENGLISH_CORE_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SQL_2012_SP4_WEB                WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SQL_2012_SP4_WEB"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_JAPANESE_64BIT_BASE                           WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_JAPANESE_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_SP2_ENGLISH_64BIT_SQL_2008_SP4_STANDARD              WindowsVersion = "WINDOWS_SERVER_2008_SP2_ENGLISH_64BIT_SQL_2008_SP4_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_BASE                            WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_PORTUGUESE_BRAZIL_64BIT_BASE                     WindowsVersion = "WINDOWS_SERVER_2012_RTM_PORTUGUESE_BRAZIL_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP1_WEB                        WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP1_WEB"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_P3                                           WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_P3"
	WindowsVersion_WINDOWS_SERVER_2016_JAPANESE_FULL_SQL_2016_SP1_ENTERPRISE                WindowsVersion = "WINDOWS_SERVER_2016_JAPANESE_FULL_SQL_2016_SP1_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2003_R2_SP2_LANGUAGE_PACKS_64BIT_BASE                     WindowsVersion = "WINDOWS_SERVER_2003_R2_SP2_LANGUAGE_PACKS_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_CHINESE_TRADITIONAL_HONG_KONG_64BIT_BASE      WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_CHINESE_TRADITIONAL_HONG_KONG_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP3_EXPRESS            WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP3_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP2_ENTERPRISE         WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP2_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_CHINESE_SIMPLIFIED_64BIT_BASE                    WindowsVersion = "WINDOWS_SERVER_2012_RTM_CHINESE_SIMPLIFIED_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2012_SP4_WEB                   WindowsVersion = "WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2012_SP4_WEB"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2014_SP3_WEB                  WindowsVersion = "WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2014_SP3_WEB"
	WindowsVersion_WINDOWS_SERVER_2016_JAPANESE_FULL_BASE                                   WindowsVersion = "WINDOWS_SERVER_2016_JAPANESE_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_JAPANESE_FULL_SQL_2016_SP1_EXPRESS                   WindowsVersion = "WINDOWS_SERVER_2016_JAPANESE_FULL_SQL_2016_SP1_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_1803_ENGLISH_CORE_CONTAINERSLATEST                        WindowsVersion = "WINDOWS_SERVER_1803_ENGLISH_CORE_CONTAINERSLATEST"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_JAPANESE_64BIT_SQL_2012_SP4_STANDARD          WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_JAPANESE_64BIT_SQL_2012_SP4_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_CORE                            WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_CORE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP2_WEB                WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP2_WEB"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP3_ENTERPRISE         WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2014_SP3_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2016_SP2_STANDARD          WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2016_SP2_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_2014_SP3_WEB                       WindowsVersion = "WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_2014_SP3_WEB"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_SWEDISH_64BIT_BASE                               WindowsVersion = "WINDOWS_SERVER_2012_RTM_SWEDISH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_CHINESE_SIMPLIFIED_FULL_BASE                         WindowsVersion = "WINDOWS_SERVER_2016_CHINESE_SIMPLIFIED_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2019_POLISH_FULL_BASE                                     WindowsVersion = "WINDOWS_SERVER_2019_POLISH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_JAPANESE_64BIT_SQL_2008_R2_SP3_WEB            WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_JAPANESE_64BIT_SQL_2008_R2_SP3_WEB"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_PORTUGUESE_BRAZIL_64BIT_BASE                  WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_PORTUGUESE_BRAZIL_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2016_SP1_ENTERPRISE        WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2016_SP1_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2016_SP2_EXPRESS              WindowsVersion = "WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2016_SP2_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2014_SP3_EXPRESS               WindowsVersion = "WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2014_SP3_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2014_SP2_STANDARD             WindowsVersion = "WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2014_SP2_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_CORE_BASE                                    WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_CORE_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2017_WEB                            WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2017_WEB"
	WindowsVersion_WINDOWS_SERVER_2019_GERMAN_FULL_BASE                                     WindowsVersion = "WINDOWS_SERVER_2019_GERMAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2003_R2_SP2_ENGLISH_64BIT_SQL_2005_SP4_STANDARD           WindowsVersion = "WINDOWS_SERVER_2003_R2_SP2_ENGLISH_64BIT_SQL_2005_SP4_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SQL_2012_SP4_ENTERPRISE         WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SQL_2012_SP4_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_JAPANESE_64BIT_SQL_2008_R2_SP3_EXPRESS        WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_JAPANESE_64BIT_SQL_2008_R2_SP3_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP1_ENTERPRISE         WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP1_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2014_SP2_WEB                   WindowsVersion = "WINDOWS_SERVER_2012_RTM_ENGLISH_64BIT_SQL_2014_SP2_WEB"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2008_R2_SP3_EXPRESS           WindowsVersion = "WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2008_R2_SP3_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2016_FRENCH_FULL_BASE                                     WindowsVersion = "WINDOWS_SERVER_2016_FRENCH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_JAPANESE_FULL_SQL_2016_SP2_ENTERPRISE                WindowsVersion = "WINDOWS_SERVER_2016_JAPANESE_FULL_SQL_2016_SP2_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2019_CZECH_FULL_BASE                                      WindowsVersion = "WINDOWS_SERVER_2019_CZECH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_1809_ENGLISH_CORE_BASE                                    WindowsVersion = "WINDOWS_SERVER_1809_ENGLISH_CORE_BASE"
	WindowsVersion_WINDOWS_SERVER_1809_ENGLISH_CORE_CONTAINERSLATEST                        WindowsVersion = "WINDOWS_SERVER_1809_ENGLISH_CORE_CONTAINERSLATEST"
	WindowsVersion_WINDOWS_SERVER_2003_R2_SP2_LANGUAGE_PACKS_64BIT_SQL_2005_SP4_EXPRESS     WindowsVersion = "WINDOWS_SERVER_2003_R2_SP2_LANGUAGE_PACKS_64BIT_SQL_2005_SP4_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_TURKISH_64BIT_BASE                            WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_TURKISH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2012_SP4_WEB                  WindowsVersion = "WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2012_SP4_WEB"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_POLISH_64BIT_BASE                                WindowsVersion = "WINDOWS_SERVER_2012_RTM_POLISH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_SPANISH_64BIT_BASE                               WindowsVersion = "WINDOWS_SERVER_2012_RTM_SPANISH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP1_ENTERPRISE                 WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP1_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2016_JAPANESE_FULL_SQL_2016_SP2_EXPRESS                   WindowsVersion = "WINDOWS_SERVER_2016_JAPANESE_FULL_SQL_2016_SP2_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2016_SP2_ENTERPRISE                 WindowsVersion = "WINDOWS_SERVER_2019_ENGLISH_FULL_SQL_2016_SP2_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_1709_ENGLISH_CORE_BASE                                    WindowsVersion = "WINDOWS_SERVER_1709_ENGLISH_CORE_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_ENGLISH_61BIT_SQL_2012_RTM_SP2_ENTERPRISE     WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_ENGLISH_61BIT_SQL_2012_RTM_SP2_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SQL_2012_SP4_STANDARD           WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SQL_2012_SP4_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2008_SP2_PORTUGUESE_BRAZIL_32BIT_BASE                     WindowsVersion = "WINDOWS_SERVER_2008_SP2_PORTUGUESE_BRAZIL_32BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2014_SP2_STANDARD          WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2014_SP2_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2012_SP4_EXPRESS              WindowsVersion = "WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2012_SP4_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_PORTUGUESE_PORTUGAL_64BIT_BASE                   WindowsVersion = "WINDOWS_SERVER_2012_RTM_PORTUGUESE_PORTUGAL_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_CZECH_FULL_BASE                                      WindowsVersion = "WINDOWS_SERVER_2016_CZECH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_JAPANESE_FULL_SQL_2016_SP1_STANDARD                  WindowsVersion = "WINDOWS_SERVER_2016_JAPANESE_FULL_SQL_2016_SP1_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2019_DUTCH_FULL_BASE                                      WindowsVersion = "WINDOWS_SERVER_2019_DUTCH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_CORE                            WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_CORE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP2_WEB                WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_SQL_2016_SP2_WEB"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_KOREAN_64BIT_BASE                             WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_KOREAN_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_DUTCH_64BIT_BASE                                 WindowsVersion = "WINDOWS_SERVER_2012_RTM_DUTCH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_64BIT_SQL_2012_SP4_ENTERPRISE                WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_64BIT_SQL_2012_SP4_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP1_STANDARD                   WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP1_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP2_EXPRESS                    WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP2_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP2_WEB                        WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP2_WEB"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2017_STANDARD                       WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2017_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2019_PORTUGUESE_BRAZIL_FULL_BASE                          WindowsVersion = "WINDOWS_SERVER_2019_PORTUGUESE_BRAZIL_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SQL_2008_R2_SP3_STANDARD        WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SQL_2008_R2_SP3_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SHAREPOINT_2010_SP2_FOUNDATION  WindowsVersion = "WINDOWS_SERVER_2008_R2_SP1_ENGLISH_64BIT_SHAREPOINT_2010_SP2_FOUNDATION"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_P3                                    WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_P3"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2014_SP3_STANDARD          WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_JAPANESE_64BIT_SQL_2014_SP3_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_SPANISH_64BIT_BASE                            WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_SPANISH_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2014_SP3_EXPRESS              WindowsVersion = "WINDOWS_SERVER_2012_RTM_JAPANESE_64BIT_SQL_2014_SP3_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP2_STANDARD                   WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_CORE_SQL_2016_SP2_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2016_JAPANESE_FULL_SQL_2016_SP2_STANDARD                  WindowsVersion = "WINDOWS_SERVER_2016_JAPANESE_FULL_SQL_2016_SP2_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2019_PORTUGUESE_PORTUGAL_FULL_BASE                        WindowsVersion = "WINDOWS_SERVER_2019_PORTUGUESE_PORTUGAL_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2019_SWEDISH_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2019_SWEDISH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_HYPERV                          WindowsVersion = "WINDOWS_SERVER_2012_R2_RTM_ENGLISH_64BIT_HYPERV"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_KOREAN_64BIT_BASE                                WindowsVersion = "WINDOWS_SERVER_2012_RTM_KOREAN_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2012_RTM_RUSSIAN_64BIT_BASE                               WindowsVersion = "WINDOWS_SERVER_2012_RTM_RUSSIAN_64BIT_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_CHINESE_TRADITIONAL_FULL_BASE                        WindowsVersion = "WINDOWS_SERVER_2016_CHINESE_TRADITIONAL_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP2_WEB                        WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2016_SP2_WEB"
	WindowsVersion_WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2017_EXPRESS                        WindowsVersion = "WINDOWS_SERVER_2016_ENGLISH_FULL_SQL_2017_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2022_JAPANESE_FULL_SQL_2019_ENTERPRISE                    WindowsVersion = "WINDOWS_SERVER_2022_JAPANESE_FULL_SQL_2019_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2022_PORTUGUESE_BRAZIL_FULL_BASE                          WindowsVersion = "WINDOWS_SERVER_2022_PORTUGUESE_BRAZIL_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_ITALIAN_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2022_ITALIAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_ENGLISH_FULL_CONTAINERSLATEST                        WindowsVersion = "WINDOWS_SERVER_2022_ENGLISH_FULL_CONTAINERSLATEST"
	WindowsVersion_WINDOWS_SERVER_2022_RUSSIAN_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2022_RUSSIAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2019_EXPRESS                        WindowsVersion = "WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2019_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2022_POLISH_FULL_BASE                                     WindowsVersion = "WINDOWS_SERVER_2022_POLISH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_ENGLISH_CORE_BASE                                    WindowsVersion = "WINDOWS_SERVER_2022_ENGLISH_CORE_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_HUNGARIAN_FULL_BASE                                  WindowsVersion = "WINDOWS_SERVER_2022_HUNGARIAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2017_EXPRESS                        WindowsVersion = "WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2017_EXPRESS"
	WindowsVersion_WINDOWS_SERVER_2022_GERMAN_FULL_BASE                                     WindowsVersion = "WINDOWS_SERVER_2022_GERMAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_ENGLISH_CORE_CONTAINERSLATEST                        WindowsVersion = "WINDOWS_SERVER_2022_ENGLISH_CORE_CONTAINERSLATEST"
	WindowsVersion_WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2019_STANDARD                       WindowsVersion = "WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2019_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2022_JAPANESE_FULL_SQL_2017_WEB                           WindowsVersion = "WINDOWS_SERVER_2022_JAPANESE_FULL_SQL_2017_WEB"
	WindowsVersion_WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2017_WEB                            WindowsVersion = "WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2017_WEB"
	WindowsVersion_WINDOWS_SERVER_2022_JAPANESE_FULL_BASE                                   WindowsVersion = "WINDOWS_SERVER_2022_JAPANESE_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_KOREAN_FULL_BASE                                     WindowsVersion = "WINDOWS_SERVER_2022_KOREAN_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_JAPANESE_FULL_SQL_2017_ENTERPRISE                    WindowsVersion = "WINDOWS_SERVER_2022_JAPANESE_FULL_SQL_2017_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2022_JAPANESE_FULL_SQL_2019_STANDARD                      WindowsVersion = "WINDOWS_SERVER_2022_JAPANESE_FULL_SQL_2019_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2022_CHINESE_SIMPLIFIED_FULL_BASE                         WindowsVersion = "WINDOWS_SERVER_2022_CHINESE_SIMPLIFIED_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2019_WEB                            WindowsVersion = "WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2019_WEB"
	WindowsVersion_WINDOWS_SERVER_2022_SPANISH_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2022_SPANISH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_ENGLISH_CORE_ECS_OPTIMIZED                           WindowsVersion = "WINDOWS_SERVER_2022_ENGLISH_CORE_ECS_OPTIMIZED"
	WindowsVersion_WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2017_STANDARD                       WindowsVersion = "WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2017_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2022_CHINESE_TRADITIONAL_FULL_BASE                        WindowsVersion = "WINDOWS_SERVER_2022_CHINESE_TRADITIONAL_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2019_ENTERPRISE                     WindowsVersion = "WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2019_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2022_FRENCH_FULL_BASE                                     WindowsVersion = "WINDOWS_SERVER_2022_FRENCH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_JAPANESE_FULL_SQL_2017_STANDARD                      WindowsVersion = "WINDOWS_SERVER_2022_JAPANESE_FULL_SQL_2017_STANDARD"
	WindowsVersion_WINDOWS_SERVER_2022_ENGLISH_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2022_ENGLISH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_JAPANESE_FULL_SQL_2019_WEB                           WindowsVersion = "WINDOWS_SERVER_2022_JAPANESE_FULL_SQL_2019_WEB"
	WindowsVersion_WINDOWS_SERVER_2022_TURKISH_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2022_TURKISH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2017_ENTERPRISE                     WindowsVersion = "WINDOWS_SERVER_2022_ENGLISH_FULL_SQL_2017_ENTERPRISE"
	WindowsVersion_WINDOWS_SERVER_2022_PORTUGUESE_PORTUGAL_FULL_BASE                        WindowsVersion = "WINDOWS_SERVER_2022_PORTUGUESE_PORTUGAL_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_CZECH_FULL_BASE                                      WindowsVersion = "WINDOWS_SERVER_2022_CZECH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_ENGLISH_FULL_ECS_OPTIMIZED                           WindowsVersion = "WINDOWS_SERVER_2022_ENGLISH_FULL_ECS_OPTIMIZED"
	WindowsVersion_WINDOWS_SERVER_2022_DUTCH_FULL_BASE                                      WindowsVersion = "WINDOWS_SERVER_2022_DUTCH_FULL_BASE"
	WindowsVersion_WINDOWS_SERVER_2022_SWEDISH_FULL_BASE                                    WindowsVersion = "WINDOWS_SERVER_2022_SWEDISH_FULL_BASE"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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