Source code for troposphere.ec2

# Copyright (c) 2012-2025, 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 CapacityManagerDataExport(AWSObject): """ `CapacityManagerDataExport <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacitymanagerdataexport.html>`__ """ resource_type = "AWS::EC2::CapacityManagerDataExport" props: PropsDictType = { "OutputFormat": (str, True), "S3BucketName": (str, True), "S3BucketPrefix": (str, False), "Schedule": (str, True), "Tags": (Tags, False), }
[docs]class TagSpecifications(AWSProperty): """ `TagSpecifications <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservation-tagspecification.html>`__ """ props: PropsDictType = { "ResourceType": (str, False), "Tags": (validate_tags_or_list, False), }
[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, False), "AvailabilityZoneId": (str, False), "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), "UnusedReservationBillingOwnerId": (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 ClientRouteEnforcementOptions(AWSProperty): """ `ClientRouteEnforcementOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientrouteenforcementoptions.html>`__ """ props: PropsDictType = { "Enforced": (boolean, False), }
[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 TransitGatewayConfiguration(AWSProperty): """ `TransitGatewayConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-transitgatewayconfiguration.html>`__ """ props: PropsDictType = { "AvailabilityZoneIds": ([str], False), "AvailabilityZones": ([str], False), "TransitGatewayId": (str, 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, False), "ClientConnectOptions": (ClientConnectOptions, False), "ClientLoginBannerOptions": (ClientLoginBannerOptions, False), "ClientRouteEnforcementOptions": (ClientRouteEnforcementOptions, False), "ConnectionLogOptions": (ConnectionLogOptions, True), "Description": (str, False), "DisconnectOnSessionTimeout": (boolean, False), "DnsServers": ([str], False), "EndpointIpAddressType": (str, False), "SecurityGroupIds": ([str], False), "SelfServicePortal": (validate_clientvpnendpoint_selfserviceportal, False), "ServerCertificateArn": (str, True), "SessionTimeoutHours": (integer, False), "SplitTunnel": (boolean, False), "TagSpecifications": ([TagSpecifications], False), "TrafficIpAddressType": (str, False), "TransitGatewayConfiguration": (TransitGatewayConfiguration, 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, False), }
[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 = { "AvailabilityZone": (str, False), "AvailabilityZoneId": (str, False), "ClientVpnEndpointId": (str, True), "SubnetId": (str, False), }
[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 EBSBlockDevice(AWSProperty): """ `EBSBlockDevice <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ebs.html>`__ """ props: PropsDictType = { "DeleteOnTermination": (boolean, False), "EbsCardIndex": (integer, False), "Encrypted": (boolean, False), "Iops": (integer, False), "KmsKeyId": (str, False), "SnapshotId": (str, False), "Throughput": (integer, False), "VolumeInitializationRate": (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 IamInstanceProfileSpecification(AWSProperty): """ `IamInstanceProfileSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-iaminstanceprofilespecification.html>`__ """ props: PropsDictType = { "Arn": (str, False), }
[docs]class InstanceMetadataOptionsRequest(AWSProperty): """ `InstanceMetadataOptionsRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancemetadataoptionsrequest.html>`__ """ props: PropsDictType = { "HttpEndpoint": (str, False), "HttpPutResponseHopLimit": (integer, False), "HttpTokens": (str, 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 PerformanceFactorReferenceRequest(AWSProperty): """ `PerformanceFactorReferenceRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-performancefactorreferencerequest.html>`__ """ props: PropsDictType = { "InstanceFamily": (str, False), }
[docs]class CpuPerformanceFactorRequest(AWSProperty): """ `CpuPerformanceFactorRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-cpuperformancefactorrequest.html>`__ """ props: PropsDictType = { "References": ([PerformanceFactorReferenceRequest], False), }
[docs]class BaselinePerformanceFactorsRequest(AWSProperty): """ `BaselinePerformanceFactorsRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-baselineperformancefactorsrequest.html>`__ """ props: PropsDictType = { "Cpu": (CpuPerformanceFactorRequest, 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), "BaselinePerformanceFactors": (BaselinePerformanceFactorsRequest, 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), "RequireEncryptionInTransit": (boolean, False), "RequireHibernateSupport": (boolean, False), "SpotMaxPricePercentageOverLowestPrice": (integer, False), "TotalLocalStorageGB": (TotalLocalStorageGBRequest, False), "VCpuCount": (VCpuCountRangeRequest, False), }
[docs]class Ipv6AddressRequest(AWSProperty): """ `Ipv6AddressRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ipv6addressrequest.html>`__ """ props: PropsDictType = { "Ipv6Address": (str, False), }
[docs]class PrivateIpAddressSpecificationRequest(AWSProperty): """ `PrivateIpAddressSpecificationRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-privateipaddressspecificationrequest.html>`__ """ props: PropsDictType = { "Primary": (boolean, False), "PrivateIpAddress": (str, False), }
[docs]class NetworkInterfaceSpecificationRequest(AWSProperty): """ `NetworkInterfaceSpecificationRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-networkinterfacespecificationrequest.html>`__ """ props: PropsDictType = { "AssociatePublicIpAddress": (boolean, False), "DeleteOnTermination": (boolean, False), "Description": (str, False), "DeviceIndex": (integer, False), "Groups": ([str], False), "InterfaceType": (str, False), "Ipv6AddressCount": (integer, False), "Ipv6Addresses": ([Ipv6AddressRequest], False), "NetworkCardIndex": (integer, False), "NetworkInterfaceId": (str, False), "PrivateIpAddress": (str, False), "PrivateIpAddresses": ([PrivateIpAddressSpecificationRequest], False), "SecondaryPrivateIpAddressCount": (integer, False), "SubnetId": (str, 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), "AvailabilityZoneId": (str, False), "BlockDeviceMappings": ([BlockDeviceMapping], False), "IamInstanceProfile": (IamInstanceProfileSpecification, False), "InstanceRequirements": (InstanceRequirementsRequest, False), "InstanceType": (str, False), "KeyName": (str, False), "MaxPrice": (str, False), "MetadataOptions": (InstanceMetadataOptionsRequest, False), "NetworkInterfaces": ([NetworkInterfaceSpecificationRequest], 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), "LaunchTemplateSpecificationUserData": (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 ReservedCapacityOptionsRequest(AWSProperty): """ `ReservedCapacityOptionsRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-reservedcapacityoptionsrequest.html>`__ """ props: PropsDictType = { "ReservationTypes": ([str], 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), "ReservedCapacityOptions": (ReservedCapacityOptionsRequest, 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 = { "Address": (str, False), "Domain": (str, False), "InstanceId": (str, False), "IpamPoolId": (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 = { "Tags": (Tags, False), "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), "Tags": (Tags, 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 IpamOrganizationalUnitExclusion(AWSProperty): """ `IpamOrganizationalUnitExclusion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipam-ipamorganizationalunitexclusion.html>`__ """ props: PropsDictType = { "OrganizationsEntityPath": (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 = { "DefaultResourceDiscoveryOrganizationalUnitExclusions": ( [IpamOrganizationalUnitExclusion], False, ), "Description": (str, False), "EnablePrivateGua": (boolean, False), "MeteredAccount": (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 IpamPrefixListResolverRuleCondition(AWSProperty): """ `IpamPrefixListResolverRuleCondition <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipamprefixlistresolver-ipamprefixlistresolverrulecondition.html>`__ """ props: PropsDictType = { "Cidr": (str, False), "IpamPoolId": (str, False), "Operation": (str, True), "ResourceId": (str, False), "ResourceOwner": (str, False), "ResourceRegion": (str, False), "ResourceTag": (Tag, False), }
[docs]class IpamPrefixListResolverRule(AWSProperty): """ `IpamPrefixListResolverRule <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipamprefixlistresolver-ipamprefixlistresolverrule.html>`__ """ props: PropsDictType = { "Conditions": ([IpamPrefixListResolverRuleCondition], False), "IpamScopeId": (str, False), "ResourceType": (str, False), "RuleType": (str, True), "StaticCidr": (str, False), }
[docs]class IPAMPrefixListResolver(AWSObject): """ `IPAMPrefixListResolver <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamprefixlistresolver.html>`__ """ resource_type = "AWS::EC2::IPAMPrefixListResolver" props: PropsDictType = { "AddressFamily": (str, True), "Description": (str, False), "IpamId": (str, False), "Rules": ([IpamPrefixListResolverRule], False), "Tags": (Tags, False), }
[docs]class IPAMPrefixListResolverTarget(AWSObject): """ `IPAMPrefixListResolverTarget <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamprefixlistresolvertarget.html>`__ """ resource_type = "AWS::EC2::IPAMPrefixListResolverTarget" props: PropsDictType = { "DesiredVersion": (integer, False), "IpamPrefixListResolverId": (str, True), "PrefixListId": (str, True), "PrefixListRegion": (str, True), "Tags": (Tags, False), "TrackLatestVersion": (boolean, True), }
[docs]class IpamResourceDiscoveryOrganizationalUnitExclusion(AWSProperty): """ `IpamResourceDiscoveryOrganizationalUnitExclusion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipamresourcediscovery-ipamresourcediscoveryorganizationalunitexclusion.html>`__ """ props: PropsDictType = { "OrganizationsEntityPath": (str, True), }
[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), "OrganizationalUnitExclusions": ( [IpamResourceDiscoveryOrganizationalUnitExclusion], 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 IpamScopeExternalAuthorityConfiguration(AWSProperty): """ `IpamScopeExternalAuthorityConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipamscope-ipamscopeexternalauthorityconfiguration.html>`__ """ props: PropsDictType = { "ExternalResourceIdentifier": (str, True), "IpamScopeExternalAuthorityType": (str, True), }
[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), "ExternalAuthorityConfiguration": ( IpamScopeExternalAuthorityConfiguration, False, ), "IpamId": (str, True), "Tags": (Tags, 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-instance-elasticgpuspecification.html>`__ """ props: PropsDictType = { "Type": (str, True), }
[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 MetadataOptions(AWSProperty): """ `MetadataOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-metadataoptions.html>`__ """ props: PropsDictType = { "HttpEndpoint": (str, False), "HttpProtocolIpv6": (str, False), "HttpPutResponseHopLimit": (integer, False), "HttpTokens": (str, False), "InstanceMetadataTags": (str, 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 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), "EnaSrdSpecification": (EnaSrdSpecification, False), "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), "MetadataOptions": (MetadataOptions, 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 IpPoolRouteTableAssociation(AWSObject): """ `IpPoolRouteTableAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ippoolroutetableassociation.html>`__ """ resource_type = "AWS::EC2::IpPoolRouteTableAssociation" props: PropsDictType = { "PublicIpv4Pool": (str, True), "RouteTableId": (str, True), }
[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 Reference(AWSProperty): """ `Reference <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-reference.html>`__ """ props: PropsDictType = { "InstanceFamily": (str, False), }
[docs]class Cpu(AWSProperty): """ `Cpu <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-cpu.html>`__ """ props: PropsDictType = { "References": ([Reference], False), }
[docs]class BaselinePerformanceFactors(AWSProperty): """ `BaselinePerformanceFactors <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-baselineperformancefactors.html>`__ """ props: PropsDictType = { "Cpu": (Cpu, 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), "BaselinePerformanceFactors": (BaselinePerformanceFactors, 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 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 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), "EnaQueueCount": (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 NetworkPerformanceOptions(AWSProperty): """ `NetworkPerformanceOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkperformanceoptions.html>`__ """ props: PropsDictType = { "BandwidthWeighting": (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), "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), "NetworkPerformanceOptions": (NetworkPerformanceOptions, 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 LocalGatewayVirtualInterface(AWSObject): """ `LocalGatewayVirtualInterface <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html>`__ """ resource_type = "AWS::EC2::LocalGatewayVirtualInterface" props: PropsDictType = { "LocalAddress": (str, True), "LocalGatewayVirtualInterfaceGroupId": (str, True), "OutpostLagId": (str, True), "PeerAddress": (str, True), "PeerBgpAsn": (integer, False), "PeerBgpAsnExtended": (integer, False), "Tags": (Tags, False), "Vlan": (integer, True), }
[docs]class LocalGatewayVirtualInterfaceGroup(AWSObject): """ `LocalGatewayVirtualInterfaceGroup <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html>`__ """ resource_type = "AWS::EC2::LocalGatewayVirtualInterfaceGroup" props: PropsDictType = { "LocalBgpAsn": (integer, False), "LocalBgpAsnExtended": (integer, False), "LocalGatewayId": (str, True), "Tags": (Tags, False), }
[docs]class AvailabilityZoneAddress(AWSProperty): """ `AvailabilityZoneAddress <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-natgateway-availabilityzoneaddress.html>`__ """ props: PropsDictType = { "AllocationIds": ([str], True), "AvailabilityZone": (str, False), "AvailabilityZoneId": (str, 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), "AvailabilityMode": (str, False), "AvailabilityZoneAddresses": ([AvailabilityZoneAddress], False), "ConnectivityType": (str, False), "MaxDrainDurationSeconds": (integer, False), "PrivateIpAddress": (str, False), "SecondaryAllocationIds": ([str], False), "SecondaryPrivateIpAddressCount": (integer, False), "SecondaryPrivateIpAddresses": ([str], False), "SubnetId": (str, False), "Tags": (validate_tags_or_list, False), "VpcId": (str, 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 PacketHeaderStatementRequest(AWSProperty): """ `PacketHeaderStatementRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-packetheaderstatementrequest.html>`__ """ props: PropsDictType = { "DestinationAddresses": ([str], False), "DestinationPorts": ([str], False), "DestinationPrefixLists": ([str], False), "Protocols": ([str], False), "SourceAddresses": ([str], False), "SourcePorts": ([str], False), "SourcePrefixLists": ([str], False), }
[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), "FilterOutArns": ([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), "PublicIpDnsHostnameTypeSpecification": (str, 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), "EnaQueueCount": (integer, False), "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 NetworkPerformanceMetricSubscription(AWSObject): """ `NetworkPerformanceMetricSubscription <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkperformancemetricsubscription.html>`__ """ resource_type = "AWS::EC2::NetworkPerformanceMetricSubscription" props: PropsDictType = { "Destination": (str, True), "Metric": (str, True), "Source": (str, True), "Statistic": (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 RouteServer(AWSObject): """ `RouteServer <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserver.html>`__ """ resource_type = "AWS::EC2::RouteServer" props: PropsDictType = { "AmazonSideAsn": (integer, True), "PersistRoutes": (str, False), "PersistRoutesDuration": (integer, False), "SnsNotificationsEnabled": (boolean, False), "Tags": (Tags, False), }
[docs]class RouteServerAssociation(AWSObject): """ `RouteServerAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverassociation.html>`__ """ resource_type = "AWS::EC2::RouteServerAssociation" props: PropsDictType = { "RouteServerId": (str, True), "VpcId": (str, True), }
[docs]class RouteServerEndpoint(AWSObject): """ `RouteServerEndpoint <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverendpoint.html>`__ """ resource_type = "AWS::EC2::RouteServerEndpoint" props: PropsDictType = { "RouteServerId": (str, True), "SubnetId": (str, True), "Tags": (Tags, False), }
[docs]class BgpOptions(AWSProperty): """ `BgpOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-routeserverpeer-bgpoptions.html>`__ """ props: PropsDictType = { "PeerAsn": (integer, False), "PeerLivenessDetection": (str, False), }
[docs]class RouteServerPeer(AWSObject): """ `RouteServerPeer <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpeer.html>`__ """ resource_type = "AWS::EC2::RouteServerPeer" props: PropsDictType = { "BgpOptions": (BgpOptions, True), "PeerAddress": (str, True), "RouteServerEndpointId": (str, True), "Tags": (Tags, False), }
[docs]class RouteServerPropagation(AWSObject): """ `RouteServerPropagation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpropagation.html>`__ """ resource_type = "AWS::EC2::RouteServerPropagation" props: PropsDictType = { "RouteServerId": (str, True), "RouteTableId": (str, True), }
[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 SecurityGroupVpcAssociation(AWSObject): """ `SecurityGroupVpcAssociation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupvpcassociation.html>`__ """ resource_type = "AWS::EC2::SecurityGroupVpcAssociation" props: PropsDictType = { "GroupId": (str, True), "VpcId": (str, True), }
[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 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 SpotFleetTagSpecification(AWSProperty): """ `SpotFleetTagSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleettagspecification.html>`__ """ props: PropsDictType = { "ResourceType": (str, False), "Tags": (validate_tags_or_list, False), }
[docs]class SpotPlacement(AWSProperty): """ `SpotPlacement <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotplacement.html>`__ """ props: PropsDictType = { "AvailabilityZone": (str, False), "AvailabilityZoneId": (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), "AvailabilityZoneId": (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), "Tags": (Tags, False), }
[docs]class SqlHaStandbyDetectedInstance(AWSObject): """ `SqlHaStandbyDetectedInstance <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-sqlhastandbydetectedinstance.html>`__ """ resource_type = "AWS::EC2::SqlHaStandbyDetectedInstance" props: PropsDictType = { "InstanceId": (str, True), "SqlServerCredentials": (str, False), }
[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), "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), "Tags": (Tags, 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), "OwnerId": (str, False), "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), "EncryptionSupport": (str, False), "MulticastSupport": (str, False), "PropagationDefaultRouteTableId": (str, False), "SecurityGroupReferencingSupport": (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), "SecurityGroupReferencingSupport": (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 TransitGatewayAttachmentBgpConfiguration(AWSProperty): """ `TransitGatewayAttachmentBgpConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayconnectpeer-transitgatewayattachmentbgpconfiguration.html>`__ """ props: PropsDictType = { "BgpStatus": (str, False), "PeerAddress": (str, False), "PeerAsn": (double, False), "TransitGatewayAddress": (str, False), "TransitGatewayAsn": (double, False), }
[docs]class TransitGatewayConnectPeerConfiguration(AWSProperty): """ `TransitGatewayConnectPeerConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayconnectpeer-transitgatewayconnectpeerconfiguration.html>`__ """ props: PropsDictType = { "BgpConfigurations": ([TransitGatewayAttachmentBgpConfiguration], False), "InsideCidrBlocks": ([str], True), "PeerAddress": (str, True), "Protocol": (str, False), "TransitGatewayAddress": (str, False), }
[docs]class TransitGatewayConnectPeer(AWSObject): """ `TransitGatewayConnectPeer <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnectpeer.html>`__ """ resource_type = "AWS::EC2::TransitGatewayConnectPeer" props: PropsDictType = { "ConnectPeerConfiguration": (TransitGatewayConnectPeerConfiguration, True), "Tags": (Tags, False), "TransitGatewayAttachmentId": (str, True), }
[docs]class TransitGatewayMeteringPolicy(AWSObject): """ `TransitGatewayMeteringPolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymeteringpolicy.html>`__ """ resource_type = "AWS::EC2::TransitGatewayMeteringPolicy" props: PropsDictType = { "MiddleboxAttachmentIds": ([str], False), "Tags": (Tags, False), "TransitGatewayId": (str, True), }
[docs]class TransitGatewayMeteringPolicyEntry(AWSObject): """ `TransitGatewayMeteringPolicyEntry <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymeteringpolicyentry.html>`__ """ resource_type = "AWS::EC2::TransitGatewayMeteringPolicyEntry" props: PropsDictType = { "DestinationCidrBlock": (str, False), "DestinationPortRange": (str, False), "DestinationTransitGatewayAttachmentId": (str, False), "DestinationTransitGatewayAttachmentType": (str, False), "MeteredAccount": (str, True), "PolicyRuleNumber": (integer, True), "Protocol": (str, False), "SourceCidrBlock": (str, False), "SourcePortRange": (str, False), "SourceTransitGatewayAttachmentId": (str, False), "SourceTransitGatewayAttachmentType": (str, False), "TransitGatewayMeteringPolicyId": (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, True), "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 VPCBlockPublicAccessExclusion(AWSObject): """ `VPCBlockPublicAccessExclusion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcblockpublicaccessexclusion.html>`__ """ resource_type = "AWS::EC2::VPCBlockPublicAccessExclusion" props: PropsDictType = { "InternetGatewayExclusionMode": (str, True), "SubnetId": (str, False), "Tags": (Tags, False), "VpcId": (str, False), }
[docs]class VPCBlockPublicAccessOptions(AWSObject): """ `VPCBlockPublicAccessOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcblockpublicaccessoptions.html>`__ """ resource_type = "AWS::EC2::VPCBlockPublicAccessOptions" props: PropsDictType = { "InternetGatewayBlockMode": (str, True), }
[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), "Ipv6CidrBlockNetworkBorderGroup": (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 VPCEncryptionControl(AWSObject): """ `VPCEncryptionControl <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcencryptioncontrol.html>`__ """ resource_type = "AWS::EC2::VPCEncryptionControl" props: PropsDictType = { "EgressOnlyInternetGatewayExclusionInput": (str, False), "ElasticFileSystemExclusionInput": (str, False), "InternetGatewayExclusionInput": (str, False), "LambdaExclusionInput": (str, False), "Mode": (str, False), "NatGatewayExclusionInput": (str, False), "Tags": (Tags, False), "VirtualPrivateGatewayExclusionInput": (str, False), "VpcId": (str, False), "VpcLatticeExclusionInput": (str, False), "VpcPeeringExclusionInput": (str, False), }
[docs]class DnsOptionsSpecification(AWSProperty): """ `DnsOptionsSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpcendpoint-dnsoptionsspecification.html>`__ """ props: PropsDictType = { "DnsRecordIpType": (str, False), "PrivateDnsOnlyForInboundResolverEndpoint": (str, False), "PrivateDnsPreference": (str, False), "PrivateDnsSpecifiedDomains": ([str], False), }
[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 = { "DnsOptions": (DnsOptionsSpecification, False), "IpAddressType": (str, False), "PolicyDocument": (policytypes, False), "PrivateDnsEnabled": (boolean, False), "ResourceConfigurationArn": (str, False), "RouteTableIds": ([str], False), "SecurityGroupIds": ([str], False), "ServiceName": (str, False), "ServiceNetworkArn": (str, False), "ServiceRegion": (str, False), "SubnetIds": ([str], False), "Tags": (Tags, 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), "SupportedIpAddressTypes": ([str], False), "SupportedRegions": ([str], False), "Tags": (Tags, 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 = { "AssumeRoleRegion": (str, False), "PeerOwnerId": (str, False), "PeerRegion": (str, False), "PeerRoleArn": (str, False), "PeerVpcId": (str, True), "Tags": (validate_tags_or_list, False), "VpcId": (str, True), }
[docs]class VPNConcentrator(AWSObject): """ `VPNConcentrator <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconcentrator.html>`__ """ resource_type = "AWS::EC2::VPNConcentrator" props: PropsDictType = { "Tags": (Tags, False), "TransitGatewayId": (str, True), "Type": (str, True), }
[docs]class IKEVersionsRequestListValue(AWSProperty): """ `IKEVersionsRequestListValue <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-ikeversionsrequestlistvalue.html>`__ """ props: PropsDictType = { "Value": (str, False), }
[docs]class Phase1DHGroupNumbersRequestListValue(AWSProperty): """ `Phase1DHGroupNumbersRequestListValue <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase1dhgroupnumbersrequestlistvalue.html>`__ """ props: PropsDictType = { "Value": (integer, False), }
[docs]class Phase1EncryptionAlgorithmsRequestListValue(AWSProperty): """ `Phase1EncryptionAlgorithmsRequestListValue <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase1encryptionalgorithmsrequestlistvalue.html>`__ """ props: PropsDictType = { "Value": (str, False), }
[docs]class Phase1IntegrityAlgorithmsRequestListValue(AWSProperty): """ `Phase1IntegrityAlgorithmsRequestListValue <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase1integrityalgorithmsrequestlistvalue.html>`__ """ props: PropsDictType = { "Value": (str, False), }
[docs]class Phase2DHGroupNumbersRequestListValue(AWSProperty): """ `Phase2DHGroupNumbersRequestListValue <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase2dhgroupnumbersrequestlistvalue.html>`__ """ props: PropsDictType = { "Value": (integer, False), }
[docs]class Phase2EncryptionAlgorithmsRequestListValue(AWSProperty): """ `Phase2EncryptionAlgorithmsRequestListValue <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase2encryptionalgorithmsrequestlistvalue.html>`__ """ props: PropsDictType = { "Value": (str, False), }
[docs]class Phase2IntegrityAlgorithmsRequestListValue(AWSProperty): """ `Phase2IntegrityAlgorithmsRequestListValue <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase2integrityalgorithmsrequestlistvalue.html>`__ """ props: PropsDictType = { "Value": (str, False), }
[docs]class CloudwatchLogOptionsSpecification(AWSProperty): """ `CloudwatchLogOptionsSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-cloudwatchlogoptionsspecification.html>`__ """ props: PropsDictType = { "BgpLogEnabled": (boolean, False), "BgpLogGroupArn": (str, False), "BgpLogOutputFormat": (str, False), "LogEnabled": (boolean, False), "LogGroupArn": (str, False), "LogOutputFormat": (str, False), }
[docs]class VpnTunnelLogOptionsSpecification(AWSProperty): """ `VpnTunnelLogOptionsSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunnellogoptionsspecification.html>`__ """ props: PropsDictType = { "CloudwatchLogOptions": (CloudwatchLogOptionsSpecification, False), }
[docs]class VpnTunnelOptionsSpecification(AWSProperty): """ `VpnTunnelOptionsSpecification <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html>`__ """ props: PropsDictType = { "DPDTimeoutAction": (str, False), "DPDTimeoutSeconds": (integer, False), "EnableTunnelLifecycleControl": (boolean, False), "IKEVersions": ([IKEVersionsRequestListValue], False), "LogOptions": (VpnTunnelLogOptionsSpecification, False), "Phase1DHGroupNumbers": ([Phase1DHGroupNumbersRequestListValue], False), "Phase1EncryptionAlgorithms": ( [Phase1EncryptionAlgorithmsRequestListValue], False, ), "Phase1IntegrityAlgorithms": ( [Phase1IntegrityAlgorithmsRequestListValue], False, ), "Phase1LifetimeSeconds": (integer, False), "Phase2DHGroupNumbers": ([Phase2DHGroupNumbersRequestListValue], False), "Phase2EncryptionAlgorithms": ( [Phase2EncryptionAlgorithmsRequestListValue], False, ), "Phase2IntegrityAlgorithms": ( [Phase2IntegrityAlgorithmsRequestListValue], False, ), "Phase2LifetimeSeconds": (integer, False), "PreSharedKey": (vpn_pre_shared_key, False), "RekeyFuzzPercentage": (integer, False), "RekeyMarginTimeSeconds": (integer, False), "ReplayWindowSize": (integer, False), "StartupAction": (str, False), "TunnelInsideCidr": (vpn_tunnel_inside_cidr, False), "TunnelInsideIpv6Cidr": (str, 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), "EnableAcceleration": (boolean, False), "LocalIpv4NetworkCidr": (str, False), "LocalIpv6NetworkCidr": (str, False), "OutsideIpAddressType": (str, False), "PreSharedKeyStorage": (str, False), "RemoteIpv4NetworkCidr": (str, False), "RemoteIpv6NetworkCidr": (str, False), "StaticRoutesOnly": (boolean, False), "Tags": (validate_tags_or_list, False), "TransitGatewayId": (str, False), "TransportTransitGatewayAttachmentId": (str, False), "TunnelBandwidth": (str, False), "TunnelInsideIpVersion": (str, False), "Type": (str, True), "VpnConcentratorId": (str, False), "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-vpngatewayroutepropagation.html>`__ """ resource_type = "AWS::EC2::VPNGatewayRoutePropagation" props: PropsDictType = { "RouteTableIds": ([str], True), "VpnGatewayId": (str, True), }
[docs]class CidrOptions(AWSProperty): """ `CidrOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessendpoint-cidroptions.html>`__ """ props: PropsDictType = { "Cidr": (str, False), "PortRanges": ([PortRange], False), "Protocol": (str, False), "SubnetIds": ([str], False), }
[docs]class VerifiedAccessEndpointPortRange(AWSProperty): """ `VerifiedAccessEndpointPortRange <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessendpoint-portrange.html>`__ """ props: PropsDictType = { "FromPort": (integer, False), "ToPort": (integer, False), }
[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), "PortRanges": ([VerifiedAccessEndpointPortRange], 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), "PortRanges": ([PortRange], False), "Protocol": (str, False), }
[docs]class RdsOptions(AWSProperty): """ `RdsOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessendpoint-rdsoptions.html>`__ """ props: PropsDictType = { "Port": (integer, False), "Protocol": (str, False), "RdsDbClusterArn": (str, False), "RdsDbInstanceArn": (str, False), "RdsDbProxyArn": (str, False), "RdsEndpoint": (str, False), "SubnetIds": ([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, False), "AttachmentType": (str, True), "CidrOptions": (CidrOptions, False), "Description": (str, False), "DomainCertificateArn": (str, False), "EndpointDomainPrefix": (str, False), "EndpointType": (str, True), "LoadBalancerOptions": (LoadBalancerOptions, False), "NetworkInterfaceOptions": (NetworkInterfaceOptions, False), "PolicyDocument": (str, False), "PolicyEnabled": (boolean, False), "RdsOptions": (RdsOptions, 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 = { "CidrEndpointsCustomSubDomain": (str, False), "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 NativeApplicationOidcOptions(AWSProperty): """ `NativeApplicationOidcOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-nativeapplicationoidcoptions.html>`__ """ props: PropsDictType = { "AuthorizationEndpoint": (str, False), "ClientId": (str, False), "ClientSecret": (str, False), "Issuer": (str, False), "PublicSigningKeyEndpoint": (str, False), "Scope": (str, False), "TokenEndpoint": (str, False), "UserInfoEndpoint": (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), "NativeApplicationOidcOptions": (NativeApplicationOidcOptions, 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, False), "AvailabilityZoneId": (str, False), "Encrypted": (boolean, False), "Iops": (integer, False), "KmsKeyId": (str, False), "MultiAttachEnabled": (boolean, False), "OutpostArn": (str, False), "Size": (integer, False), "SnapshotId": (str, False), "SourceVolumeId": (str, False), "Tags": (validate_tags_or_list, False), "Throughput": (integer, False), "VolumeInitializationRate": (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), "EbsCardIndex": (integer, False), "InstanceId": (str, True), "VolumeId": (str, True), }
[docs]class BlockPublicAccessStates(AWSProperty): """ `BlockPublicAccessStates <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-blockpublicaccessstates.html>`__ """ props: PropsDictType = { "InternetGatewayBlockMode": (str, False), }
[docs]class CapacityAllocation(AWSProperty): """ `CapacityAllocation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservation-capacityallocation.html>`__ """ props: PropsDictType = { "AllocationType": (str, False), "Count": (integer, False), }
[docs]class CommitmentInfo(AWSProperty): """ `CommitmentInfo <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservation-commitmentinfo.html>`__ """ props: PropsDictType = { "CommitmentEndDate": (str, False), "CommittedInstanceCount": (integer, False), }
[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 InstanceConnectEndpointDnsNames(AWSProperty): """ `InstanceConnectEndpointDnsNames <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instanceconnectendpoint-instanceconnectendpointdnsnames.html>`__ """ props: PropsDictType = { "DnsName": (str, False), "FipsDnsName": (str, False), }
[docs]class InstanceConnectEndpointPublicDnsNames(AWSProperty): """ `InstanceConnectEndpointPublicDnsNames <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instanceconnectendpoint-instanceconnectendpointpublicdnsnames.html>`__ """ props: PropsDictType = { "Dualstack": (InstanceConnectEndpointDnsNames, False), "Ipv4": (InstanceConnectEndpointDnsNames, 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 PublicIpDnsNameOptions(AWSProperty): """ `PublicIpDnsNameOptions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-publicipdnsnameoptions.html>`__ """ props: PropsDictType = { "DnsHostnameType": (str, False), "PublicDualStackDnsName": (str, False), "PublicIpv4DnsName": (str, False), "PublicIpv6DnsName": (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 State(AWSProperty): """ `State <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-state.html>`__ """ props: PropsDictType = { "Code": (str, False), "Name": (str, 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), }
[docs]class VpcEncryptionControlExclusion(AWSProperty): """ `VpcEncryptionControlExclusion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpcencryptioncontrol-vpcencryptioncontrolexclusion.html>`__ """ props: PropsDictType = { "State": (str, False), "StateMessage": (str, False), }