# Copyright (c) 2012-2022, Mark Peek <mark@peek.org>
# All rights reserved.
#
# See LICENSE file for full license.
#
# *** Do not modify - this file is autogenerated ***
from . import AWSObject, AWSProperty, PropsDictType, Tags
from .validators import boolean, double, integer
from .validators.ec2 import NO_DEVICE # noqa: F401
from .validators.ec2 import PERMISSION_EIP_ASSOCIATE # noqa: F401
from .validators.ec2 import PERMISSION_INSTANCE_ATTACH # noqa: F401
from .validators.ec2 import Ipv6Addresses # noqa: F401
from .validators.ec2 import Tag # noqa: F401
from .validators.ec2 import (
instance_tenancy,
policytypes,
validate_clientvpnendpoint_selfserviceportal,
validate_clientvpnendpoint_vpnport,
validate_elasticinferenceaccelerator_type,
validate_int_to_str,
validate_network_acl_entry,
validate_network_port,
validate_networkaclentry_rulenumber,
validate_placement_spread_level,
validate_placement_strategy,
validate_route,
validate_security_group_egress,
validate_security_group_ingress,
validate_spot_fleet_request_config_data,
validate_subnet,
validate_tags_or_list,
validate_vpn_connection,
vpc_endpoint_type,
vpn_pre_shared_key,
vpn_tunnel_inside_cidr,
)
[docs]class CapacityReservation(AWSObject):
"""
`CapacityReservation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html>`__
"""
resource_type = "AWS::EC2::CapacityReservation"
props: PropsDictType = {
"AvailabilityZone": (str, True),
"EbsOptimized": (boolean, False),
"EndDate": (str, False),
"EndDateType": (str, False),
"EphemeralStorage": (boolean, False),
"InstanceCount": (integer, True),
"InstanceMatchCriteria": (str, False),
"InstancePlatform": (str, True),
"InstanceType": (str, True),
"OutPostArn": (str, False),
"PlacementGroupArn": (str, False),
"TagSpecifications": ([TagSpecifications], False),
"Tenancy": (str, False),
}
[docs]class InstanceTypeSpecification(AWSProperty):
"""
`InstanceTypeSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html>`__
"""
props: PropsDictType = {
"AvailabilityZone": (str, False),
"AvailabilityZoneId": (str, False),
"EbsOptimized": (boolean, False),
"InstancePlatform": (str, False),
"InstanceType": (str, False),
"Priority": (integer, False),
"Weight": (double, False),
}
[docs]class CapacityReservationFleet(AWSObject):
"""
`CapacityReservationFleet <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html>`__
"""
resource_type = "AWS::EC2::CapacityReservationFleet"
props: PropsDictType = {
"AllocationStrategy": (str, False),
"EndDate": (str, False),
"InstanceMatchCriteria": (str, False),
"InstanceTypeSpecifications": ([InstanceTypeSpecification], False),
"NoRemoveEndDate": (boolean, False),
"RemoveEndDate": (boolean, False),
"TagSpecifications": ([TagSpecifications], False),
"Tenancy": (str, False),
"TotalTargetCapacity": (integer, False),
}
[docs]class CarrierGateway(AWSObject):
"""
`CarrierGateway <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-carriergateway.html>`__
"""
resource_type = "AWS::EC2::CarrierGateway"
props: PropsDictType = {
"Tags": (Tags, False),
"VpcId": (str, True),
}
[docs]class ClientVpnAuthorizationRule(AWSObject):
"""
`ClientVpnAuthorizationRule <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnauthorizationrule.html>`__
"""
resource_type = "AWS::EC2::ClientVpnAuthorizationRule"
props: PropsDictType = {
"AccessGroupId": (str, False),
"AuthorizeAllGroups": (boolean, False),
"ClientVpnEndpointId": (str, True),
"Description": (str, False),
"TargetNetworkCidr": (str, True),
}
[docs]class CertificateAuthenticationRequest(AWSProperty):
"""
`CertificateAuthenticationRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-certificateauthenticationrequest.html>`__
"""
props: PropsDictType = {
"ClientRootCertificateChainArn": (str, True),
}
[docs]class DirectoryServiceAuthenticationRequest(AWSProperty):
"""
`DirectoryServiceAuthenticationRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-directoryserviceauthenticationrequest.html>`__
"""
props: PropsDictType = {
"DirectoryId": (str, True),
}
[docs]class FederatedAuthenticationRequest(AWSProperty):
"""
`FederatedAuthenticationRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-federatedauthenticationrequest.html>`__
"""
props: PropsDictType = {
"SAMLProviderArn": (str, True),
"SelfServiceSAMLProviderArn": (str, False),
}
[docs]class ClientAuthenticationRequest(AWSProperty):
"""
`ClientAuthenticationRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html>`__
"""
props: PropsDictType = {
"ActiveDirectory": (DirectoryServiceAuthenticationRequest, False),
"FederatedAuthentication": (FederatedAuthenticationRequest, False),
"MutualAuthentication": (CertificateAuthenticationRequest, False),
"Type": (str, True),
}
[docs]class ClientConnectOptions(AWSProperty):
"""
`ClientConnectOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientconnectoptions.html>`__
"""
props: PropsDictType = {
"Enabled": (boolean, True),
"LambdaFunctionArn": (str, False),
}
[docs]class ClientLoginBannerOptions(AWSProperty):
"""
`ClientLoginBannerOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientloginbanneroptions.html>`__
"""
props: PropsDictType = {
"BannerText": (str, False),
"Enabled": (boolean, True),
}
[docs]class ConnectionLogOptions(AWSProperty):
"""
`ConnectionLogOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-connectionlogoptions.html>`__
"""
props: PropsDictType = {
"CloudwatchLogGroup": (str, False),
"CloudwatchLogStream": (str, False),
"Enabled": (boolean, True),
}
[docs]class ClientVpnEndpoint(AWSObject):
"""
`ClientVpnEndpoint <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html>`__
"""
resource_type = "AWS::EC2::ClientVpnEndpoint"
props: PropsDictType = {
"AuthenticationOptions": ([ClientAuthenticationRequest], True),
"ClientCidrBlock": (str, True),
"ClientConnectOptions": (ClientConnectOptions, False),
"ClientLoginBannerOptions": (ClientLoginBannerOptions, False),
"ConnectionLogOptions": (ConnectionLogOptions, True),
"Description": (str, False),
"DnsServers": ([str], False),
"SecurityGroupIds": ([str], False),
"SelfServicePortal": (validate_clientvpnendpoint_selfserviceportal, False),
"ServerCertificateArn": (str, True),
"SessionTimeoutHours": (integer, False),
"SplitTunnel": (boolean, False),
"TagSpecifications": ([TagSpecifications], False),
"TransportProtocol": (str, False),
"VpcId": (str, False),
"VpnPort": (validate_clientvpnendpoint_vpnport, False),
}
[docs]class ClientVpnRoute(AWSObject):
"""
`ClientVpnRoute <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnroute.html>`__
"""
resource_type = "AWS::EC2::ClientVpnRoute"
props: PropsDictType = {
"ClientVpnEndpointId": (str, True),
"Description": (str, False),
"DestinationCidrBlock": (str, True),
"TargetVpcSubnetId": (str, True),
}
[docs]class ClientVpnTargetNetworkAssociation(AWSObject):
"""
`ClientVpnTargetNetworkAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpntargetnetworkassociation.html>`__
"""
resource_type = "AWS::EC2::ClientVpnTargetNetworkAssociation"
props: PropsDictType = {
"ClientVpnEndpointId": (str, True),
"SubnetId": (str, True),
}
[docs]class CustomerGateway(AWSObject):
"""
`CustomerGateway <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html>`__
"""
resource_type = "AWS::EC2::CustomerGateway"
props: PropsDictType = {
"BgpAsn": (integer, False),
"BgpAsnExtended": (double, False),
"CertificateArn": (str, False),
"DeviceName": (str, False),
"IpAddress": (str, True),
"Tags": (validate_tags_or_list, False),
"Type": (str, True),
}
[docs]class DHCPOptions(AWSObject):
"""
`DHCPOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html>`__
"""
resource_type = "AWS::EC2::DHCPOptions"
props: PropsDictType = {
"DomainName": (str, False),
"DomainNameServers": ([str], False),
"Ipv6AddressPreferredLeaseTime": (integer, False),
"NetbiosNameServers": ([str], False),
"NetbiosNodeType": (integer, False),
"NtpServers": ([str], False),
"Tags": (validate_tags_or_list, False),
}
[docs]class AcceleratorCountRequest(AWSProperty):
"""
`AcceleratorCountRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratorcountrequest.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class AcceleratorTotalMemoryMiBRequest(AWSProperty):
"""
`AcceleratorTotalMemoryMiBRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class BaselineEbsBandwidthMbpsRequest(AWSProperty):
"""
`BaselineEbsBandwidthMbpsRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class MemoryGiBPerVCpuRequest(AWSProperty):
"""
`MemoryGiBPerVCpuRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorygibpervcpurequest.html>`__
"""
props: PropsDictType = {
"Max": (double, False),
"Min": (double, False),
}
[docs]class MemoryMiBRequest(AWSProperty):
"""
`MemoryMiBRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorymibrequest.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class NetworkBandwidthGbpsRequest(AWSProperty):
"""
`NetworkBandwidthGbpsRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-networkbandwidthgbpsrequest.html>`__
"""
props: PropsDictType = {
"Max": (double, False),
"Min": (double, False),
}
[docs]class NetworkInterfaceCountRequest(AWSProperty):
"""
`NetworkInterfaceCountRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-networkinterfacecountrequest.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class TotalLocalStorageGBRequest(AWSProperty):
"""
`TotalLocalStorageGBRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-totallocalstoragegbrequest.html>`__
"""
props: PropsDictType = {
"Max": (double, False),
"Min": (double, False),
}
[docs]class VCpuCountRangeRequest(AWSProperty):
"""
`VCpuCountRangeRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-vcpucountrangerequest.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class InstanceRequirementsRequest(AWSProperty):
"""
`InstanceRequirementsRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html>`__
"""
props: PropsDictType = {
"AcceleratorCount": (AcceleratorCountRequest, False),
"AcceleratorManufacturers": ([str], False),
"AcceleratorNames": ([str], False),
"AcceleratorTotalMemoryMiB": (AcceleratorTotalMemoryMiBRequest, False),
"AcceleratorTypes": ([str], False),
"AllowedInstanceTypes": ([str], False),
"BareMetal": (str, False),
"BaselineEbsBandwidthMbps": (BaselineEbsBandwidthMbpsRequest, False),
"BurstablePerformance": (str, False),
"CpuManufacturers": ([str], False),
"ExcludedInstanceTypes": ([str], False),
"InstanceGenerations": ([str], False),
"LocalStorage": (str, False),
"LocalStorageTypes": ([str], False),
"MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": (integer, False),
"MemoryGiBPerVCpu": (MemoryGiBPerVCpuRequest, False),
"MemoryMiB": (MemoryMiBRequest, False),
"NetworkBandwidthGbps": (NetworkBandwidthGbpsRequest, False),
"NetworkInterfaceCount": (NetworkInterfaceCountRequest, False),
"OnDemandMaxPricePercentageOverLowestPrice": (integer, False),
"RequireHibernateSupport": (boolean, False),
"SpotMaxPricePercentageOverLowestPrice": (integer, False),
"TotalLocalStorageGB": (TotalLocalStorageGBRequest, False),
"VCpuCount": (VCpuCountRangeRequest, False),
}
[docs]class Placement(AWSProperty):
"""
`Placement <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-placement.html>`__
"""
props: PropsDictType = {
"Affinity": (str, False),
"AvailabilityZone": (str, False),
"GroupId": (str, False),
"GroupName": (str, False),
"HostId": (str, False),
"HostResourceGroupArn": (str, False),
"PartitionNumber": (integer, False),
"SpreadDomain": (str, False),
"Tenancy": (str, False),
}
[docs]class FleetLaunchTemplateOverridesRequest(AWSProperty):
"""
`FleetLaunchTemplateOverridesRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html>`__
"""
props: PropsDictType = {
"AvailabilityZone": (str, False),
"InstanceRequirements": (InstanceRequirementsRequest, False),
"InstanceType": (str, False),
"MaxPrice": (str, False),
"Placement": (Placement, False),
"Priority": (double, False),
"SubnetId": (str, False),
"WeightedCapacity": (double, False),
}
[docs]class FleetLaunchTemplateSpecificationRequest(AWSProperty):
"""
`FleetLaunchTemplateSpecificationRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplatespecificationrequest.html>`__
"""
props: PropsDictType = {
"LaunchTemplateId": (str, False),
"LaunchTemplateName": (str, False),
"Version": (str, True),
}
[docs]class FleetLaunchTemplateConfigRequest(AWSProperty):
"""
`FleetLaunchTemplateConfigRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateconfigrequest.html>`__
"""
props: PropsDictType = {
"LaunchTemplateSpecification": (FleetLaunchTemplateSpecificationRequest, False),
"Overrides": ([FleetLaunchTemplateOverridesRequest], False),
}
[docs]class CapacityReservationOptionsRequest(AWSProperty):
"""
`CapacityReservationOptionsRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityreservationoptionsrequest.html>`__
"""
props: PropsDictType = {
"UsageStrategy": (str, False),
}
[docs]class OnDemandOptionsRequest(AWSProperty):
"""
`OnDemandOptionsRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html>`__
"""
props: PropsDictType = {
"AllocationStrategy": (str, False),
"CapacityReservationOptions": (CapacityReservationOptionsRequest, False),
"MaxTotalPrice": (str, False),
"MinTargetCapacity": (integer, False),
"SingleAvailabilityZone": (boolean, False),
"SingleInstanceType": (boolean, False),
}
[docs]class CapacityRebalance(AWSProperty):
"""
`CapacityRebalance <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityrebalance.html>`__
"""
props: PropsDictType = {
"ReplacementStrategy": (str, False),
"TerminationDelay": (integer, False),
}
[docs]class MaintenanceStrategies(AWSProperty):
"""
`MaintenanceStrategies <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-maintenancestrategies.html>`__
"""
props: PropsDictType = {
"CapacityRebalance": (CapacityRebalance, False),
}
[docs]class SpotOptionsRequest(AWSProperty):
"""
`SpotOptionsRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html>`__
"""
props: PropsDictType = {
"AllocationStrategy": (str, False),
"InstanceInterruptionBehavior": (str, False),
"InstancePoolsToUseCount": (integer, False),
"MaintenanceStrategies": (MaintenanceStrategies, False),
"MaxTotalPrice": (str, False),
"MinTargetCapacity": (integer, False),
"SingleAvailabilityZone": (boolean, False),
"SingleInstanceType": (boolean, False),
}
[docs]class TargetCapacitySpecificationRequest(AWSProperty):
"""
`TargetCapacitySpecificationRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html>`__
"""
props: PropsDictType = {
"DefaultTargetCapacityType": (str, False),
"OnDemandTargetCapacity": (integer, False),
"SpotTargetCapacity": (integer, False),
"TargetCapacityUnitType": (str, False),
"TotalTargetCapacity": (integer, True),
}
[docs]class EC2Fleet(AWSObject):
"""
`EC2Fleet <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html>`__
"""
resource_type = "AWS::EC2::EC2Fleet"
props: PropsDictType = {
"Context": (str, False),
"ExcessCapacityTerminationPolicy": (str, False),
"LaunchTemplateConfigs": ([FleetLaunchTemplateConfigRequest], True),
"OnDemandOptions": (OnDemandOptionsRequest, False),
"ReplaceUnhealthyInstances": (boolean, False),
"SpotOptions": (SpotOptionsRequest, False),
"TagSpecifications": ([TagSpecifications], False),
"TargetCapacitySpecification": (TargetCapacitySpecificationRequest, True),
"TerminateInstancesWithExpiration": (boolean, False),
"Type": (str, False),
"ValidFrom": (str, False),
"ValidUntil": (str, False),
}
[docs]class EIP(AWSObject):
"""
`EIP <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-eip.html>`__
"""
resource_type = "AWS::EC2::EIP"
props: PropsDictType = {
"Domain": (str, False),
"InstanceId": (str, False),
"NetworkBorderGroup": (str, False),
"PublicIpv4Pool": (str, False),
"Tags": (Tags, False),
"TransferAddress": (str, False),
}
[docs]class EIPAssociation(AWSObject):
"""
`EIPAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-eipassociation.html>`__
"""
resource_type = "AWS::EC2::EIPAssociation"
props: PropsDictType = {
"AllocationId": (str, False),
"InstanceId": (str, False),
"NetworkInterfaceId": (str, False),
"PrivateIpAddress": (str, False),
}
[docs]class EgressOnlyInternetGateway(AWSObject):
"""
`EgressOnlyInternetGateway <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html>`__
"""
resource_type = "AWS::EC2::EgressOnlyInternetGateway"
props: PropsDictType = {
"VpcId": (str, True),
}
[docs]class EnclaveCertificateIamRoleAssociation(AWSObject):
"""
`EnclaveCertificateIamRoleAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-enclavecertificateiamroleassociation.html>`__
"""
resource_type = "AWS::EC2::EnclaveCertificateIamRoleAssociation"
props: PropsDictType = {
"CertificateArn": (str, True),
"RoleArn": (str, True),
}
[docs]class DestinationOptions(AWSProperty):
"""
`DestinationOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-flowlog-destinationoptions.html>`__
"""
props: PropsDictType = {
"FileFormat": (str, True),
"HiveCompatiblePartitions": (boolean, True),
"PerHourPartition": (boolean, True),
}
[docs]class FlowLog(AWSObject):
"""
`FlowLog <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html>`__
"""
resource_type = "AWS::EC2::FlowLog"
props: PropsDictType = {
"DeliverCrossAccountRole": (str, False),
"DeliverLogsPermissionArn": (str, False),
"DestinationOptions": (DestinationOptions, False),
"LogDestination": (str, False),
"LogDestinationType": (str, False),
"LogFormat": (str, False),
"LogGroupName": (str, False),
"MaxAggregationInterval": (integer, False),
"ResourceId": (str, True),
"ResourceType": (str, True),
"Tags": (Tags, False),
"TrafficType": (str, False),
}
[docs]class GatewayRouteTableAssociation(AWSObject):
"""
`GatewayRouteTableAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-gatewayroutetableassociation.html>`__
"""
resource_type = "AWS::EC2::GatewayRouteTableAssociation"
props: PropsDictType = {
"GatewayId": (str, True),
"RouteTableId": (str, True),
}
[docs]class Host(AWSObject):
"""
`Host <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html>`__
"""
resource_type = "AWS::EC2::Host"
props: PropsDictType = {
"AssetId": (str, False),
"AutoPlacement": (str, False),
"AvailabilityZone": (str, True),
"HostMaintenance": (str, False),
"HostRecovery": (str, False),
"InstanceFamily": (str, False),
"InstanceType": (str, False),
"OutpostArn": (str, False),
}
[docs]class IpamOperatingRegion(AWSProperty):
"""
`IpamOperatingRegion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipamresourcediscovery-ipamoperatingregion.html>`__
"""
props: PropsDictType = {
"RegionName": (str, True),
}
[docs]class IPAM(AWSObject):
"""
`IPAM <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html>`__
"""
resource_type = "AWS::EC2::IPAM"
props: PropsDictType = {
"Description": (str, False),
"OperatingRegions": ([IpamOperatingRegion], False),
"Tags": (Tags, False),
"Tier": (str, False),
}
[docs]class IPAMAllocation(AWSObject):
"""
`IPAMAllocation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamallocation.html>`__
"""
resource_type = "AWS::EC2::IPAMAllocation"
props: PropsDictType = {
"Cidr": (str, False),
"Description": (str, False),
"IpamPoolId": (str, True),
"NetmaskLength": (integer, False),
}
[docs]class ProvisionedCidr(AWSProperty):
"""
`ProvisionedCidr <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipampool-provisionedcidr.html>`__
"""
props: PropsDictType = {
"Cidr": (str, True),
}
[docs]class SourceResource(AWSProperty):
"""
`SourceResource <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipampool-sourceresource.html>`__
"""
props: PropsDictType = {
"ResourceId": (str, True),
"ResourceOwner": (str, True),
"ResourceRegion": (str, True),
"ResourceType": (str, True),
}
[docs]class IPAMPool(AWSObject):
"""
`IPAMPool <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html>`__
"""
resource_type = "AWS::EC2::IPAMPool"
props: PropsDictType = {
"AddressFamily": (str, True),
"AllocationDefaultNetmaskLength": (integer, False),
"AllocationMaxNetmaskLength": (integer, False),
"AllocationMinNetmaskLength": (integer, False),
"AllocationResourceTags": (Tags, False),
"AutoImport": (boolean, False),
"AwsService": (str, False),
"Description": (str, False),
"IpamScopeId": (str, True),
"Locale": (str, False),
"ProvisionedCidrs": ([ProvisionedCidr], False),
"PublicIpSource": (str, False),
"PubliclyAdvertisable": (boolean, False),
"SourceIpamPoolId": (str, False),
"SourceResource": (SourceResource, False),
"Tags": (Tags, False),
}
[docs]class IPAMPoolCidr(AWSObject):
"""
`IPAMPoolCidr <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampoolcidr.html>`__
"""
resource_type = "AWS::EC2::IPAMPoolCidr"
props: PropsDictType = {
"Cidr": (str, False),
"IpamPoolId": (str, True),
"NetmaskLength": (integer, False),
}
[docs]class IPAMResourceDiscovery(AWSObject):
"""
`IPAMResourceDiscovery <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamresourcediscovery.html>`__
"""
resource_type = "AWS::EC2::IPAMResourceDiscovery"
props: PropsDictType = {
"Description": (str, False),
"OperatingRegions": ([IpamOperatingRegion], False),
"Tags": (Tags, False),
}
[docs]class IPAMResourceDiscoveryAssociation(AWSObject):
"""
`IPAMResourceDiscoveryAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamresourcediscoveryassociation.html>`__
"""
resource_type = "AWS::EC2::IPAMResourceDiscoveryAssociation"
props: PropsDictType = {
"IpamId": (str, True),
"IpamResourceDiscoveryId": (str, True),
"Tags": (Tags, False),
}
[docs]class IPAMScope(AWSObject):
"""
`IPAMScope <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html>`__
"""
resource_type = "AWS::EC2::IPAMScope"
props: PropsDictType = {
"Description": (str, False),
"IpamId": (str, True),
"Tags": (Tags, False),
}
[docs]class EBSBlockDevice(AWSProperty):
"""
`EBSBlockDevice <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ebs.html>`__
"""
props: PropsDictType = {
"DeleteOnTermination": (boolean, False),
"Encrypted": (boolean, False),
"Iops": (integer, False),
"KmsKeyId": (str, False),
"SnapshotId": (str, False),
"Throughput": (integer, False),
"VolumeSize": (integer, False),
"VolumeType": (str, False),
}
[docs]class BlockDeviceMapping(AWSProperty):
"""
`BlockDeviceMapping <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-blockdevicemapping.html>`__
"""
props: PropsDictType = {
"DeviceName": (str, True),
"Ebs": (EBSBlockDevice, False),
"NoDevice": (dict, False),
"VirtualName": (str, False),
}
[docs]class CpuOptions(AWSProperty):
"""
`CpuOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-cpuoptions.html>`__
"""
props: PropsDictType = {
"AmdSevSnp": (str, False),
"CoreCount": (integer, False),
"ThreadsPerCore": (integer, False),
}
[docs]class CreditSpecification(AWSProperty):
"""
`CreditSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-creditspecification.html>`__
"""
props: PropsDictType = {
"CPUCredits": (str, False),
}
[docs]class ElasticGpuSpecification(AWSProperty):
"""
`ElasticGpuSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-elasticgpuspecification.html>`__
"""
props: PropsDictType = {
"Type": (str, False),
}
[docs]class ElasticInferenceAccelerator(AWSProperty):
"""
`ElasticInferenceAccelerator <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticinferenceaccelerator.html>`__
"""
props: PropsDictType = {
"Count": (integer, False),
"Type": (validate_elasticinferenceaccelerator_type, True),
}
[docs]class EnclaveOptions(AWSProperty):
"""
`EnclaveOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-enclaveoptions.html>`__
"""
props: PropsDictType = {
"Enabled": (boolean, False),
}
[docs]class HibernationOptions(AWSProperty):
"""
`HibernationOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-hibernationoptions.html>`__
"""
props: PropsDictType = {
"Configured": (boolean, False),
}
[docs]class InstanceIpv6Address(AWSProperty):
"""
`InstanceIpv6Address <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instanceipv6address.html>`__
"""
props: PropsDictType = {
"Ipv6Address": (str, True),
}
[docs]class LaunchTemplateSpecification(AWSProperty):
"""
`LaunchTemplateSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html>`__
"""
props: PropsDictType = {
"LaunchTemplateId": (str, False),
"LaunchTemplateName": (str, False),
"Version": (str, True),
}
[docs]class LicenseSpecification(AWSProperty):
"""
`LicenseSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-licensespecification.html>`__
"""
props: PropsDictType = {
"LicenseConfigurationArn": (str, False),
}
[docs]class PrivateIpAddressSpecification(AWSProperty):
"""
`PrivateIpAddressSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-privateipaddressspecification.html>`__
"""
props: PropsDictType = {
"Primary": (boolean, False),
"PrivateIpAddress": (str, True),
}
[docs]class NetworkInterfaceProperty(AWSProperty):
"""
`NetworkInterfaceProperty <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-networkinterface.html>`__
"""
props: PropsDictType = {
"AssociateCarrierIpAddress": (boolean, False),
"AssociatePublicIpAddress": (boolean, False),
"DeleteOnTermination": (boolean, False),
"Description": (str, False),
"DeviceIndex": (validate_int_to_str, True),
"GroupSet": ([str], False),
"Ipv6AddressCount": (integer, False),
"Ipv6Addresses": ([InstanceIpv6Address], False),
"NetworkInterfaceId": (str, False),
"PrivateIpAddress": (str, False),
"PrivateIpAddresses": ([PrivateIpAddressSpecification], False),
"SecondaryPrivateIpAddressCount": (integer, False),
"SubnetId": (str, False),
}
[docs]class PrivateDnsNameOptions(AWSProperty):
"""
`PrivateDnsNameOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-privatednsnameoptions.html>`__
"""
props: PropsDictType = {
"EnableResourceNameDnsAAAARecord": (boolean, False),
"EnableResourceNameDnsARecord": (boolean, False),
"HostnameType": (str, False),
}
[docs]class AssociationParameters(AWSProperty):
"""
`AssociationParameters <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-associationparameter.html>`__
"""
props: PropsDictType = {
"Key": (str, True),
"Value": ([str], True),
}
[docs]class SsmAssociations(AWSProperty):
"""
`SsmAssociations <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociation.html>`__
"""
props: PropsDictType = {
"AssociationParameters": ([AssociationParameters], False),
"DocumentName": (str, True),
}
[docs]class Instance(AWSObject):
"""
`Instance <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html>`__
"""
resource_type = "AWS::EC2::Instance"
props: PropsDictType = {
"AdditionalInfo": (str, False),
"Affinity": (str, False),
"AvailabilityZone": (str, False),
"BlockDeviceMappings": ([BlockDeviceMapping], False),
"CpuOptions": (CpuOptions, False),
"CreditSpecification": (CreditSpecification, False),
"DisableApiTermination": (boolean, False),
"EbsOptimized": (boolean, False),
"ElasticGpuSpecifications": ([ElasticGpuSpecification], False),
"ElasticInferenceAccelerators": ([ElasticInferenceAccelerator], False),
"EnclaveOptions": (EnclaveOptions, False),
"HibernationOptions": (HibernationOptions, False),
"HostId": (str, False),
"HostResourceGroupArn": (str, False),
"IamInstanceProfile": (str, False),
"ImageId": (str, False),
"InstanceInitiatedShutdownBehavior": (str, False),
"InstanceType": (str, False),
"Ipv6AddressCount": (integer, False),
"Ipv6Addresses": ([InstanceIpv6Address], False),
"KernelId": (str, False),
"KeyName": (str, False),
"LaunchTemplate": (LaunchTemplateSpecification, False),
"LicenseSpecifications": ([LicenseSpecification], False),
"Monitoring": (boolean, False),
"NetworkInterfaces": ([NetworkInterfaceProperty], False),
"PlacementGroupName": (str, False),
"PrivateDnsNameOptions": (PrivateDnsNameOptions, False),
"PrivateIpAddress": (str, False),
"PropagateTagsToVolumeOnCreation": (boolean, False),
"RamdiskId": (str, False),
"SecurityGroupIds": (list, False),
"SecurityGroups": ([str], False),
"SourceDestCheck": (boolean, False),
"SsmAssociations": ([SsmAssociations], False),
"SubnetId": (str, False),
"Tags": (validate_tags_or_list, False),
"Tenancy": (str, False),
"UserData": (str, False),
"Volumes": (list, False),
}
[docs]class InstanceConnectEndpoint(AWSObject):
"""
`InstanceConnectEndpoint <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html>`__
"""
resource_type = "AWS::EC2::InstanceConnectEndpoint"
props: PropsDictType = {
"ClientToken": (str, False),
"PreserveClientIp": (boolean, False),
"SecurityGroupIds": ([str], False),
"SubnetId": (str, True),
"Tags": (Tags, False),
}
[docs]class InternetGateway(AWSObject):
"""
`InternetGateway <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-internetgateway.html>`__
"""
resource_type = "AWS::EC2::InternetGateway"
props: PropsDictType = {
"Tags": (validate_tags_or_list, False),
}
[docs]class KeyPair(AWSObject):
"""
`KeyPair <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-keypair.html>`__
"""
resource_type = "AWS::EC2::KeyPair"
props: PropsDictType = {
"KeyFormat": (str, False),
"KeyName": (str, True),
"KeyType": (str, False),
"PublicKeyMaterial": (str, False),
"Tags": (Tags, False),
}
[docs]class CapacityReservationTarget(AWSProperty):
"""
`CapacityReservationTarget <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html>`__
"""
props: PropsDictType = {
"CapacityReservationId": (str, False),
"CapacityReservationResourceGroupArn": (str, False),
}
[docs]class CapacityReservationSpecification(AWSProperty):
"""
`CapacityReservationSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationspecification.html>`__
"""
props: PropsDictType = {
"CapacityReservationPreference": (str, False),
"CapacityReservationTarget": (CapacityReservationTarget, False),
}
[docs]class IamInstanceProfile(AWSProperty):
"""
`IamInstanceProfile <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-iaminstanceprofile.html>`__
"""
props: PropsDictType = {
"Arn": (str, False),
"Name": (str, False),
}
[docs]class SpotOptions(AWSProperty):
"""
`SpotOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-spotoptions.html>`__
"""
props: PropsDictType = {
"BlockDurationMinutes": (integer, False),
"InstanceInterruptionBehavior": (str, False),
"MaxPrice": (str, False),
"SpotInstanceType": (str, False),
"ValidUntil": (str, False),
}
[docs]class InstanceMarketOptions(AWSProperty):
"""
`InstanceMarketOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-instancemarketoptions.html>`__
"""
props: PropsDictType = {
"MarketType": (str, False),
"SpotOptions": (SpotOptions, False),
}
[docs]class AcceleratorCount(AWSProperty):
"""
`AcceleratorCount <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratorcount.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class AcceleratorTotalMemoryMiB(AWSProperty):
"""
`AcceleratorTotalMemoryMiB <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratortotalmemorymib.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class BaselineEbsBandwidthMbps(AWSProperty):
"""
`BaselineEbsBandwidthMbps <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-baselineebsbandwidthmbps.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class MemoryGiBPerVCpu(AWSProperty):
"""
`MemoryGiBPerVCpu <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorygibpervcpu.html>`__
"""
props: PropsDictType = {
"Max": (double, False),
"Min": (double, False),
}
[docs]class MemoryMiB(AWSProperty):
"""
`MemoryMiB <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorymib.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class NetworkBandwidthGbps(AWSProperty):
"""
`NetworkBandwidthGbps <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkbandwidthgbps.html>`__
"""
props: PropsDictType = {
"Max": (double, False),
"Min": (double, False),
}
[docs]class NetworkInterfaceCount(AWSProperty):
"""
`NetworkInterfaceCount <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterfacecount.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class TotalLocalStorageGB(AWSProperty):
"""
`TotalLocalStorageGB <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-totallocalstoragegb.html>`__
"""
props: PropsDictType = {
"Max": (double, False),
"Min": (double, False),
}
[docs]class VCpuCount(AWSProperty):
"""
`VCpuCount <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-vcpucount.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class InstanceRequirements(AWSProperty):
"""
`InstanceRequirements <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-instancerequirements.html>`__
"""
props: PropsDictType = {
"AcceleratorCount": (AcceleratorCount, False),
"AcceleratorManufacturers": ([str], False),
"AcceleratorNames": ([str], False),
"AcceleratorTotalMemoryMiB": (AcceleratorTotalMemoryMiB, False),
"AcceleratorTypes": ([str], False),
"AllowedInstanceTypes": ([str], False),
"BareMetal": (str, False),
"BaselineEbsBandwidthMbps": (BaselineEbsBandwidthMbps, False),
"BurstablePerformance": (str, False),
"CpuManufacturers": ([str], False),
"ExcludedInstanceTypes": ([str], False),
"InstanceGenerations": ([str], False),
"LocalStorage": (str, False),
"LocalStorageTypes": ([str], False),
"MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": (integer, False),
"MemoryGiBPerVCpu": (MemoryGiBPerVCpu, False),
"MemoryMiB": (MemoryMiB, False),
"NetworkBandwidthGbps": (NetworkBandwidthGbps, False),
"NetworkInterfaceCount": (NetworkInterfaceCount, False),
"OnDemandMaxPricePercentageOverLowestPrice": (integer, False),
"RequireHibernateSupport": (boolean, False),
"SpotMaxPricePercentageOverLowestPrice": (integer, False),
"TotalLocalStorageGB": (TotalLocalStorageGB, False),
"VCpuCount": (VCpuCount, False),
}
[docs]class LaunchTemplateBlockDeviceMapping(AWSProperty):
"""
`LaunchTemplateBlockDeviceMapping <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html>`__
"""
props: PropsDictType = {
"DeviceName": (str, False),
"Ebs": (EBSBlockDevice, False),
"NoDevice": (str, False),
"VirtualName": (str, False),
}
[docs]class LaunchTemplateCreditSpecification(AWSProperty):
"""
`LaunchTemplateCreditSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-creditspecification.html>`__
"""
props: PropsDictType = {
"CpuCredits": (str, False),
}
[docs]class LaunchTemplateElasticInferenceAccelerator(AWSProperty):
"""
`LaunchTemplateElasticInferenceAccelerator <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator.html>`__
"""
props: PropsDictType = {
"Count": (integer, False),
"Type": (validate_elasticinferenceaccelerator_type, False),
}
[docs]class MaintenanceOptions(AWSProperty):
"""
`MaintenanceOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-maintenanceoptions.html>`__
"""
props: PropsDictType = {
"AutoRecovery": (str, False),
}
[docs]class Monitoring(AWSProperty):
"""
`Monitoring <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetmonitoring.html>`__
"""
props: PropsDictType = {
"Enabled": (boolean, False),
}
[docs]class ConnectionTrackingSpecification(AWSProperty):
"""
`ConnectionTrackingSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-connectiontrackingspecification.html>`__
"""
props: PropsDictType = {
"TcpEstablishedTimeout": (integer, False),
"UdpStreamTimeout": (integer, False),
"UdpTimeout": (integer, False),
}
[docs]class EnaSrdUdpSpecification(AWSProperty):
"""
`EnaSrdUdpSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterfaceattachment-enasrdudpspecification.html>`__
"""
props: PropsDictType = {
"EnaSrdUdpEnabled": (boolean, False),
}
[docs]class EnaSrdSpecification(AWSProperty):
"""
`EnaSrdSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterfaceattachment-enasrdspecification.html>`__
"""
props: PropsDictType = {
"EnaSrdEnabled": (boolean, False),
"EnaSrdUdpSpecification": (EnaSrdUdpSpecification, False),
}
[docs]class Ipv4PrefixSpecification(AWSProperty):
"""
`Ipv4PrefixSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-ipv4prefixspecification.html>`__
"""
props: PropsDictType = {
"Ipv4Prefix": (str, True),
}
[docs]class Ipv6Add(AWSProperty):
"""
`Ipv6Add <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv6add.html>`__
"""
props: PropsDictType = {
"Ipv6Address": (str, False),
}
[docs]class Ipv6PrefixSpecification(AWSProperty):
"""
`Ipv6PrefixSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-ipv6prefixspecification.html>`__
"""
props: PropsDictType = {
"Ipv6Prefix": (str, True),
}
[docs]class NetworkInterfaces(AWSProperty):
"""
`NetworkInterfaces <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html>`__
"""
props: PropsDictType = {
"AssociateCarrierIpAddress": (boolean, False),
"AssociatePublicIpAddress": (boolean, False),
"ConnectionTrackingSpecification": (ConnectionTrackingSpecification, False),
"DeleteOnTermination": (boolean, False),
"Description": (str, False),
"DeviceIndex": (integer, False),
"EnaSrdSpecification": (EnaSrdSpecification, False),
"Groups": ([str], False),
"InterfaceType": (str, False),
"Ipv4PrefixCount": (integer, False),
"Ipv4Prefixes": ([Ipv4PrefixSpecification], False),
"Ipv6AddressCount": (integer, False),
"Ipv6Addresses": ([Ipv6Add], False),
"Ipv6PrefixCount": (integer, False),
"Ipv6Prefixes": ([Ipv6PrefixSpecification], False),
"NetworkCardIndex": (integer, False),
"NetworkInterfaceId": (str, False),
"PrimaryIpv6": (boolean, False),
"PrivateIpAddress": (str, False),
"PrivateIpAddresses": ([PrivateIpAddressSpecification], False),
"SecondaryPrivateIpAddressCount": (integer, False),
"SubnetId": (str, False),
}
[docs]class LaunchTemplateData(AWSProperty):
"""
`LaunchTemplateData <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html>`__
"""
props: PropsDictType = {
"BlockDeviceMappings": ([LaunchTemplateBlockDeviceMapping], False),
"CapacityReservationSpecification": (CapacityReservationSpecification, False),
"CpuOptions": (CpuOptions, False),
"CreditSpecification": (LaunchTemplateCreditSpecification, False),
"DisableApiStop": (boolean, False),
"DisableApiTermination": (boolean, False),
"EbsOptimized": (boolean, False),
"ElasticGpuSpecifications": ([ElasticGpuSpecification], False),
"ElasticInferenceAccelerators": (
[LaunchTemplateElasticInferenceAccelerator],
False,
),
"EnclaveOptions": (EnclaveOptions, False),
"HibernationOptions": (HibernationOptions, False),
"IamInstanceProfile": (IamInstanceProfile, False),
"ImageId": (str, False),
"InstanceInitiatedShutdownBehavior": (str, False),
"InstanceMarketOptions": (InstanceMarketOptions, False),
"InstanceRequirements": (InstanceRequirements, False),
"InstanceType": (str, False),
"KernelId": (str, False),
"KeyName": (str, False),
"LicenseSpecifications": ([LicenseSpecification], False),
"MaintenanceOptions": (MaintenanceOptions, False),
"MetadataOptions": (MetadataOptions, False),
"Monitoring": (Monitoring, False),
"NetworkInterfaces": ([NetworkInterfaces], False),
"Placement": (Placement, False),
"PrivateDnsNameOptions": (PrivateDnsNameOptions, False),
"RamDiskId": (str, False),
"SecurityGroupIds": ([str], False),
"SecurityGroups": ([str], False),
"TagSpecifications": ([TagSpecifications], False),
"UserData": (str, False),
}
[docs]class LaunchTemplate(AWSObject):
"""
`LaunchTemplate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html>`__
"""
resource_type = "AWS::EC2::LaunchTemplate"
props: PropsDictType = {
"LaunchTemplateData": (LaunchTemplateData, True),
"LaunchTemplateName": (str, False),
"TagSpecifications": ([TagSpecifications], False),
"VersionDescription": (str, False),
}
[docs]class LocalGatewayRoute(AWSObject):
"""
`LocalGatewayRoute <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroute.html>`__
"""
resource_type = "AWS::EC2::LocalGatewayRoute"
props: PropsDictType = {
"DestinationCidrBlock": (str, True),
"LocalGatewayRouteTableId": (str, True),
"LocalGatewayVirtualInterfaceGroupId": (str, False),
"NetworkInterfaceId": (str, False),
}
[docs]class LocalGatewayRouteTable(AWSObject):
"""
`LocalGatewayRouteTable <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetable.html>`__
"""
resource_type = "AWS::EC2::LocalGatewayRouteTable"
props: PropsDictType = {
"LocalGatewayId": (str, True),
"Mode": (str, False),
"Tags": (Tags, False),
}
[docs]class LocalGatewayRouteTableVPCAssociation(AWSObject):
"""
`LocalGatewayRouteTableVPCAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevpcassociation.html>`__
"""
resource_type = "AWS::EC2::LocalGatewayRouteTableVPCAssociation"
props: PropsDictType = {
"LocalGatewayRouteTableId": (str, True),
"Tags": (validate_tags_or_list, False),
"VpcId": (str, True),
}
[docs]class LocalGatewayRouteTableVirtualInterfaceGroupAssociation(AWSObject):
"""
`LocalGatewayRouteTableVirtualInterfaceGroupAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevirtualinterfacegroupassociation.html>`__
"""
resource_type = "AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation"
props: PropsDictType = {
"LocalGatewayRouteTableId": (str, True),
"LocalGatewayVirtualInterfaceGroupId": (str, True),
"Tags": (Tags, False),
}
[docs]class NatGateway(AWSObject):
"""
`NatGateway <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html>`__
"""
resource_type = "AWS::EC2::NatGateway"
props: PropsDictType = {
"AllocationId": (str, False),
"ConnectivityType": (str, False),
"MaxDrainDurationSeconds": (integer, False),
"PrivateIpAddress": (str, False),
"SecondaryAllocationIds": ([str], False),
"SecondaryPrivateIpAddressCount": (integer, False),
"SecondaryPrivateIpAddresses": ([str], False),
"SubnetId": (str, True),
"Tags": (validate_tags_or_list, False),
}
[docs]class NetworkAcl(AWSObject):
"""
`NetworkAcl <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkacl.html>`__
"""
resource_type = "AWS::EC2::NetworkAcl"
props: PropsDictType = {
"Tags": (validate_tags_or_list, False),
"VpcId": (str, True),
}
[docs]class ICMP(AWSProperty):
"""
`ICMP <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-icmp.html>`__
"""
props: PropsDictType = {
"Code": (integer, False),
"Type": (integer, False),
}
[docs]class PortRange(AWSProperty):
"""
`PortRange <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-portrange.html>`__
"""
props: PropsDictType = {
"From": (validate_network_port, False),
"To": (validate_network_port, False),
}
[docs]class NetworkAclEntry(AWSObject):
"""
`NetworkAclEntry <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html>`__
"""
resource_type = "AWS::EC2::NetworkAclEntry"
props: PropsDictType = {
"CidrBlock": (str, False),
"Egress": (boolean, False),
"Icmp": (ICMP, False),
"Ipv6CidrBlock": (str, False),
"NetworkAclId": (str, True),
"PortRange": (PortRange, False),
"Protocol": (validate_network_port, True),
"RuleAction": (str, True),
"RuleNumber": (validate_networkaclentry_rulenumber, True),
}
[docs] def validate(self):
validate_network_acl_entry(self)
[docs]class ResourceStatementRequest(AWSProperty):
"""
`ResourceStatementRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-resourcestatementrequest.html>`__
"""
props: PropsDictType = {
"ResourceTypes": ([str], False),
"Resources": ([str], False),
}
[docs]class PathStatementRequest(AWSProperty):
"""
`PathStatementRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-pathstatementrequest.html>`__
"""
props: PropsDictType = {
"PacketHeaderStatement": (PacketHeaderStatementRequest, False),
"ResourceStatement": (ResourceStatementRequest, False),
}
[docs]class ThroughResourcesStatementRequest(AWSProperty):
"""
`ThroughResourcesStatementRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-throughresourcesstatementrequest.html>`__
"""
props: PropsDictType = {
"ResourceStatement": (ResourceStatementRequest, False),
}
[docs]class AccessScopePathRequest(AWSProperty):
"""
`AccessScopePathRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-accessscopepathrequest.html>`__
"""
props: PropsDictType = {
"Destination": (PathStatementRequest, False),
"Source": (PathStatementRequest, False),
"ThroughResources": ([ThroughResourcesStatementRequest], False),
}
[docs]class NetworkInsightsAccessScope(AWSObject):
"""
`NetworkInsightsAccessScope <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsaccessscope.html>`__
"""
resource_type = "AWS::EC2::NetworkInsightsAccessScope"
props: PropsDictType = {
"ExcludePaths": ([AccessScopePathRequest], False),
"MatchPaths": ([AccessScopePathRequest], False),
"Tags": (Tags, False),
}
[docs]class NetworkInsightsAccessScopeAnalysis(AWSObject):
"""
`NetworkInsightsAccessScopeAnalysis <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsaccessscopeanalysis.html>`__
"""
resource_type = "AWS::EC2::NetworkInsightsAccessScopeAnalysis"
props: PropsDictType = {
"NetworkInsightsAccessScopeId": (str, True),
"Tags": (Tags, False),
}
[docs]class NetworkInsightsAnalysis(AWSObject):
"""
`NetworkInsightsAnalysis <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html>`__
"""
resource_type = "AWS::EC2::NetworkInsightsAnalysis"
props: PropsDictType = {
"AdditionalAccounts": ([str], False),
"FilterInArns": ([str], False),
"NetworkInsightsPathId": (str, True),
"Tags": (Tags, False),
}
[docs]class FilterPortRange(AWSProperty):
"""
`FilterPortRange <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightspath-filterportrange.html>`__
"""
props: PropsDictType = {
"FromPort": (integer, False),
"ToPort": (integer, False),
}
[docs]class PathFilter(AWSProperty):
"""
`PathFilter <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightspath-pathfilter.html>`__
"""
props: PropsDictType = {
"DestinationAddress": (str, False),
"DestinationPortRange": (FilterPortRange, False),
"SourceAddress": (str, False),
"SourcePortRange": (FilterPortRange, False),
}
[docs]class NetworkInsightsPath(AWSObject):
"""
`NetworkInsightsPath <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html>`__
"""
resource_type = "AWS::EC2::NetworkInsightsPath"
props: PropsDictType = {
"Destination": (str, False),
"DestinationIp": (str, False),
"DestinationPort": (integer, False),
"FilterAtDestination": (PathFilter, False),
"FilterAtSource": (PathFilter, False),
"Protocol": (str, True),
"Source": (str, True),
"SourceIp": (str, False),
"Tags": (Tags, False),
}
[docs]class NetworkInterface(AWSObject):
"""
`NetworkInterface <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html>`__
"""
resource_type = "AWS::EC2::NetworkInterface"
props: PropsDictType = {
"ConnectionTrackingSpecification": (ConnectionTrackingSpecification, False),
"Description": (str, False),
"GroupSet": ([str], False),
"InterfaceType": (str, False),
"Ipv4PrefixCount": (integer, False),
"Ipv4Prefixes": ([Ipv4PrefixSpecification], False),
"Ipv6AddressCount": (integer, False),
"Ipv6Addresses": ([InstanceIpv6Address], False),
"Ipv6PrefixCount": (integer, False),
"Ipv6Prefixes": ([Ipv6PrefixSpecification], False),
"PrivateIpAddress": (str, False),
"PrivateIpAddresses": ([PrivateIpAddressSpecification], False),
"SecondaryPrivateIpAddressCount": (integer, False),
"SourceDestCheck": (boolean, False),
"SubnetId": (str, True),
"Tags": (validate_tags_or_list, False),
}
[docs]class NetworkInterfaceAttachment(AWSObject):
"""
`NetworkInterfaceAttachment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfaceattachment.html>`__
"""
resource_type = "AWS::EC2::NetworkInterfaceAttachment"
props: PropsDictType = {
"DeleteOnTermination": (boolean, False),
"DeviceIndex": (validate_int_to_str, True),
"EnaSrdSpecification": (EnaSrdSpecification, False),
"InstanceId": (str, True),
"NetworkInterfaceId": (str, True),
}
[docs]class NetworkInterfacePermission(AWSObject):
"""
`NetworkInterfacePermission <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html>`__
"""
resource_type = "AWS::EC2::NetworkInterfacePermission"
props: PropsDictType = {
"AwsAccountId": (str, True),
"NetworkInterfaceId": (str, True),
"Permission": (str, True),
}
[docs]class PlacementGroup(AWSObject):
"""
`PlacementGroup <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-placementgroup.html>`__
"""
resource_type = "AWS::EC2::PlacementGroup"
props: PropsDictType = {
"PartitionCount": (integer, False),
"SpreadLevel": (validate_placement_spread_level, False),
"Strategy": (validate_placement_strategy, False),
"Tags": (Tags, False),
}
[docs]class Entry(AWSProperty):
"""
`Entry <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-prefixlist-entry.html>`__
"""
props: PropsDictType = {
"Cidr": (str, True),
"Description": (str, False),
}
[docs]class PrefixList(AWSObject):
"""
`PrefixList <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html>`__
"""
resource_type = "AWS::EC2::PrefixList"
props: PropsDictType = {
"AddressFamily": (str, True),
"Entries": ([Entry], False),
"MaxEntries": (integer, False),
"PrefixListName": (str, True),
"Tags": (Tags, False),
}
[docs]class Route(AWSObject):
"""
`Route <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html>`__
"""
resource_type = "AWS::EC2::Route"
props: PropsDictType = {
"CarrierGatewayId": (str, False),
"CoreNetworkArn": (str, False),
"DestinationCidrBlock": (str, False),
"DestinationIpv6CidrBlock": (str, False),
"DestinationPrefixListId": (str, False),
"EgressOnlyInternetGatewayId": (str, False),
"GatewayId": (str, False),
"InstanceId": (str, False),
"LocalGatewayId": (str, False),
"NatGatewayId": (str, False),
"NetworkInterfaceId": (str, False),
"RouteTableId": (str, True),
"TransitGatewayId": (str, False),
"VpcEndpointId": (str, False),
"VpcPeeringConnectionId": (str, False),
}
[docs] def validate(self):
validate_route(self)
[docs]class RouteTable(AWSObject):
"""
`RouteTable <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html>`__
"""
resource_type = "AWS::EC2::RouteTable"
props: PropsDictType = {
"Tags": (validate_tags_or_list, False),
"VpcId": (str, True),
}
[docs]class SecurityGroup(AWSObject):
"""
`SecurityGroup <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroup.html>`__
"""
resource_type = "AWS::EC2::SecurityGroup"
props: PropsDictType = {
"GroupDescription": (str, True),
"GroupName": (str, False),
"SecurityGroupEgress": (list, False),
"SecurityGroupIngress": (list, False),
"Tags": (validate_tags_or_list, False),
"VpcId": (str, False),
}
[docs]class SecurityGroupEgress(AWSObject):
"""
`SecurityGroupEgress <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupegress.html>`__
"""
resource_type = "AWS::EC2::SecurityGroupEgress"
props: PropsDictType = {
"CidrIp": (str, False),
"CidrIpv6": (str, False),
"Description": (str, False),
"DestinationPrefixListId": (str, False),
"DestinationSecurityGroupId": (str, False),
"FromPort": (validate_network_port, False),
"GroupId": (str, True),
"IpProtocol": (str, True),
"ToPort": (validate_network_port, False),
}
[docs] def validate(self):
validate_security_group_egress(self)
[docs]class SecurityGroupIngress(AWSObject):
"""
`SecurityGroupIngress <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupingress.html>`__
"""
resource_type = "AWS::EC2::SecurityGroupIngress"
props: PropsDictType = {
"CidrIp": (str, False),
"CidrIpv6": (str, False),
"Description": (str, False),
"FromPort": (validate_network_port, False),
"GroupId": (str, False),
"GroupName": (str, False),
"IpProtocol": (str, True),
"SourcePrefixListId": (str, False),
"SourceSecurityGroupId": (str, False),
"SourceSecurityGroupName": (str, False),
"SourceSecurityGroupOwnerId": (str, False),
"ToPort": (validate_network_port, False),
}
[docs] def validate(self):
validate_security_group_ingress(self)
[docs]class SnapshotBlockPublicAccess(AWSObject):
"""
`SnapshotBlockPublicAccess <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-snapshotblockpublicaccess.html>`__
"""
resource_type = "AWS::EC2::SnapshotBlockPublicAccess"
props: PropsDictType = {
"State": (str, True),
}
[docs]class IamInstanceProfileSpecification(AWSProperty):
"""
`IamInstanceProfileSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-iaminstanceprofilespecification.html>`__
"""
props: PropsDictType = {
"Arn": (str, False),
}
[docs]class InstanceNetworkInterfaceSpecification(AWSProperty):
"""
`InstanceNetworkInterfaceSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html>`__
"""
props: PropsDictType = {
"AssociatePublicIpAddress": (boolean, False),
"DeleteOnTermination": (boolean, False),
"Description": (str, False),
"DeviceIndex": (integer, False),
"Groups": ([str], False),
"Ipv6AddressCount": (integer, False),
"Ipv6Addresses": ([InstanceIpv6Address], False),
"NetworkInterfaceId": (str, False),
"PrivateIpAddresses": ([PrivateIpAddressSpecification], False),
"SecondaryPrivateIpAddressCount": (integer, False),
"SubnetId": (str, False),
}
[docs]class SecurityGroups(AWSProperty):
"""
`SecurityGroups <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-groupidentifier.html>`__
"""
props: PropsDictType = {
"GroupId": (str, True),
}
[docs]class SpotPlacement(AWSProperty):
"""
`SpotPlacement <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotplacement.html>`__
"""
props: PropsDictType = {
"AvailabilityZone": (str, False),
"GroupName": (str, False),
"Tenancy": (str, False),
}
[docs]class LaunchSpecifications(AWSProperty):
"""
`LaunchSpecifications <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html>`__
"""
props: PropsDictType = {
"BlockDeviceMappings": ([BlockDeviceMapping], False),
"EbsOptimized": (boolean, False),
"IamInstanceProfile": (IamInstanceProfileSpecification, False),
"ImageId": (str, True),
"InstanceRequirements": (InstanceRequirementsRequest, False),
"InstanceType": (str, False),
"KernelId": (str, False),
"KeyName": (str, False),
"Monitoring": (Monitoring, False),
"NetworkInterfaces": ([InstanceNetworkInterfaceSpecification], False),
"Placement": (SpotPlacement, False),
"RamdiskId": (str, False),
"SecurityGroups": ([SecurityGroups], False),
"SpotPrice": (str, False),
"SubnetId": (str, False),
"TagSpecifications": ([SpotFleetTagSpecification], False),
"UserData": (str, False),
"WeightedCapacity": (double, False),
}
[docs]class FleetLaunchTemplateSpecification(AWSProperty):
"""
`FleetLaunchTemplateSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification.html>`__
"""
props: PropsDictType = {
"LaunchTemplateId": (str, False),
"LaunchTemplateName": (str, False),
"Version": (str, True),
}
[docs]class LaunchTemplateOverrides(AWSProperty):
"""
`LaunchTemplateOverrides <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html>`__
"""
props: PropsDictType = {
"AvailabilityZone": (str, False),
"InstanceRequirements": (InstanceRequirementsRequest, False),
"InstanceType": (str, False),
"Priority": (double, False),
"SpotPrice": (str, False),
"SubnetId": (str, False),
"WeightedCapacity": (double, False),
}
[docs]class LaunchTemplateConfigs(AWSProperty):
"""
`LaunchTemplateConfigs <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateconfig.html>`__
"""
props: PropsDictType = {
"LaunchTemplateSpecification": (FleetLaunchTemplateSpecification, False),
"Overrides": ([LaunchTemplateOverrides], False),
}
[docs]class ClassicLoadBalancer(AWSProperty):
"""
`ClassicLoadBalancer <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-classicloadbalancer.html>`__
"""
props: PropsDictType = {
"Name": (str, True),
}
[docs]class ClassicLoadBalancersConfig(AWSProperty):
"""
`ClassicLoadBalancersConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-classicloadbalancersconfig.html>`__
"""
props: PropsDictType = {
"ClassicLoadBalancers": ([ClassicLoadBalancer], True),
}
[docs]class TargetGroup(AWSProperty):
"""
`TargetGroup <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-targetgroup.html>`__
"""
props: PropsDictType = {
"Arn": (str, True),
}
[docs]class TargetGroupConfig(AWSProperty):
"""
`TargetGroupConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-targetgroupsconfig.html>`__
"""
props: PropsDictType = {
"TargetGroups": ([TargetGroup], True),
}
[docs]class LoadBalancersConfig(AWSProperty):
"""
`LoadBalancersConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-loadbalancersconfig.html>`__
"""
props: PropsDictType = {
"ClassicLoadBalancersConfig": (ClassicLoadBalancersConfig, False),
"TargetGroupsConfig": (TargetGroupConfig, False),
}
[docs]class SpotCapacityRebalance(AWSProperty):
"""
`SpotCapacityRebalance <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotcapacityrebalance.html>`__
"""
props: PropsDictType = {
"ReplacementStrategy": (str, False),
"TerminationDelay": (integer, False),
}
[docs]class SpotMaintenanceStrategies(AWSProperty):
"""
`SpotMaintenanceStrategies <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotmaintenancestrategies.html>`__
"""
props: PropsDictType = {
"CapacityRebalance": (SpotCapacityRebalance, False),
}
[docs]class SpotFleetRequestConfigData(AWSProperty):
"""
`SpotFleetRequestConfigData <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html>`__
"""
props: PropsDictType = {
"AllocationStrategy": (str, False),
"Context": (str, False),
"ExcessCapacityTerminationPolicy": (str, False),
"IamFleetRole": (str, True),
"InstanceInterruptionBehavior": (str, False),
"InstancePoolsToUseCount": (integer, False),
"LaunchSpecifications": ([LaunchSpecifications], False),
"LaunchTemplateConfigs": ([LaunchTemplateConfigs], False),
"LoadBalancersConfig": (LoadBalancersConfig, False),
"OnDemandAllocationStrategy": (str, False),
"OnDemandMaxTotalPrice": (str, False),
"OnDemandTargetCapacity": (integer, False),
"ReplaceUnhealthyInstances": (boolean, False),
"SpotMaintenanceStrategies": (SpotMaintenanceStrategies, False),
"SpotMaxTotalPrice": (str, False),
"SpotPrice": (str, False),
"TagSpecifications": ([SpotFleetTagSpecification], False),
"TargetCapacity": (integer, True),
"TargetCapacityUnitType": (str, False),
"TerminateInstancesWithExpiration": (boolean, False),
"Type": (str, False),
"ValidFrom": (str, False),
"ValidUntil": (str, False),
}
[docs] def validate(self):
validate_spot_fleet_request_config_data(self)
[docs]class SpotFleet(AWSObject):
"""
`SpotFleet <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html>`__
"""
resource_type = "AWS::EC2::SpotFleet"
props: PropsDictType = {
"SpotFleetRequestConfigData": (SpotFleetRequestConfigData, True),
}
[docs]class PrivateDnsNameOptionsOnLaunch(AWSProperty):
"""
`PrivateDnsNameOptionsOnLaunch <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-privatednsnameoptionsonlaunch.html>`__
"""
props: PropsDictType = {
"EnableResourceNameDnsAAAARecord": (boolean, False),
"EnableResourceNameDnsARecord": (boolean, False),
"HostnameType": (str, False),
}
[docs]class Subnet(AWSObject):
"""
`Subnet <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html>`__
"""
resource_type = "AWS::EC2::Subnet"
props: PropsDictType = {
"AssignIpv6AddressOnCreation": (boolean, False),
"AvailabilityZone": (str, False),
"AvailabilityZoneId": (str, False),
"CidrBlock": (str, False),
"EnableDns64": (boolean, False),
"EnableLniAtDeviceIndex": (integer, False),
"Ipv4IpamPoolId": (str, False),
"Ipv4NetmaskLength": (integer, False),
"Ipv6CidrBlock": (str, False),
"Ipv6CidrBlocks": ([str], False),
"Ipv6IpamPoolId": (str, False),
"Ipv6Native": (boolean, False),
"Ipv6NetmaskLength": (integer, False),
"MapPublicIpOnLaunch": (boolean, False),
"OutpostArn": (str, False),
"PrivateDnsNameOptionsOnLaunch": (PrivateDnsNameOptionsOnLaunch, False),
"Tags": (validate_tags_or_list, False),
"VpcId": (str, True),
}
[docs] def validate(self):
validate_subnet(self)
[docs]class SubnetCidrBlock(AWSObject):
"""
`SubnetCidrBlock <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html>`__
"""
resource_type = "AWS::EC2::SubnetCidrBlock"
props: PropsDictType = {
"Ipv6CidrBlock": (str, False),
"Ipv6IpamPoolId": (str, False),
"Ipv6NetmaskLength": (integer, False),
"SubnetId": (str, True),
}
[docs]class SubnetNetworkAclAssociation(AWSObject):
"""
`SubnetNetworkAclAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetnetworkaclassociation.html>`__
"""
resource_type = "AWS::EC2::SubnetNetworkAclAssociation"
props: PropsDictType = {
"NetworkAclId": (str, True),
"SubnetId": (str, True),
}
[docs]class SubnetRouteTableAssociation(AWSObject):
"""
`SubnetRouteTableAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetroutetableassociation.html>`__
"""
resource_type = "AWS::EC2::SubnetRouteTableAssociation"
props: PropsDictType = {
"RouteTableId": (str, True),
"SubnetId": (str, True),
}
[docs]class TrafficMirrorFilter(AWSObject):
"""
`TrafficMirrorFilter <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilter.html>`__
"""
resource_type = "AWS::EC2::TrafficMirrorFilter"
props: PropsDictType = {
"Description": (str, False),
"NetworkServices": ([str], False),
"Tags": (Tags, False),
}
[docs]class TrafficMirrorPortRange(AWSProperty):
"""
`TrafficMirrorPortRange <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-trafficmirrorfilterrule-trafficmirrorportrange.html>`__
"""
props: PropsDictType = {
"FromPort": (integer, True),
"ToPort": (integer, True),
}
[docs]class TrafficMirrorFilterRule(AWSObject):
"""
`TrafficMirrorFilterRule <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html>`__
"""
resource_type = "AWS::EC2::TrafficMirrorFilterRule"
props: PropsDictType = {
"Description": (str, False),
"DestinationCidrBlock": (str, True),
"DestinationPortRange": (TrafficMirrorPortRange, False),
"Protocol": (integer, False),
"RuleAction": (str, True),
"RuleNumber": (integer, True),
"SourceCidrBlock": (str, True),
"SourcePortRange": (TrafficMirrorPortRange, False),
"TrafficDirection": (str, True),
"TrafficMirrorFilterId": (str, True),
}
[docs]class TrafficMirrorSession(AWSObject):
"""
`TrafficMirrorSession <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html>`__
"""
resource_type = "AWS::EC2::TrafficMirrorSession"
props: PropsDictType = {
"Description": (str, False),
"NetworkInterfaceId": (str, True),
"PacketLength": (integer, False),
"SessionNumber": (integer, True),
"Tags": (Tags, False),
"TrafficMirrorFilterId": (str, True),
"TrafficMirrorTargetId": (str, True),
"VirtualNetworkId": (integer, False),
}
[docs]class TrafficMirrorTarget(AWSObject):
"""
`TrafficMirrorTarget <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrortarget.html>`__
"""
resource_type = "AWS::EC2::TrafficMirrorTarget"
props: PropsDictType = {
"Description": (str, False),
"GatewayLoadBalancerEndpointId": (str, False),
"NetworkInterfaceId": (str, False),
"NetworkLoadBalancerArn": (str, False),
"Tags": (Tags, False),
}
[docs]class TransitGateway(AWSObject):
"""
`TransitGateway <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html>`__
"""
resource_type = "AWS::EC2::TransitGateway"
props: PropsDictType = {
"AmazonSideAsn": (integer, False),
"AssociationDefaultRouteTableId": (str, False),
"AutoAcceptSharedAttachments": (str, False),
"DefaultRouteTableAssociation": (str, False),
"DefaultRouteTablePropagation": (str, False),
"Description": (str, False),
"DnsSupport": (str, False),
"MulticastSupport": (str, False),
"PropagationDefaultRouteTableId": (str, False),
"Tags": (validate_tags_or_list, False),
"TransitGatewayCidrBlocks": ([str], False),
"VpnEcmpSupport": (str, False),
}
[docs]class Options(AWSProperty):
"""
`Options <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayvpcattachment-options.html>`__
"""
props: PropsDictType = {
"ApplianceModeSupport": (str, False),
"DnsSupport": (str, False),
"Ipv6Support": (str, False),
}
[docs]class TransitGatewayAttachment(AWSObject):
"""
`TransitGatewayAttachment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayattachment.html>`__
"""
resource_type = "AWS::EC2::TransitGatewayAttachment"
props: PropsDictType = {
"Options": (Options, False),
"SubnetIds": ([str], True),
"Tags": (validate_tags_or_list, False),
"TransitGatewayId": (str, True),
"VpcId": (str, True),
}
[docs]class TransitGatewayConnectOptions(AWSProperty):
"""
`TransitGatewayConnectOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayconnect-transitgatewayconnectoptions.html>`__
"""
props: PropsDictType = {
"Protocol": (str, False),
}
[docs]class TransitGatewayConnect(AWSObject):
"""
`TransitGatewayConnect <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html>`__
"""
resource_type = "AWS::EC2::TransitGatewayConnect"
props: PropsDictType = {
"Options": (TransitGatewayConnectOptions, True),
"Tags": (Tags, False),
"TransportTransitGatewayAttachmentId": (str, True),
}
[docs]class MulticastDomainOptions(AWSProperty):
"""
`MulticastDomainOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewaymulticastdomain-options.html>`__
"""
props: PropsDictType = {
"AutoAcceptSharedAssociations": (str, False),
"Igmpv2Support": (str, False),
"StaticSourcesSupport": (str, False),
}
[docs]class TransitGatewayMulticastDomain(AWSObject):
"""
`TransitGatewayMulticastDomain <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomain.html>`__
"""
resource_type = "AWS::EC2::TransitGatewayMulticastDomain"
props: PropsDictType = {
"Options": (MulticastDomainOptions, False),
"Tags": (Tags, False),
"TransitGatewayId": (str, True),
}
[docs]class TransitGatewayMulticastDomainAssociation(AWSObject):
"""
`TransitGatewayMulticastDomainAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html>`__
"""
resource_type = "AWS::EC2::TransitGatewayMulticastDomainAssociation"
props: PropsDictType = {
"SubnetId": (str, True),
"TransitGatewayAttachmentId": (str, True),
"TransitGatewayMulticastDomainId": (str, True),
}
[docs]class TransitGatewayMulticastGroupMember(AWSObject):
"""
`TransitGatewayMulticastGroupMember <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupmember.html>`__
"""
resource_type = "AWS::EC2::TransitGatewayMulticastGroupMember"
props: PropsDictType = {
"GroupIpAddress": (str, True),
"NetworkInterfaceId": (str, True),
"TransitGatewayMulticastDomainId": (str, True),
}
[docs]class TransitGatewayMulticastGroupSource(AWSObject):
"""
`TransitGatewayMulticastGroupSource <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupsource.html>`__
"""
resource_type = "AWS::EC2::TransitGatewayMulticastGroupSource"
props: PropsDictType = {
"GroupIpAddress": (str, True),
"NetworkInterfaceId": (str, True),
"TransitGatewayMulticastDomainId": (str, True),
}
[docs]class TransitGatewayPeeringAttachment(AWSObject):
"""
`TransitGatewayPeeringAttachment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html>`__
"""
resource_type = "AWS::EC2::TransitGatewayPeeringAttachment"
props: PropsDictType = {
"PeerAccountId": (str, True),
"PeerRegion": (str, True),
"PeerTransitGatewayId": (str, True),
"Tags": (Tags, False),
"TransitGatewayId": (str, True),
}
[docs]class TransitGatewayRoute(AWSObject):
"""
`TransitGatewayRoute <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html>`__
"""
resource_type = "AWS::EC2::TransitGatewayRoute"
props: PropsDictType = {
"Blackhole": (boolean, False),
"DestinationCidrBlock": (str, False),
"TransitGatewayAttachmentId": (str, False),
"TransitGatewayRouteTableId": (str, True),
}
[docs]class TransitGatewayRouteTable(AWSObject):
"""
`TransitGatewayRouteTable <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetable.html>`__
"""
resource_type = "AWS::EC2::TransitGatewayRouteTable"
props: PropsDictType = {
"Tags": (validate_tags_or_list, False),
"TransitGatewayId": (str, True),
}
[docs]class TransitGatewayRouteTableAssociation(AWSObject):
"""
`TransitGatewayRouteTableAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetableassociation.html>`__
"""
resource_type = "AWS::EC2::TransitGatewayRouteTableAssociation"
props: PropsDictType = {
"TransitGatewayAttachmentId": (str, True),
"TransitGatewayRouteTableId": (str, True),
}
[docs]class TransitGatewayRouteTablePropagation(AWSObject):
"""
`TransitGatewayRouteTablePropagation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetablepropagation.html>`__
"""
resource_type = "AWS::EC2::TransitGatewayRouteTablePropagation"
props: PropsDictType = {
"TransitGatewayAttachmentId": (str, True),
"TransitGatewayRouteTableId": (str, True),
}
[docs]class TransitGatewayVpcAttachment(AWSObject):
"""
`TransitGatewayVpcAttachment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html>`__
"""
resource_type = "AWS::EC2::TransitGatewayVpcAttachment"
props: PropsDictType = {
"AddSubnetIds": ([str], False),
"Options": (Options, False),
"RemoveSubnetIds": ([str], False),
"SubnetIds": ([str], True),
"Tags": (Tags, False),
"TransitGatewayId": (str, True),
"VpcId": (str, True),
}
[docs]class VPC(AWSObject):
"""
`VPC <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html>`__
"""
resource_type = "AWS::EC2::VPC"
props: PropsDictType = {
"CidrBlock": (str, False),
"EnableDnsHostnames": (boolean, False),
"EnableDnsSupport": (boolean, False),
"InstanceTenancy": (instance_tenancy, False),
"Ipv4IpamPoolId": (str, False),
"Ipv4NetmaskLength": (integer, False),
"Tags": (validate_tags_or_list, False),
}
[docs]class VPCCidrBlock(AWSObject):
"""
`VPCCidrBlock <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html>`__
"""
resource_type = "AWS::EC2::VPCCidrBlock"
props: PropsDictType = {
"AmazonProvidedIpv6CidrBlock": (boolean, False),
"CidrBlock": (str, False),
"Ipv4IpamPoolId": (str, False),
"Ipv4NetmaskLength": (integer, False),
"Ipv6CidrBlock": (str, False),
"Ipv6IpamPoolId": (str, False),
"Ipv6NetmaskLength": (integer, False),
"Ipv6Pool": (str, False),
"VpcId": (str, True),
}
[docs]class VPCDHCPOptionsAssociation(AWSObject):
"""
`VPCDHCPOptionsAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcdhcpoptionsassociation.html>`__
"""
resource_type = "AWS::EC2::VPCDHCPOptionsAssociation"
props: PropsDictType = {
"DhcpOptionsId": (str, True),
"VpcId": (str, True),
}
[docs]class VPCEndpoint(AWSObject):
"""
`VPCEndpoint <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html>`__
"""
resource_type = "AWS::EC2::VPCEndpoint"
props: PropsDictType = {
"PolicyDocument": (policytypes, False),
"PrivateDnsEnabled": (boolean, False),
"RouteTableIds": ([str], False),
"SecurityGroupIds": ([str], False),
"ServiceName": (str, True),
"SubnetIds": ([str], False),
"VpcEndpointType": (vpc_endpoint_type, False),
"VpcId": (str, True),
}
[docs]class VPCEndpointConnectionNotification(AWSObject):
"""
`VPCEndpointConnectionNotification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html>`__
"""
resource_type = "AWS::EC2::VPCEndpointConnectionNotification"
props: PropsDictType = {
"ConnectionEvents": ([str], True),
"ConnectionNotificationArn": (str, True),
"ServiceId": (str, False),
"VPCEndpointId": (str, False),
}
[docs]class VPCEndpointService(AWSObject):
"""
`VPCEndpointService <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html>`__
"""
resource_type = "AWS::EC2::VPCEndpointService"
props: PropsDictType = {
"AcceptanceRequired": (boolean, False),
"ContributorInsightsEnabled": (boolean, False),
"GatewayLoadBalancerArns": ([str], False),
"NetworkLoadBalancerArns": ([str], False),
"PayerResponsibility": (str, False),
}
[docs]class VPCEndpointServicePermissions(AWSObject):
"""
`VPCEndpointServicePermissions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html>`__
"""
resource_type = "AWS::EC2::VPCEndpointServicePermissions"
props: PropsDictType = {
"AllowedPrincipals": ([str], False),
"ServiceId": (str, True),
}
[docs]class VPCGatewayAttachment(AWSObject):
"""
`VPCGatewayAttachment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcgatewayattachment.html>`__
"""
resource_type = "AWS::EC2::VPCGatewayAttachment"
props: PropsDictType = {
"InternetGatewayId": (str, False),
"VpcId": (str, True),
"VpnGatewayId": (str, False),
}
[docs]class VPCPeeringConnection(AWSObject):
"""
`VPCPeeringConnection <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html>`__
"""
resource_type = "AWS::EC2::VPCPeeringConnection"
props: PropsDictType = {
"PeerOwnerId": (str, False),
"PeerRegion": (str, False),
"PeerRoleArn": (str, False),
"PeerVpcId": (str, True),
"Tags": (validate_tags_or_list, False),
"VpcId": (str, True),
}
[docs]class VpnTunnelOptionsSpecification(AWSProperty):
"""
`VpnTunnelOptionsSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html>`__
"""
props: PropsDictType = {
"PreSharedKey": (vpn_pre_shared_key, False),
"TunnelInsideCidr": (vpn_tunnel_inside_cidr, False),
}
[docs]class VPNConnection(AWSObject):
"""
`VPNConnection <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconnection.html>`__
"""
resource_type = "AWS::EC2::VPNConnection"
props: PropsDictType = {
"CustomerGatewayId": (str, True),
"StaticRoutesOnly": (boolean, False),
"Tags": (validate_tags_or_list, False),
"TransitGatewayId": (str, False),
"Type": (str, True),
"VpnGatewayId": (str, False),
"VpnTunnelOptionsSpecifications": ([VpnTunnelOptionsSpecification], False),
}
[docs] def validate(self):
validate_vpn_connection(self)
[docs]class VPNConnectionRoute(AWSObject):
"""
`VPNConnectionRoute <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconnectionroute.html>`__
"""
resource_type = "AWS::EC2::VPNConnectionRoute"
props: PropsDictType = {
"DestinationCidrBlock": (str, True),
"VpnConnectionId": (str, True),
}
[docs]class VPNGateway(AWSObject):
"""
`VPNGateway <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html>`__
"""
resource_type = "AWS::EC2::VPNGateway"
props: PropsDictType = {
"AmazonSideAsn": (integer, False),
"Tags": (validate_tags_or_list, False),
"Type": (str, True),
}
[docs]class VPNGatewayRoutePropagation(AWSObject):
"""
`VPNGatewayRoutePropagation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gatewayrouteprop.html>`__
"""
resource_type = "AWS::EC2::VPNGatewayRoutePropagation"
props: PropsDictType = {
"RouteTableIds": ([str], True),
"VpnGatewayId": (str, True),
}
[docs]class LoadBalancerOptions(AWSProperty):
"""
`LoadBalancerOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessendpoint-loadbalanceroptions.html>`__
"""
props: PropsDictType = {
"LoadBalancerArn": (str, False),
"Port": (integer, False),
"Protocol": (str, False),
"SubnetIds": ([str], False),
}
[docs]class NetworkInterfaceOptions(AWSProperty):
"""
`NetworkInterfaceOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessendpoint-networkinterfaceoptions.html>`__
"""
props: PropsDictType = {
"NetworkInterfaceId": (str, False),
"Port": (integer, False),
"Protocol": (str, False),
}
[docs]class SseSpecification(AWSProperty):
"""
`SseSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-ssespecification.html>`__
"""
props: PropsDictType = {
"CustomerManagedKeyEnabled": (boolean, False),
"KmsKeyArn": (str, False),
}
[docs]class VerifiedAccessEndpoint(AWSObject):
"""
`VerifiedAccessEndpoint <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html>`__
"""
resource_type = "AWS::EC2::VerifiedAccessEndpoint"
props: PropsDictType = {
"ApplicationDomain": (str, True),
"AttachmentType": (str, True),
"Description": (str, False),
"DomainCertificateArn": (str, True),
"EndpointDomainPrefix": (str, True),
"EndpointType": (str, True),
"LoadBalancerOptions": (LoadBalancerOptions, False),
"NetworkInterfaceOptions": (NetworkInterfaceOptions, False),
"PolicyDocument": (str, False),
"PolicyEnabled": (boolean, False),
"SecurityGroupIds": ([str], False),
"SseSpecification": (SseSpecification, False),
"Tags": (Tags, False),
"VerifiedAccessGroupId": (str, True),
}
[docs]class VerifiedAccessGroup(AWSObject):
"""
`VerifiedAccessGroup <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessgroup.html>`__
"""
resource_type = "AWS::EC2::VerifiedAccessGroup"
props: PropsDictType = {
"Description": (str, False),
"PolicyDocument": (str, False),
"PolicyEnabled": (boolean, False),
"SseSpecification": (SseSpecification, False),
"Tags": (Tags, False),
"VerifiedAccessInstanceId": (str, True),
}
[docs]class CloudWatchLogs(AWSProperty):
"""
`CloudWatchLogs <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessinstance-cloudwatchlogs.html>`__
"""
props: PropsDictType = {
"Enabled": (boolean, False),
"LogGroup": (str, False),
}
[docs]class KinesisDataFirehose(AWSProperty):
"""
`KinesisDataFirehose <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessinstance-kinesisdatafirehose.html>`__
"""
props: PropsDictType = {
"DeliveryStream": (str, False),
"Enabled": (boolean, False),
}
[docs]class S3(AWSProperty):
"""
`S3 <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessinstance-s3.html>`__
"""
props: PropsDictType = {
"BucketName": (str, False),
"BucketOwner": (str, False),
"Enabled": (boolean, False),
"Prefix": (str, False),
}
[docs]class VerifiedAccessLogs(AWSProperty):
"""
`VerifiedAccessLogs <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessinstance-verifiedaccesslogs.html>`__
"""
props: PropsDictType = {
"CloudWatchLogs": (CloudWatchLogs, False),
"IncludeTrustContext": (boolean, False),
"KinesisDataFirehose": (KinesisDataFirehose, False),
"LogVersion": (str, False),
"S3": (S3, False),
}
[docs]class VerifiedAccessTrustProviderProperty(AWSProperty):
"""
`VerifiedAccessTrustProviderProperty <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessinstance-verifiedaccesstrustprovider.html>`__
"""
props: PropsDictType = {
"Description": (str, False),
"DeviceTrustProviderType": (str, False),
"TrustProviderType": (str, False),
"UserTrustProviderType": (str, False),
"VerifiedAccessTrustProviderId": (str, False),
}
[docs]class VerifiedAccessInstance(AWSObject):
"""
`VerifiedAccessInstance <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessinstance.html>`__
"""
resource_type = "AWS::EC2::VerifiedAccessInstance"
props: PropsDictType = {
"Description": (str, False),
"FipsEnabled": (boolean, False),
"LoggingConfigurations": (VerifiedAccessLogs, False),
"Tags": (Tags, False),
"VerifiedAccessTrustProviderIds": ([str], False),
"VerifiedAccessTrustProviders": ([VerifiedAccessTrustProviderProperty], False),
}
[docs]class DeviceOptions(AWSProperty):
"""
`DeviceOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-deviceoptions.html>`__
"""
props: PropsDictType = {
"PublicSigningKeyUrl": (str, False),
"TenantId": (str, False),
}
[docs]class OidcOptions(AWSProperty):
"""
`OidcOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html>`__
"""
props: PropsDictType = {
"AuthorizationEndpoint": (str, False),
"ClientId": (str, False),
"ClientSecret": (str, False),
"Issuer": (str, False),
"Scope": (str, False),
"TokenEndpoint": (str, False),
"UserInfoEndpoint": (str, False),
}
[docs]class VerifiedAccessTrustProvider(AWSObject):
"""
`VerifiedAccessTrustProvider <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html>`__
"""
resource_type = "AWS::EC2::VerifiedAccessTrustProvider"
props: PropsDictType = {
"Description": (str, False),
"DeviceOptions": (DeviceOptions, False),
"DeviceTrustProviderType": (str, False),
"OidcOptions": (OidcOptions, False),
"PolicyReferenceName": (str, True),
"SseSpecification": (SseSpecification, False),
"Tags": (Tags, False),
"TrustProviderType": (str, True),
"UserTrustProviderType": (str, False),
}
[docs]class Volume(AWSObject):
"""
`Volume <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html>`__
"""
resource_type = "AWS::EC2::Volume"
props: PropsDictType = {
"AutoEnableIO": (boolean, False),
"AvailabilityZone": (str, True),
"Encrypted": (boolean, False),
"Iops": (integer, False),
"KmsKeyId": (str, False),
"MultiAttachEnabled": (boolean, False),
"OutpostArn": (str, False),
"Size": (integer, False),
"SnapshotId": (str, False),
"Tags": (validate_tags_or_list, False),
"Throughput": (integer, False),
"VolumeType": (str, False),
}
[docs]class VolumeAttachment(AWSObject):
"""
`VolumeAttachment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volumeattachment.html>`__
"""
resource_type = "AWS::EC2::VolumeAttachment"
props: PropsDictType = {
"Device": (str, False),
"InstanceId": (str, True),
"VolumeId": (str, True),
}
[docs]class EbsBlockDevice(AWSProperty):
"""
`EbsBlockDevice <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-ebsblockdevice.html>`__
"""
props: PropsDictType = {
"DeleteOnTermination": (boolean, False),
"Encrypted": (boolean, False),
"Iops": (integer, False),
"SnapshotId": (str, False),
"VolumeSize": (integer, False),
"VolumeType": (str, False),
}
[docs]class Egress(AWSProperty):
"""
`Egress <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-securitygroup-egress.html>`__
"""
props: PropsDictType = {
"CidrIp": (str, False),
"CidrIpv6": (str, False),
"Description": (str, False),
"DestinationPrefixListId": (str, False),
"DestinationSecurityGroupId": (str, False),
"FromPort": (integer, False),
"IpProtocol": (str, True),
"ToPort": (integer, False),
}
[docs]class Ingress(AWSProperty):
"""
`Ingress <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-securitygroup-ingress.html>`__
"""
props: PropsDictType = {
"CidrIp": (str, False),
"CidrIpv6": (str, False),
"Description": (str, False),
"FromPort": (integer, False),
"IpProtocol": (str, True),
"SourcePrefixListId": (str, False),
"SourceSecurityGroupId": (str, False),
"SourceSecurityGroupName": (str, False),
"SourceSecurityGroupOwnerId": (str, False),
"ToPort": (integer, False),
}
[docs]class MountPoint(AWSProperty):
"""
`MountPoint <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-volume.html>`__
"""
props: PropsDictType = {
"Device": (str, True),
"VolumeId": (str, True),
}
[docs]class PeeringAttachmentStatus(AWSProperty):
"""
`PeeringAttachmentStatus <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewaypeeringattachment-peeringattachmentstatus.html>`__
"""
props: PropsDictType = {
"Code": (str, False),
"Message": (str, False),
}
[docs]class SecurityGroupRule(AWSProperty):
"""
`SecurityGroupRule <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-securitygroup-ingress.html>`__
"""
props: PropsDictType = {
"CidrIp": (str, False),
"CidrIpv6": (str, False),
"Description": (str, False),
"DestinationPrefixListId": (str, False),
"DestinationSecurityGroupId": (str, False),
"FromPort": (validate_network_port, False),
"IpProtocol": (str, True),
"SourcePrefixListId": (str, False),
"SourceSecurityGroupId": (str, False),
"SourceSecurityGroupName": (str, False),
"SourceSecurityGroupOwnerId": (str, False),
"ToPort": (validate_network_port, False),
}
[docs]class TransitGatewayRouteTableRoute(AWSProperty):
"""
`TransitGatewayRouteTableRoute <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-transitgatewayroutetableroute.html>`__
"""
props: PropsDictType = {
"AttachmentId": (str, False),
"DestinationCidr": (str, False),
"PrefixListId": (str, False),
"ResourceId": (str, False),
"ResourceType": (str, False),
"RouteOrigin": (str, False),
"State": (str, False),
}
[docs]class VolumeProperty(AWSProperty):
"""
`VolumeProperty <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-volume.html>`__
"""
props: PropsDictType = {
"Device": (str, True),
"VolumeId": (str, True),
}