aws-cdk-lib 2.218.0__py3-none-any.whl → 2.219.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (35) hide show
  1. aws_cdk/__init__.py +19 -19
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.218.0.jsii.tgz → aws-cdk-lib@2.219.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amazonmq/__init__.py +98 -87
  5. aws_cdk/aws_apigateway/__init__.py +39 -0
  6. aws_cdk/aws_bcmdataexports/__init__.py +9 -0
  7. aws_cdk/aws_bedrock/__init__.py +356 -1
  8. aws_cdk/aws_bedrockagentcore/__init__.py +297 -157
  9. aws_cdk/aws_codebuild/__init__.py +339 -62
  10. aws_cdk/aws_connect/__init__.py +9 -9
  11. aws_cdk/aws_cur/__init__.py +5 -3
  12. aws_cdk/aws_datasync/__init__.py +44 -22
  13. aws_cdk/aws_datazone/__init__.py +35 -33
  14. aws_cdk/aws_directoryservice/__init__.py +0 -29
  15. aws_cdk/aws_dms/__init__.py +3 -5
  16. aws_cdk/aws_ec2/__init__.py +2622 -22
  17. aws_cdk/aws_ecs/__init__.py +2681 -79
  18. aws_cdk/aws_entityresolution/__init__.py +18 -0
  19. aws_cdk/aws_greengrassv2/__init__.py +29 -0
  20. aws_cdk/aws_msk/__init__.py +4 -2
  21. aws_cdk/aws_networkfirewall/__init__.py +6 -2
  22. aws_cdk/aws_networkmanager/__init__.py +29 -29
  23. aws_cdk/aws_opensearchservice/__init__.py +58 -0
  24. aws_cdk/aws_opsworkscm/__init__.py +0 -29
  25. aws_cdk/aws_quicksight/__init__.py +38 -0
  26. aws_cdk/aws_rds/__init__.py +33 -14
  27. aws_cdk/aws_route53/__init__.py +8 -2
  28. aws_cdk/aws_servicecatalog/__init__.py +78 -86
  29. aws_cdk/aws_smsvoice/__init__.py +319 -0
  30. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.219.0.dist-info}/METADATA +2 -2
  31. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.219.0.dist-info}/RECORD +35 -35
  32. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.219.0.dist-info}/LICENSE +0 -0
  33. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.219.0.dist-info}/NOTICE +0 -0
  34. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.219.0.dist-info}/WHEEL +0 -0
  35. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.219.0.dist-info}/top_level.txt +0 -0
@@ -2903,6 +2903,225 @@ from ..aws_s3_assets import (
2903
2903
  from ..aws_ssm import IStringParameter as _IStringParameter_f2b707f9
2904
2904
 
2905
2905
 
2906
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.AcceleratorManufacturer")
2907
+ class AcceleratorManufacturer(enum.Enum):
2908
+ '''Supported hardware accelerator manufacturers.
2909
+
2910
+ Restricts instance selection to accelerators from a particular vendor.
2911
+ Useful for choosing specific ecosystems (e.g., NVIDIA CUDA, AWS chips).
2912
+
2913
+ :exampleMetadata: infused
2914
+
2915
+ Example::
2916
+
2917
+ # vpc: ec2.Vpc
2918
+ # infrastructure_role: iam.Role
2919
+ # instance_profile: iam.InstanceProfile
2920
+
2921
+
2922
+ cluster = ecs.Cluster(self, "Cluster", vpc=vpc)
2923
+
2924
+ # Create a Managed Instances Capacity Provider
2925
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
2926
+ infrastructure_role=infrastructure_role,
2927
+ ec2_instance_profile=instance_profile,
2928
+ subnets=vpc.private_subnets,
2929
+ security_groups=[ec2.SecurityGroup(self, "MISecurityGroup", vpc=vpc)],
2930
+ instance_requirements=ec2.InstanceRequirementsConfig(
2931
+ v_cpu_count_min=1,
2932
+ memory_min=Size.gibibytes(2),
2933
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL],
2934
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA]
2935
+ ),
2936
+ propagate_tags=ecs.PropagateManagedInstancesTags.CAPACITY_PROVIDER
2937
+ )
2938
+
2939
+ # Add the capacity provider to the cluster
2940
+ cluster.add_managed_instances_capacity_provider(mi_capacity_provider)
2941
+
2942
+ task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
2943
+
2944
+ task_definition.add_container("web",
2945
+ image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
2946
+ memory_reservation_mi_b=256
2947
+ )
2948
+
2949
+ ecs.Ec2Service(self, "EC2Service",
2950
+ cluster=cluster,
2951
+ task_definition=task_definition,
2952
+ min_healthy_percent=100,
2953
+ capacity_provider_strategies=[ecs.CapacityProviderStrategy(
2954
+ capacity_provider=mi_capacity_provider.capacity_provider_name,
2955
+ weight=1
2956
+ )
2957
+ ]
2958
+ )
2959
+ '''
2960
+
2961
+ AWS = "AWS"
2962
+ '''Amazon Web Services (e.g., Inferentia, Trainium accelerators).'''
2963
+ AMD = "AMD"
2964
+ '''AMD (e.g., Radeon Pro V520 GPU).'''
2965
+ NVIDIA = "NVIDIA"
2966
+ '''NVIDIA (e.g., A100, V100, T4, K80, M60 GPUs).'''
2967
+ XILINX = "XILINX"
2968
+ '''Xilinx (e.g., VU9P FPGA).'''
2969
+
2970
+
2971
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.AcceleratorName")
2972
+ class AcceleratorName(enum.Enum):
2973
+ '''Specific hardware accelerator models supported by EC2.
2974
+
2975
+ Defines exact accelerator models that can be required or excluded
2976
+ when selecting instance types.
2977
+
2978
+ :exampleMetadata: infused
2979
+
2980
+ Example::
2981
+
2982
+ # infrastructure_role: iam.Role
2983
+ # instance_profile: iam.InstanceProfile
2984
+ # vpc: ec2.Vpc
2985
+
2986
+
2987
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
2988
+ infrastructure_role=infrastructure_role,
2989
+ ec2_instance_profile=instance_profile,
2990
+ subnets=vpc.private_subnets,
2991
+ instance_requirements=ec2.InstanceRequirementsConfig(
2992
+ # Required: CPU and memory constraints
2993
+ v_cpu_count_min=2,
2994
+ v_cpu_count_max=8,
2995
+ memory_min=Size.gibibytes(4),
2996
+ memory_max=Size.gibibytes(32),
2997
+
2998
+ # CPU preferences
2999
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
3000
+ instance_generations=[ec2.InstanceGeneration.CURRENT],
3001
+
3002
+ # Instance type filtering
3003
+ allowed_instance_types=["m5.*", "c5.*"],
3004
+
3005
+ # Performance characteristics
3006
+ burstable_performance=ec2.BurstablePerformance.EXCLUDED,
3007
+ bare_metal=ec2.BareMetal.EXCLUDED,
3008
+
3009
+ # Accelerator requirements (for ML/AI workloads)
3010
+ accelerator_types=[ec2.AcceleratorType.GPU],
3011
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
3012
+ accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
3013
+ accelerator_count_min=1,
3014
+
3015
+ # Storage requirements
3016
+ local_storage=ec2.LocalStorage.REQUIRED,
3017
+ local_storage_types=[ec2.LocalStorageType.SSD],
3018
+ total_local_storage_gBMin=100,
3019
+
3020
+ # Network requirements
3021
+ network_interface_count_min=2,
3022
+ network_bandwidth_gbps_min=10,
3023
+
3024
+ # Cost optimization
3025
+ on_demand_max_price_percentage_over_lowest_price=10
3026
+ )
3027
+ )
3028
+ '''
3029
+
3030
+ A100 = "A100"
3031
+ '''NVIDIA A100 GPU.'''
3032
+ K80 = "K80"
3033
+ '''NVIDIA K80 GPU.'''
3034
+ M60 = "M60"
3035
+ '''NVIDIA M60 GPU.'''
3036
+ RADEON_PRO_V520 = "RADEON_PRO_V520"
3037
+ '''AMD Radeon Pro V520 GPU.'''
3038
+ T4 = "T4"
3039
+ '''NVIDIA T4 GPU.'''
3040
+ V100 = "V100"
3041
+ '''NVIDIA V100 GPU.'''
3042
+ VU9P = "VU9P"
3043
+ '''Xilinx VU9P FPGA.'''
3044
+
3045
+
3046
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.AcceleratorType")
3047
+ class AcceleratorType(enum.Enum):
3048
+ '''Hardware accelerator categories available for EC2 instances.
3049
+
3050
+ Defines the general type of hardware accelerator that can be attached
3051
+ to an instance, typically used in instance requirement specifications
3052
+ (e.g., GPUs for compute-intensive tasks, FPGAs for custom logic, or
3053
+ inference chips for ML workloads).
3054
+
3055
+ :exampleMetadata: infused
3056
+
3057
+ Example::
3058
+
3059
+ # infrastructure_role: iam.Role
3060
+ # instance_profile: iam.InstanceProfile
3061
+ # vpc: ec2.Vpc
3062
+
3063
+
3064
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
3065
+ infrastructure_role=infrastructure_role,
3066
+ ec2_instance_profile=instance_profile,
3067
+ subnets=vpc.private_subnets,
3068
+ instance_requirements=ec2.InstanceRequirementsConfig(
3069
+ # Required: CPU and memory constraints
3070
+ v_cpu_count_min=2,
3071
+ v_cpu_count_max=8,
3072
+ memory_min=Size.gibibytes(4),
3073
+ memory_max=Size.gibibytes(32),
3074
+
3075
+ # CPU preferences
3076
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
3077
+ instance_generations=[ec2.InstanceGeneration.CURRENT],
3078
+
3079
+ # Instance type filtering
3080
+ allowed_instance_types=["m5.*", "c5.*"],
3081
+
3082
+ # Performance characteristics
3083
+ burstable_performance=ec2.BurstablePerformance.EXCLUDED,
3084
+ bare_metal=ec2.BareMetal.EXCLUDED,
3085
+
3086
+ # Accelerator requirements (for ML/AI workloads)
3087
+ accelerator_types=[ec2.AcceleratorType.GPU],
3088
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
3089
+ accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
3090
+ accelerator_count_min=1,
3091
+
3092
+ # Storage requirements
3093
+ local_storage=ec2.LocalStorage.REQUIRED,
3094
+ local_storage_types=[ec2.LocalStorageType.SSD],
3095
+ total_local_storage_gBMin=100,
3096
+
3097
+ # Network requirements
3098
+ network_interface_count_min=2,
3099
+ network_bandwidth_gbps_min=10,
3100
+
3101
+ # Cost optimization
3102
+ on_demand_max_price_percentage_over_lowest_price=10
3103
+ )
3104
+ )
3105
+ '''
3106
+
3107
+ GPU = "GPU"
3108
+ '''Graphics Processing Unit accelerators, such as NVIDIA GPUs.
3109
+
3110
+ Commonly used for machine learning training, graphics rendering,
3111
+ or high-performance parallel computing.
3112
+ '''
3113
+ FPGA = "FPGA"
3114
+ '''Field Programmable Gate Array accelerators, such as Xilinx FPGAs.
3115
+
3116
+ Used for hardware-level customization and specialized workloads.
3117
+ '''
3118
+ INFERENCE = "INFERENCE"
3119
+ '''Inference accelerators, such as AWS Inferentia.
3120
+
3121
+ Purpose-built for efficient machine learning inference.
3122
+ '''
3123
+
3124
+
2906
3125
  class AclCidr(
2907
3126
  metaclass=jsii.JSIIAbstractClass,
2908
3127
  jsii_type="aws-cdk-lib.aws_ec2.AclCidr",
@@ -5368,6 +5587,80 @@ class AwsIpamProps:
5368
5587
  )
5369
5588
 
5370
5589
 
5590
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.BareMetal")
5591
+ class BareMetal(enum.Enum):
5592
+ '''Bare metal support requirements for EC2 instances.
5593
+
5594
+ Controls whether selected instance types must, may, or must not
5595
+ be bare metal variants (i.e., instances that run directly on
5596
+ physical hardware without a hypervisor).
5597
+
5598
+ :exampleMetadata: infused
5599
+
5600
+ Example::
5601
+
5602
+ # infrastructure_role: iam.Role
5603
+ # instance_profile: iam.InstanceProfile
5604
+ # vpc: ec2.Vpc
5605
+
5606
+
5607
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
5608
+ infrastructure_role=infrastructure_role,
5609
+ ec2_instance_profile=instance_profile,
5610
+ subnets=vpc.private_subnets,
5611
+ instance_requirements=ec2.InstanceRequirementsConfig(
5612
+ # Required: CPU and memory constraints
5613
+ v_cpu_count_min=2,
5614
+ v_cpu_count_max=8,
5615
+ memory_min=Size.gibibytes(4),
5616
+ memory_max=Size.gibibytes(32),
5617
+
5618
+ # CPU preferences
5619
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
5620
+ instance_generations=[ec2.InstanceGeneration.CURRENT],
5621
+
5622
+ # Instance type filtering
5623
+ allowed_instance_types=["m5.*", "c5.*"],
5624
+
5625
+ # Performance characteristics
5626
+ burstable_performance=ec2.BurstablePerformance.EXCLUDED,
5627
+ bare_metal=ec2.BareMetal.EXCLUDED,
5628
+
5629
+ # Accelerator requirements (for ML/AI workloads)
5630
+ accelerator_types=[ec2.AcceleratorType.GPU],
5631
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
5632
+ accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
5633
+ accelerator_count_min=1,
5634
+
5635
+ # Storage requirements
5636
+ local_storage=ec2.LocalStorage.REQUIRED,
5637
+ local_storage_types=[ec2.LocalStorageType.SSD],
5638
+ total_local_storage_gBMin=100,
5639
+
5640
+ # Network requirements
5641
+ network_interface_count_min=2,
5642
+ network_bandwidth_gbps_min=10,
5643
+
5644
+ # Cost optimization
5645
+ on_demand_max_price_percentage_over_lowest_price=10
5646
+ )
5647
+ )
5648
+ '''
5649
+
5650
+ INCLUDED = "INCLUDED"
5651
+ '''Bare metal instance types are allowed, but non-bare-metal (virtualized) types may also be selected.'''
5652
+ REQUIRED = "REQUIRED"
5653
+ '''Only bare metal instance types are allowed.
5654
+
5655
+ Non-bare-metal types will be excluded from selection.
5656
+ '''
5657
+ EXCLUDED = "EXCLUDED"
5658
+ '''Bare metal instance types are disallowed.
5659
+
5660
+ Only non-bare-metal types may be selected.
5661
+ '''
5662
+
5663
+
5371
5664
  @jsii.data_type(
5372
5665
  jsii_type="aws-cdk-lib.aws_ec2.BastionHostLinuxProps",
5373
5666
  jsii_struct_bases=[],
@@ -5866,6 +6159,79 @@ class BlockDeviceVolume(
5866
6159
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "virtualName"))
5867
6160
 
5868
6161
 
6162
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.BurstablePerformance")
6163
+ class BurstablePerformance(enum.Enum):
6164
+ '''Burstable CPU performance requirements for EC2 instances.
6165
+
6166
+ Controls whether selected instance types must, may, or must not
6167
+ support burstable vCPU performance (e.g., T3, T4g families).
6168
+
6169
+ :exampleMetadata: infused
6170
+
6171
+ Example::
6172
+
6173
+ # infrastructure_role: iam.Role
6174
+ # instance_profile: iam.InstanceProfile
6175
+ # vpc: ec2.Vpc
6176
+
6177
+
6178
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
6179
+ infrastructure_role=infrastructure_role,
6180
+ ec2_instance_profile=instance_profile,
6181
+ subnets=vpc.private_subnets,
6182
+ instance_requirements=ec2.InstanceRequirementsConfig(
6183
+ # Required: CPU and memory constraints
6184
+ v_cpu_count_min=2,
6185
+ v_cpu_count_max=8,
6186
+ memory_min=Size.gibibytes(4),
6187
+ memory_max=Size.gibibytes(32),
6188
+
6189
+ # CPU preferences
6190
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
6191
+ instance_generations=[ec2.InstanceGeneration.CURRENT],
6192
+
6193
+ # Instance type filtering
6194
+ allowed_instance_types=["m5.*", "c5.*"],
6195
+
6196
+ # Performance characteristics
6197
+ burstable_performance=ec2.BurstablePerformance.EXCLUDED,
6198
+ bare_metal=ec2.BareMetal.EXCLUDED,
6199
+
6200
+ # Accelerator requirements (for ML/AI workloads)
6201
+ accelerator_types=[ec2.AcceleratorType.GPU],
6202
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
6203
+ accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
6204
+ accelerator_count_min=1,
6205
+
6206
+ # Storage requirements
6207
+ local_storage=ec2.LocalStorage.REQUIRED,
6208
+ local_storage_types=[ec2.LocalStorageType.SSD],
6209
+ total_local_storage_gBMin=100,
6210
+
6211
+ # Network requirements
6212
+ network_interface_count_min=2,
6213
+ network_bandwidth_gbps_min=10,
6214
+
6215
+ # Cost optimization
6216
+ on_demand_max_price_percentage_over_lowest_price=10
6217
+ )
6218
+ )
6219
+ '''
6220
+
6221
+ INCLUDED = "INCLUDED"
6222
+ '''Burstable-performance instance types are allowed, but non-burstable types may also be selected.'''
6223
+ REQUIRED = "REQUIRED"
6224
+ '''Only burstable-performance instance types are allowed.
6225
+
6226
+ Non-burstable types will be excluded from selection.
6227
+ '''
6228
+ EXCLUDED = "EXCLUDED"
6229
+ '''Burstable-performance instance types are disallowed.
6230
+
6231
+ Only non-burstable types may be selected.
6232
+ '''
6233
+
6234
+
5869
6235
  @jsii.data_type(
5870
6236
  jsii_type="aws-cdk-lib.aws_ec2.CapacityReservationFleetReference",
5871
6237
  jsii_struct_bases=[],
@@ -12174,6 +12540,294 @@ class CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationProps:
12174
12540
  )
12175
12541
 
12176
12542
 
12543
+ @jsii.data_type(
12544
+ jsii_type="aws-cdk-lib.aws_ec2.CfnLocalGatewayVirtualInterfaceGroupProps",
12545
+ jsii_struct_bases=[],
12546
+ name_mapping={
12547
+ "local_gateway_id": "localGatewayId",
12548
+ "local_bgp_asn": "localBgpAsn",
12549
+ "local_bgp_asn_extended": "localBgpAsnExtended",
12550
+ "tags": "tags",
12551
+ },
12552
+ )
12553
+ class CfnLocalGatewayVirtualInterfaceGroupProps:
12554
+ def __init__(
12555
+ self,
12556
+ *,
12557
+ local_gateway_id: builtins.str,
12558
+ local_bgp_asn: typing.Optional[jsii.Number] = None,
12559
+ local_bgp_asn_extended: typing.Optional[jsii.Number] = None,
12560
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
12561
+ ) -> None:
12562
+ '''Properties for defining a ``CfnLocalGatewayVirtualInterfaceGroup``.
12563
+
12564
+ :param local_gateway_id: The ID of the local gateway.
12565
+ :param local_bgp_asn: The Autonomous System Number(ASN) for the local Border Gateway Protocol (BGP).
12566
+ :param local_bgp_asn_extended: The extended 32-bit ASN for the local BGP configuration.
12567
+ :param tags: The tags assigned to the virtual interface group.
12568
+
12569
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html
12570
+ :exampleMetadata: fixture=_generated
12571
+
12572
+ Example::
12573
+
12574
+ # The code below shows an example of how to instantiate this type.
12575
+ # The values are placeholders you should change.
12576
+ from aws_cdk import aws_ec2 as ec2
12577
+
12578
+ cfn_local_gateway_virtual_interface_group_props = ec2.CfnLocalGatewayVirtualInterfaceGroupProps(
12579
+ local_gateway_id="localGatewayId",
12580
+
12581
+ # the properties below are optional
12582
+ local_bgp_asn=123,
12583
+ local_bgp_asn_extended=123,
12584
+ tags=[CfnTag(
12585
+ key="key",
12586
+ value="value"
12587
+ )]
12588
+ )
12589
+ '''
12590
+ if __debug__:
12591
+ type_hints = typing.get_type_hints(_typecheckingstub__f7ce4c591b68ccf10989a9f20fd3c6f1fc55f0f986e5272574d1a8263ccb9638)
12592
+ check_type(argname="argument local_gateway_id", value=local_gateway_id, expected_type=type_hints["local_gateway_id"])
12593
+ check_type(argname="argument local_bgp_asn", value=local_bgp_asn, expected_type=type_hints["local_bgp_asn"])
12594
+ check_type(argname="argument local_bgp_asn_extended", value=local_bgp_asn_extended, expected_type=type_hints["local_bgp_asn_extended"])
12595
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
12596
+ self._values: typing.Dict[builtins.str, typing.Any] = {
12597
+ "local_gateway_id": local_gateway_id,
12598
+ }
12599
+ if local_bgp_asn is not None:
12600
+ self._values["local_bgp_asn"] = local_bgp_asn
12601
+ if local_bgp_asn_extended is not None:
12602
+ self._values["local_bgp_asn_extended"] = local_bgp_asn_extended
12603
+ if tags is not None:
12604
+ self._values["tags"] = tags
12605
+
12606
+ @builtins.property
12607
+ def local_gateway_id(self) -> builtins.str:
12608
+ '''The ID of the local gateway.
12609
+
12610
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html#cfn-ec2-localgatewayvirtualinterfacegroup-localgatewayid
12611
+ '''
12612
+ result = self._values.get("local_gateway_id")
12613
+ assert result is not None, "Required property 'local_gateway_id' is missing"
12614
+ return typing.cast(builtins.str, result)
12615
+
12616
+ @builtins.property
12617
+ def local_bgp_asn(self) -> typing.Optional[jsii.Number]:
12618
+ '''The Autonomous System Number(ASN) for the local Border Gateway Protocol (BGP).
12619
+
12620
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html#cfn-ec2-localgatewayvirtualinterfacegroup-localbgpasn
12621
+ '''
12622
+ result = self._values.get("local_bgp_asn")
12623
+ return typing.cast(typing.Optional[jsii.Number], result)
12624
+
12625
+ @builtins.property
12626
+ def local_bgp_asn_extended(self) -> typing.Optional[jsii.Number]:
12627
+ '''The extended 32-bit ASN for the local BGP configuration.
12628
+
12629
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html#cfn-ec2-localgatewayvirtualinterfacegroup-localbgpasnextended
12630
+ '''
12631
+ result = self._values.get("local_bgp_asn_extended")
12632
+ return typing.cast(typing.Optional[jsii.Number], result)
12633
+
12634
+ @builtins.property
12635
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
12636
+ '''The tags assigned to the virtual interface group.
12637
+
12638
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html#cfn-ec2-localgatewayvirtualinterfacegroup-tags
12639
+ '''
12640
+ result = self._values.get("tags")
12641
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
12642
+
12643
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
12644
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12645
+
12646
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12647
+ return not (rhs == self)
12648
+
12649
+ def __repr__(self) -> str:
12650
+ return "CfnLocalGatewayVirtualInterfaceGroupProps(%s)" % ", ".join(
12651
+ k + "=" + repr(v) for k, v in self._values.items()
12652
+ )
12653
+
12654
+
12655
+ @jsii.data_type(
12656
+ jsii_type="aws-cdk-lib.aws_ec2.CfnLocalGatewayVirtualInterfaceProps",
12657
+ jsii_struct_bases=[],
12658
+ name_mapping={
12659
+ "local_address": "localAddress",
12660
+ "local_gateway_virtual_interface_group_id": "localGatewayVirtualInterfaceGroupId",
12661
+ "outpost_lag_id": "outpostLagId",
12662
+ "peer_address": "peerAddress",
12663
+ "vlan": "vlan",
12664
+ "peer_bgp_asn": "peerBgpAsn",
12665
+ "peer_bgp_asn_extended": "peerBgpAsnExtended",
12666
+ "tags": "tags",
12667
+ },
12668
+ )
12669
+ class CfnLocalGatewayVirtualInterfaceProps:
12670
+ def __init__(
12671
+ self,
12672
+ *,
12673
+ local_address: builtins.str,
12674
+ local_gateway_virtual_interface_group_id: builtins.str,
12675
+ outpost_lag_id: builtins.str,
12676
+ peer_address: builtins.str,
12677
+ vlan: jsii.Number,
12678
+ peer_bgp_asn: typing.Optional[jsii.Number] = None,
12679
+ peer_bgp_asn_extended: typing.Optional[jsii.Number] = None,
12680
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
12681
+ ) -> None:
12682
+ '''Properties for defining a ``CfnLocalGatewayVirtualInterface``.
12683
+
12684
+ :param local_address: The local address.
12685
+ :param local_gateway_virtual_interface_group_id: The ID of the local gateway virtual interface group.
12686
+ :param outpost_lag_id: The Outpost LAG ID.
12687
+ :param peer_address: The peer address.
12688
+ :param vlan: The ID of the VLAN.
12689
+ :param peer_bgp_asn: The peer BGP ASN.
12690
+ :param peer_bgp_asn_extended: The extended 32-bit ASN of the BGP peer for use with larger ASN values.
12691
+ :param tags: The tags assigned to the virtual interface.
12692
+
12693
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html
12694
+ :exampleMetadata: fixture=_generated
12695
+
12696
+ Example::
12697
+
12698
+ # The code below shows an example of how to instantiate this type.
12699
+ # The values are placeholders you should change.
12700
+ from aws_cdk import aws_ec2 as ec2
12701
+
12702
+ cfn_local_gateway_virtual_interface_props = ec2.CfnLocalGatewayVirtualInterfaceProps(
12703
+ local_address="localAddress",
12704
+ local_gateway_virtual_interface_group_id="localGatewayVirtualInterfaceGroupId",
12705
+ outpost_lag_id="outpostLagId",
12706
+ peer_address="peerAddress",
12707
+ vlan=123,
12708
+
12709
+ # the properties below are optional
12710
+ peer_bgp_asn=123,
12711
+ peer_bgp_asn_extended=123,
12712
+ tags=[CfnTag(
12713
+ key="key",
12714
+ value="value"
12715
+ )]
12716
+ )
12717
+ '''
12718
+ if __debug__:
12719
+ type_hints = typing.get_type_hints(_typecheckingstub__f937f1e5478df1249afd18165f33effb63a12f7ed00b1831a2fbee04cab4c28a)
12720
+ check_type(argname="argument local_address", value=local_address, expected_type=type_hints["local_address"])
12721
+ check_type(argname="argument local_gateway_virtual_interface_group_id", value=local_gateway_virtual_interface_group_id, expected_type=type_hints["local_gateway_virtual_interface_group_id"])
12722
+ check_type(argname="argument outpost_lag_id", value=outpost_lag_id, expected_type=type_hints["outpost_lag_id"])
12723
+ check_type(argname="argument peer_address", value=peer_address, expected_type=type_hints["peer_address"])
12724
+ check_type(argname="argument vlan", value=vlan, expected_type=type_hints["vlan"])
12725
+ check_type(argname="argument peer_bgp_asn", value=peer_bgp_asn, expected_type=type_hints["peer_bgp_asn"])
12726
+ check_type(argname="argument peer_bgp_asn_extended", value=peer_bgp_asn_extended, expected_type=type_hints["peer_bgp_asn_extended"])
12727
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
12728
+ self._values: typing.Dict[builtins.str, typing.Any] = {
12729
+ "local_address": local_address,
12730
+ "local_gateway_virtual_interface_group_id": local_gateway_virtual_interface_group_id,
12731
+ "outpost_lag_id": outpost_lag_id,
12732
+ "peer_address": peer_address,
12733
+ "vlan": vlan,
12734
+ }
12735
+ if peer_bgp_asn is not None:
12736
+ self._values["peer_bgp_asn"] = peer_bgp_asn
12737
+ if peer_bgp_asn_extended is not None:
12738
+ self._values["peer_bgp_asn_extended"] = peer_bgp_asn_extended
12739
+ if tags is not None:
12740
+ self._values["tags"] = tags
12741
+
12742
+ @builtins.property
12743
+ def local_address(self) -> builtins.str:
12744
+ '''The local address.
12745
+
12746
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-localaddress
12747
+ '''
12748
+ result = self._values.get("local_address")
12749
+ assert result is not None, "Required property 'local_address' is missing"
12750
+ return typing.cast(builtins.str, result)
12751
+
12752
+ @builtins.property
12753
+ def local_gateway_virtual_interface_group_id(self) -> builtins.str:
12754
+ '''The ID of the local gateway virtual interface group.
12755
+
12756
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-localgatewayvirtualinterfacegroupid
12757
+ '''
12758
+ result = self._values.get("local_gateway_virtual_interface_group_id")
12759
+ assert result is not None, "Required property 'local_gateway_virtual_interface_group_id' is missing"
12760
+ return typing.cast(builtins.str, result)
12761
+
12762
+ @builtins.property
12763
+ def outpost_lag_id(self) -> builtins.str:
12764
+ '''The Outpost LAG ID.
12765
+
12766
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-outpostlagid
12767
+ '''
12768
+ result = self._values.get("outpost_lag_id")
12769
+ assert result is not None, "Required property 'outpost_lag_id' is missing"
12770
+ return typing.cast(builtins.str, result)
12771
+
12772
+ @builtins.property
12773
+ def peer_address(self) -> builtins.str:
12774
+ '''The peer address.
12775
+
12776
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-peeraddress
12777
+ '''
12778
+ result = self._values.get("peer_address")
12779
+ assert result is not None, "Required property 'peer_address' is missing"
12780
+ return typing.cast(builtins.str, result)
12781
+
12782
+ @builtins.property
12783
+ def vlan(self) -> jsii.Number:
12784
+ '''The ID of the VLAN.
12785
+
12786
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-vlan
12787
+ '''
12788
+ result = self._values.get("vlan")
12789
+ assert result is not None, "Required property 'vlan' is missing"
12790
+ return typing.cast(jsii.Number, result)
12791
+
12792
+ @builtins.property
12793
+ def peer_bgp_asn(self) -> typing.Optional[jsii.Number]:
12794
+ '''The peer BGP ASN.
12795
+
12796
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-peerbgpasn
12797
+ '''
12798
+ result = self._values.get("peer_bgp_asn")
12799
+ return typing.cast(typing.Optional[jsii.Number], result)
12800
+
12801
+ @builtins.property
12802
+ def peer_bgp_asn_extended(self) -> typing.Optional[jsii.Number]:
12803
+ '''The extended 32-bit ASN of the BGP peer for use with larger ASN values.
12804
+
12805
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-peerbgpasnextended
12806
+ '''
12807
+ result = self._values.get("peer_bgp_asn_extended")
12808
+ return typing.cast(typing.Optional[jsii.Number], result)
12809
+
12810
+ @builtins.property
12811
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
12812
+ '''The tags assigned to the virtual interface.
12813
+
12814
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-tags
12815
+ '''
12816
+ result = self._values.get("tags")
12817
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
12818
+
12819
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
12820
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12821
+
12822
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12823
+ return not (rhs == self)
12824
+
12825
+ def __repr__(self) -> str:
12826
+ return "CfnLocalGatewayVirtualInterfaceProps(%s)" % ", ".join(
12827
+ k + "=" + repr(v) for k, v in self._values.items()
12828
+ )
12829
+
12830
+
12177
12831
  @jsii.data_type(
12178
12832
  jsii_type="aws-cdk-lib.aws_ec2.CfnNatGatewayProps",
12179
12833
  jsii_struct_bases=[],
@@ -19914,7 +20568,7 @@ class CfnVPCEndpointProps:
19914
20568
 
19915
20569
  For CloudFormation templates in YAML, you can provide the policy in JSON or YAML format. For example, if you have a JSON policy, you can convert it to YAML before including it in the YAML template, and AWS CloudFormation converts the policy to JSON format before calling the API actions for AWS PrivateLink . Alternatively, you can include the JSON directly in the YAML, as shown in the following ``Properties`` section:
19916
20570
 
19917
- ``Properties: VpcEndpointType: 'Interface' ServiceName: !Sub 'com.amazonaws.${AWS::Region}.logs' PolicyDocument: '{ "Version":"2012-10-17", "Statement": [{ "Effect":"Allow", "Principal":"*", "Action":["logs:Describe*","logs:Get*","logs:List*","logs:FilterLogEvents"], "Resource":"*" }] }'``
20571
+ ``Properties: VpcEndpointType: 'Interface' ServiceName: !Sub 'com.amazonaws.${AWS::Region}.logs' PolicyDocument: '{ "Version":"2012-10-17", "Statement": [{ "Effect":"Allow", "Principal":"*", "Action":["logs:Describe*","logs:Get*","logs:List*","logs:FilterLogEvents"], "Resource":"*" }] }'``
19918
20572
 
19919
20573
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-policydocument
19920
20574
  '''
@@ -22426,11 +23080,11 @@ class CfnVolumeProps:
22426
23080
  :param availability_zone: The ID of the Availability Zone in which to create the volume. For example, ``us-east-1a`` . Either ``AvailabilityZone`` or ``AvailabilityZoneId`` must be specified, but not both.
22427
23081
  :param auto_enable_io: Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O.
22428
23082
  :param encrypted: Indicates whether the volume should be encrypted. The effect of setting the encryption state to ``true`` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see `Encryption by default <https://docs.aws.amazon.com/ebs/latest/userguide/work-with-ebs-encr.html#encryption-by-default>`_ in the *Amazon EBS User Guide* . Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see `Supported instance types <https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances>`_ .
22429
- :param iops: The number of I/O operations per second (IOPS). For ``gp3`` , ``io1`` , and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: - ``gp3`` : 3,000 - 16,000 IOPS - ``io1`` : 100 - 64,000 IOPS - ``io2`` : 100 - 256,000 IOPS For ``io2`` volumes, you can achieve up to 256,000 IOPS on `instances built on the Nitro System <https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html>`_ . On other instances, you can achieve performance up to 32,000 IOPS. This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS. This parameter is not supported for ``gp2`` , ``st1`` , ``sc1`` , or ``standard`` volumes.
23083
+ :param iops: The number of I/O operations per second (IOPS). For ``gp3`` , ``io1`` , and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: - ``gp3`` : 3,000 - 80,000 IOPS - ``io1`` : 100 - 64,000 IOPS - ``io2`` : 100 - 256,000 IOPS For ``io2`` volumes, you can achieve up to 256,000 IOPS on `instances built on the Nitro System <https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html>`_ . On other instances, you can achieve performance up to 32,000 IOPS. This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS. This parameter is not supported for ``gp2`` , ``st1`` , ``sc1`` , or ``standard`` volumes.
22430
23084
  :param kms_key_id: The identifier of the AWS KMS key to use for Amazon EBS encryption. If ``KmsKeyId`` is specified, the encrypted state must be ``true`` . If you omit this property and your account is enabled for encryption by default, or *Encrypted* is set to ``true`` , then the volume is encrypted using the default key specified for your account. If your account does not have a default key, then the volume is encrypted using the AWS managed key . Alternatively, if you want to specify a different key, you can specify one of the following: - Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. - Key alias. Specify the alias for the key, prefixed with ``alias/`` . For example, for a key with the alias ``my_cmk`` , use ``alias/my_cmk`` . Or to specify the AWS managed key , use ``alias/aws/ebs`` . - Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. - Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
22431
23085
  :param multi_attach_enabled: Indicates whether Amazon EBS Multi-Attach is enabled. AWS CloudFormation does not currently support updating a single-attach volume to be multi-attach enabled, updating a multi-attach enabled volume to be single-attach, or updating the size or number of I/O operations per second (IOPS) of a multi-attach enabled volume.
22432
23086
  :param outpost_arn: The Amazon Resource Name (ARN) of the Outpost.
22433
- :param size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size. The following are the supported volumes sizes for each volume type: - ``gp2`` and ``gp3`` : 1 - 16,384 GiB - ``io1`` : 4 - 16,384 GiB - ``io2`` : 4 - 65,536 GiB - ``st1`` and ``sc1`` : 125 - 16,384 GiB - ``standard`` : 1 - 1024 GiB
23087
+ :param size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size. The following are the supported volumes sizes for each volume type: - ``gp2`` : 1 - 16,384 GiB - ``gp3`` : 1 - 65,536 GiB - ``io1`` : 4 - 16,384 GiB - ``io2`` : 4 - 65,536 GiB - ``st1`` and ``sc1`` : 125 - 16,384 GiB - ``standard`` : 1 - 1024 GiB
22434
23088
  :param snapshot_id: The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.
22435
23089
  :param tags: The tags to apply to the volume during creation.
22436
23090
  :param throughput: The throughput to provision for a volume, with a maximum of 1,000 MiB/s. This parameter is valid only for ``gp3`` volumes. The default value is 125. Valid Range: Minimum value of 125. Maximum value of 1000.
@@ -22558,7 +23212,7 @@ class CfnVolumeProps:
22558
23212
 
22559
23213
  The following are the supported values for each volume type:
22560
23214
 
22561
- - ``gp3`` : 3,000 - 16,000 IOPS
23215
+ - ``gp3`` : 3,000 - 80,000 IOPS
22562
23216
  - ``io1`` : 100 - 64,000 IOPS
22563
23217
  - ``io2`` : 100 - 256,000 IOPS
22564
23218
 
@@ -22621,7 +23275,8 @@ class CfnVolumeProps:
22621
23275
 
22622
23276
  The following are the supported volumes sizes for each volume type:
22623
23277
 
22624
- - ``gp2`` and ``gp3`` : 1 - 16,384 GiB
23278
+ - ``gp2`` : 1 - 16,384 GiB
23279
+ - ``gp3`` : 1 - 65,536 GiB
22625
23280
  - ``io1`` : 4 - 16,384 GiB
22626
23281
  - ``io2`` : 4 - 65,536 GiB
22627
23282
  - ``st1`` and ``sc1`` : 125 - 16,384 GiB
@@ -25297,6 +25952,70 @@ class CpuCredits(enum.Enum):
25297
25952
  '''
25298
25953
 
25299
25954
 
25955
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.CpuManufacturer")
25956
+ class CpuManufacturer(enum.Enum):
25957
+ '''CPU manufacturers supported by EC2 instances.
25958
+
25959
+ Restricts the acceptable CPU vendor for selected instance types.
25960
+
25961
+ :exampleMetadata: infused
25962
+
25963
+ Example::
25964
+
25965
+ # vpc: ec2.Vpc
25966
+ # infrastructure_role: iam.Role
25967
+ # instance_profile: iam.InstanceProfile
25968
+
25969
+
25970
+ cluster = ecs.Cluster(self, "Cluster", vpc=vpc)
25971
+
25972
+ # Create a Managed Instances Capacity Provider
25973
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
25974
+ infrastructure_role=infrastructure_role,
25975
+ ec2_instance_profile=instance_profile,
25976
+ subnets=vpc.private_subnets,
25977
+ security_groups=[ec2.SecurityGroup(self, "MISecurityGroup", vpc=vpc)],
25978
+ instance_requirements=ec2.InstanceRequirementsConfig(
25979
+ v_cpu_count_min=1,
25980
+ memory_min=Size.gibibytes(2),
25981
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL],
25982
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA]
25983
+ ),
25984
+ propagate_tags=ecs.PropagateManagedInstancesTags.CAPACITY_PROVIDER
25985
+ )
25986
+
25987
+ # Add the capacity provider to the cluster
25988
+ cluster.add_managed_instances_capacity_provider(mi_capacity_provider)
25989
+
25990
+ task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
25991
+
25992
+ task_definition.add_container("web",
25993
+ image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
25994
+ memory_reservation_mi_b=256
25995
+ )
25996
+
25997
+ ecs.Ec2Service(self, "EC2Service",
25998
+ cluster=cluster,
25999
+ task_definition=task_definition,
26000
+ min_healthy_percent=100,
26001
+ capacity_provider_strategies=[ecs.CapacityProviderStrategy(
26002
+ capacity_provider=mi_capacity_provider.capacity_provider_name,
26003
+ weight=1
26004
+ )
26005
+ ]
26006
+ )
26007
+ '''
26008
+
26009
+ INTEL = "INTEL"
26010
+ '''Intel CPUs (e.g., Xeon families).'''
26011
+ AMD = "AMD"
26012
+ '''AMD CPUs (e.g., EPYC families).'''
26013
+ AWS = "AWS"
26014
+ '''AWS-designed CPUs (e.g., Graviton families).'''
26015
+ APPLE = "APPLE"
26016
+ '''Apple CPUs (e.g., M1, M2).'''
26017
+
26018
+
25300
26019
  @jsii.data_type(
25301
26020
  jsii_type="aws-cdk-lib.aws_ec2.CreateIpv6CidrBlocksRequest",
25302
26021
  jsii_struct_bases=[],
@@ -29291,6 +30010,100 @@ class _ILocalGatewayRouteTableVirtualInterfaceGroupAssociationRefProxy(
29291
30010
  typing.cast(typing.Any, ILocalGatewayRouteTableVirtualInterfaceGroupAssociationRef).__jsii_proxy_class__ = lambda : _ILocalGatewayRouteTableVirtualInterfaceGroupAssociationRefProxy
29292
30011
 
29293
30012
 
30013
+ @jsii.interface(jsii_type="aws-cdk-lib.aws_ec2.ILocalGatewayVirtualInterfaceGroupRef")
30014
+ class ILocalGatewayVirtualInterfaceGroupRef(
30015
+ _constructs_77d1e7e8.IConstruct,
30016
+ typing_extensions.Protocol,
30017
+ ):
30018
+ '''(experimental) Indicates that this resource can be referenced as a LocalGatewayVirtualInterfaceGroup.
30019
+
30020
+ :stability: experimental
30021
+ '''
30022
+
30023
+ @builtins.property
30024
+ @jsii.member(jsii_name="localGatewayVirtualInterfaceGroupRef")
30025
+ def local_gateway_virtual_interface_group_ref(
30026
+ self,
30027
+ ) -> "LocalGatewayVirtualInterfaceGroupReference":
30028
+ '''(experimental) A reference to a LocalGatewayVirtualInterfaceGroup resource.
30029
+
30030
+ :stability: experimental
30031
+ '''
30032
+ ...
30033
+
30034
+
30035
+ class _ILocalGatewayVirtualInterfaceGroupRefProxy(
30036
+ jsii.proxy_for(_constructs_77d1e7e8.IConstruct), # type: ignore[misc]
30037
+ ):
30038
+ '''(experimental) Indicates that this resource can be referenced as a LocalGatewayVirtualInterfaceGroup.
30039
+
30040
+ :stability: experimental
30041
+ '''
30042
+
30043
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_ec2.ILocalGatewayVirtualInterfaceGroupRef"
30044
+
30045
+ @builtins.property
30046
+ @jsii.member(jsii_name="localGatewayVirtualInterfaceGroupRef")
30047
+ def local_gateway_virtual_interface_group_ref(
30048
+ self,
30049
+ ) -> "LocalGatewayVirtualInterfaceGroupReference":
30050
+ '''(experimental) A reference to a LocalGatewayVirtualInterfaceGroup resource.
30051
+
30052
+ :stability: experimental
30053
+ '''
30054
+ return typing.cast("LocalGatewayVirtualInterfaceGroupReference", jsii.get(self, "localGatewayVirtualInterfaceGroupRef"))
30055
+
30056
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
30057
+ typing.cast(typing.Any, ILocalGatewayVirtualInterfaceGroupRef).__jsii_proxy_class__ = lambda : _ILocalGatewayVirtualInterfaceGroupRefProxy
30058
+
30059
+
30060
+ @jsii.interface(jsii_type="aws-cdk-lib.aws_ec2.ILocalGatewayVirtualInterfaceRef")
30061
+ class ILocalGatewayVirtualInterfaceRef(
30062
+ _constructs_77d1e7e8.IConstruct,
30063
+ typing_extensions.Protocol,
30064
+ ):
30065
+ '''(experimental) Indicates that this resource can be referenced as a LocalGatewayVirtualInterface.
30066
+
30067
+ :stability: experimental
30068
+ '''
30069
+
30070
+ @builtins.property
30071
+ @jsii.member(jsii_name="localGatewayVirtualInterfaceRef")
30072
+ def local_gateway_virtual_interface_ref(
30073
+ self,
30074
+ ) -> "LocalGatewayVirtualInterfaceReference":
30075
+ '''(experimental) A reference to a LocalGatewayVirtualInterface resource.
30076
+
30077
+ :stability: experimental
30078
+ '''
30079
+ ...
30080
+
30081
+
30082
+ class _ILocalGatewayVirtualInterfaceRefProxy(
30083
+ jsii.proxy_for(_constructs_77d1e7e8.IConstruct), # type: ignore[misc]
30084
+ ):
30085
+ '''(experimental) Indicates that this resource can be referenced as a LocalGatewayVirtualInterface.
30086
+
30087
+ :stability: experimental
30088
+ '''
30089
+
30090
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_ec2.ILocalGatewayVirtualInterfaceRef"
30091
+
30092
+ @builtins.property
30093
+ @jsii.member(jsii_name="localGatewayVirtualInterfaceRef")
30094
+ def local_gateway_virtual_interface_ref(
30095
+ self,
30096
+ ) -> "LocalGatewayVirtualInterfaceReference":
30097
+ '''(experimental) A reference to a LocalGatewayVirtualInterface resource.
30098
+
30099
+ :stability: experimental
30100
+ '''
30101
+ return typing.cast("LocalGatewayVirtualInterfaceReference", jsii.get(self, "localGatewayVirtualInterfaceRef"))
30102
+
30103
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
30104
+ typing.cast(typing.Any, ILocalGatewayVirtualInterfaceRef).__jsii_proxy_class__ = lambda : _ILocalGatewayVirtualInterfaceRefProxy
30105
+
30106
+
29294
30107
  @jsii.interface(jsii_type="aws-cdk-lib.aws_ec2.IMachineImage")
29295
30108
  class IMachineImage(typing_extensions.Protocol):
29296
30109
  '''Interface for classes that can select an appropriate machine image to use.'''
@@ -36775,6 +37588,71 @@ class InstanceConnectEndpointReference:
36775
37588
  )
36776
37589
 
36777
37590
 
37591
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.InstanceGeneration")
37592
+ class InstanceGeneration(enum.Enum):
37593
+ '''Instance generation categories for EC2.
37594
+
37595
+ Determines whether the instance type must belong to the latest
37596
+ (current) generation or to an older (previous) generation.
37597
+
37598
+ :exampleMetadata: infused
37599
+
37600
+ Example::
37601
+
37602
+ # infrastructure_role: iam.Role
37603
+ # instance_profile: iam.InstanceProfile
37604
+ # vpc: ec2.Vpc
37605
+
37606
+
37607
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
37608
+ infrastructure_role=infrastructure_role,
37609
+ ec2_instance_profile=instance_profile,
37610
+ subnets=vpc.private_subnets,
37611
+ instance_requirements=ec2.InstanceRequirementsConfig(
37612
+ # Required: CPU and memory constraints
37613
+ v_cpu_count_min=2,
37614
+ v_cpu_count_max=8,
37615
+ memory_min=Size.gibibytes(4),
37616
+ memory_max=Size.gibibytes(32),
37617
+
37618
+ # CPU preferences
37619
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
37620
+ instance_generations=[ec2.InstanceGeneration.CURRENT],
37621
+
37622
+ # Instance type filtering
37623
+ allowed_instance_types=["m5.*", "c5.*"],
37624
+
37625
+ # Performance characteristics
37626
+ burstable_performance=ec2.BurstablePerformance.EXCLUDED,
37627
+ bare_metal=ec2.BareMetal.EXCLUDED,
37628
+
37629
+ # Accelerator requirements (for ML/AI workloads)
37630
+ accelerator_types=[ec2.AcceleratorType.GPU],
37631
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
37632
+ accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
37633
+ accelerator_count_min=1,
37634
+
37635
+ # Storage requirements
37636
+ local_storage=ec2.LocalStorage.REQUIRED,
37637
+ local_storage_types=[ec2.LocalStorageType.SSD],
37638
+ total_local_storage_gBMin=100,
37639
+
37640
+ # Network requirements
37641
+ network_interface_count_min=2,
37642
+ network_bandwidth_gbps_min=10,
37643
+
37644
+ # Cost optimization
37645
+ on_demand_max_price_percentage_over_lowest_price=10
37646
+ )
37647
+ )
37648
+ '''
37649
+
37650
+ CURRENT = "CURRENT"
37651
+ '''Current generation instances (latest families).'''
37652
+ PREVIOUS = "PREVIOUS"
37653
+ '''Previous generation instances (older families).'''
37654
+
37655
+
36778
37656
  @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.InstanceInitiatedShutdownBehavior")
36779
37657
  class InstanceInitiatedShutdownBehavior(enum.Enum):
36780
37658
  '''Provides the options for specifying the instance initiated shutdown behavior.
@@ -37653,6 +38531,676 @@ class InstanceRequireImdsv2AspectProps:
37653
38531
  )
37654
38532
 
37655
38533
 
38534
+ @jsii.data_type(
38535
+ jsii_type="aws-cdk-lib.aws_ec2.InstanceRequirementsConfig",
38536
+ jsii_struct_bases=[],
38537
+ name_mapping={
38538
+ "memory_min": "memoryMin",
38539
+ "v_cpu_count_min": "vCpuCountMin",
38540
+ "accelerator_count_max": "acceleratorCountMax",
38541
+ "accelerator_count_min": "acceleratorCountMin",
38542
+ "accelerator_manufacturers": "acceleratorManufacturers",
38543
+ "accelerator_names": "acceleratorNames",
38544
+ "accelerator_total_memory_max": "acceleratorTotalMemoryMax",
38545
+ "accelerator_total_memory_min": "acceleratorTotalMemoryMin",
38546
+ "accelerator_types": "acceleratorTypes",
38547
+ "allowed_instance_types": "allowedInstanceTypes",
38548
+ "bare_metal": "bareMetal",
38549
+ "baseline_ebs_bandwidth_mbps_max": "baselineEbsBandwidthMbpsMax",
38550
+ "baseline_ebs_bandwidth_mbps_min": "baselineEbsBandwidthMbpsMin",
38551
+ "burstable_performance": "burstablePerformance",
38552
+ "cpu_manufacturers": "cpuManufacturers",
38553
+ "excluded_instance_types": "excludedInstanceTypes",
38554
+ "instance_generations": "instanceGenerations",
38555
+ "local_storage": "localStorage",
38556
+ "local_storage_types": "localStorageTypes",
38557
+ "max_spot_price_as_percentage_of_optimal_on_demand_price": "maxSpotPriceAsPercentageOfOptimalOnDemandPrice",
38558
+ "memory_max": "memoryMax",
38559
+ "memory_per_v_cpu_max": "memoryPerVCpuMax",
38560
+ "memory_per_v_cpu_min": "memoryPerVCpuMin",
38561
+ "network_bandwidth_gbps_max": "networkBandwidthGbpsMax",
38562
+ "network_bandwidth_gbps_min": "networkBandwidthGbpsMin",
38563
+ "network_interface_count_max": "networkInterfaceCountMax",
38564
+ "network_interface_count_min": "networkInterfaceCountMin",
38565
+ "on_demand_max_price_percentage_over_lowest_price": "onDemandMaxPricePercentageOverLowestPrice",
38566
+ "require_hibernate_support": "requireHibernateSupport",
38567
+ "spot_max_price_percentage_over_lowest_price": "spotMaxPricePercentageOverLowestPrice",
38568
+ "total_local_storage_gb_max": "totalLocalStorageGBMax",
38569
+ "total_local_storage_gb_min": "totalLocalStorageGBMin",
38570
+ "v_cpu_count_max": "vCpuCountMax",
38571
+ },
38572
+ )
38573
+ class InstanceRequirementsConfig:
38574
+ def __init__(
38575
+ self,
38576
+ *,
38577
+ memory_min: _Size_7b441c34,
38578
+ v_cpu_count_min: jsii.Number,
38579
+ accelerator_count_max: typing.Optional[jsii.Number] = None,
38580
+ accelerator_count_min: typing.Optional[jsii.Number] = None,
38581
+ accelerator_manufacturers: typing.Optional[typing.Sequence[AcceleratorManufacturer]] = None,
38582
+ accelerator_names: typing.Optional[typing.Sequence[AcceleratorName]] = None,
38583
+ accelerator_total_memory_max: typing.Optional[_Size_7b441c34] = None,
38584
+ accelerator_total_memory_min: typing.Optional[_Size_7b441c34] = None,
38585
+ accelerator_types: typing.Optional[typing.Sequence[AcceleratorType]] = None,
38586
+ allowed_instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
38587
+ bare_metal: typing.Optional[BareMetal] = None,
38588
+ baseline_ebs_bandwidth_mbps_max: typing.Optional[jsii.Number] = None,
38589
+ baseline_ebs_bandwidth_mbps_min: typing.Optional[jsii.Number] = None,
38590
+ burstable_performance: typing.Optional[BurstablePerformance] = None,
38591
+ cpu_manufacturers: typing.Optional[typing.Sequence[CpuManufacturer]] = None,
38592
+ excluded_instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
38593
+ instance_generations: typing.Optional[typing.Sequence[InstanceGeneration]] = None,
38594
+ local_storage: typing.Optional["LocalStorage"] = None,
38595
+ local_storage_types: typing.Optional[typing.Sequence["LocalStorageType"]] = None,
38596
+ max_spot_price_as_percentage_of_optimal_on_demand_price: typing.Optional[jsii.Number] = None,
38597
+ memory_max: typing.Optional[_Size_7b441c34] = None,
38598
+ memory_per_v_cpu_max: typing.Optional[_Size_7b441c34] = None,
38599
+ memory_per_v_cpu_min: typing.Optional[_Size_7b441c34] = None,
38600
+ network_bandwidth_gbps_max: typing.Optional[jsii.Number] = None,
38601
+ network_bandwidth_gbps_min: typing.Optional[jsii.Number] = None,
38602
+ network_interface_count_max: typing.Optional[jsii.Number] = None,
38603
+ network_interface_count_min: typing.Optional[jsii.Number] = None,
38604
+ on_demand_max_price_percentage_over_lowest_price: typing.Optional[jsii.Number] = None,
38605
+ require_hibernate_support: typing.Optional[builtins.bool] = None,
38606
+ spot_max_price_percentage_over_lowest_price: typing.Optional[jsii.Number] = None,
38607
+ total_local_storage_gb_max: typing.Optional[jsii.Number] = None,
38608
+ total_local_storage_gb_min: typing.Optional[jsii.Number] = None,
38609
+ v_cpu_count_max: typing.Optional[jsii.Number] = None,
38610
+ ) -> None:
38611
+ '''The attributes for the instance types for a mixed instances policy.
38612
+
38613
+ When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.
38614
+
38615
+ To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:
38616
+
38617
+ - AllowedInstanceTypes - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.
38618
+ - ExcludedInstanceTypes - The instance types to exclude from the list, even if they match your specified attributes.
38619
+
38620
+ Note: You must specify VCpuCount and MemoryMiB. All other attributes are optional. Any unspecified optional attribute is set to its default.
38621
+
38622
+ :param memory_min: The minimum instance memory size for an instance type, in MiB. Required: Yes
38623
+ :param v_cpu_count_min: The minimum number of vCPUs for an instance type. Required: Yes
38624
+ :param accelerator_count_max: The maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) for an instance type. To exclude accelerator-enabled instance types, set Max to 0. Default: - No minimum or maximum limits
38625
+ :param accelerator_count_min: The minimum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) for an instance type. To exclude accelerator-enabled instance types, set acceleratorCountMax to 0. Default: - No minimum or maximum limits
38626
+ :param accelerator_manufacturers: Indicates whether instance types must have accelerators by specific manufacturers. - For instance types with NVIDIA devices, specify nvidia. - For instance types with AMD devices, specify amd. - For instance types with AWS devices, specify amazon-web-services. - For instance types with Xilinx devices, specify xilinx. Default: - Any manufacturer
38627
+ :param accelerator_names: Lists the accelerators that must be on an instance type. - For instance types with NVIDIA A100 GPUs, specify a100. - For instance types with NVIDIA V100 GPUs, specify v100. - For instance types with NVIDIA K80 GPUs, specify k80. - For instance types with NVIDIA T4 GPUs, specify t4. - For instance types with NVIDIA M60 GPUs, specify m60. - For instance types with AMD Radeon Pro V520 GPUs, specify radeon-pro-v520. - For instance types with Xilinx VU9P FPGAs, specify vu9p. Default: - Any accelerator
38628
+ :param accelerator_total_memory_max: The maximum total memory size for the accelerators on an instance type, in MiB. Default: - No minimum or maximum limits
38629
+ :param accelerator_total_memory_min: The minimum total memory size for the accelerators on an instance type, in MiB. Default: - No minimum or maximum limits
38630
+ :param accelerator_types: Lists the accelerator types that must be on an instance type. - For instance types with GPU accelerators, specify gpu. - For instance types with FPGA accelerators, specify fpga. - For instance types with inference accelerators, specify inference. Default: - Any accelerator type
38631
+ :param allowed_instance_types: The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*, Amazon EC2 Auto Scaling will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 Auto Scaling will allow all the M5a instance types, but not the M5n instance types. Note: If you specify AllowedInstanceTypes, you can't specify ExcludedInstanceTypes. Default: - All instance types
38632
+ :param bare_metal: Indicates whether bare metal instance types are included, excluded, or required. Default: - excluded
38633
+ :param baseline_ebs_bandwidth_mbps_max: The maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see Amazon EBS–optimized instances in the Amazon EC2 User Guide. Default: - No minimum or maximum limits
38634
+ :param baseline_ebs_bandwidth_mbps_min: The minimum baseline bandwidth performance for an instance type, in Mbps. For more information, see Amazon EBS–optimized instances in the Amazon EC2 User Guide. Default: - No minimum or maximum limits
38635
+ :param burstable_performance: Indicates whether burstable performance instance types are included, excluded, or required. For more information, see Burstable performance instances in the Amazon EC2 User Guide. Default: - excluded
38636
+ :param cpu_manufacturers: Lists which specific CPU manufacturers to include. - For instance types with Intel CPUs, specify intel. - For instance types with AMD CPUs, specify amd. - For instance types with AWS CPUs, specify amazon-web-services. - For instance types with Apple CPUs, specify apple. Note: Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template. Default: - Any manufacturer
38637
+ :param excluded_instance_types: The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance family, type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 Auto Scaling will exclude all the M5a instance types, but not the M5n instance types. Note: If you specify ExcludedInstanceTypes, you can't specify AllowedInstanceTypes. Default: - No excluded instance types
38638
+ :param instance_generations: Indicates whether current or previous generation instance types are included. - For current generation instance types, specify current. The current generation includes EC2 instance types currently recommended for use. This typically includes the latest two to three generations in each instance family. For more information, see Instance types in the Amazon EC2 User Guide. - For previous generation instance types, specify previous. Default: - Any current or previous generation
38639
+ :param local_storage: Indicates whether instance types with instance store volumes are included, excluded, or required. For more information, see Amazon EC2 instance store in the Amazon EC2 User Guide. Default: - included
38640
+ :param local_storage_types: Indicates the type of local storage that is required. - For instance types with hard disk drive (HDD) storage, specify hdd. - For instance types with solid state drive (SSD) storage, specify ssd. Default: - Any local storage type
38641
+ :param max_spot_price_as_percentage_of_optimal_on_demand_price: [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is based on the per-vCPU or per-memory price instead of the per instance price. Note: Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, Amazon EC2 Auto Scaling will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as 999999. Default: - Automatic optimal price protection
38642
+ :param memory_max: The maximum instance memory size for an instance type, in MiB. Default: - No maximum limit
38643
+ :param memory_per_v_cpu_max: The maximum amount of memory per vCPU for an instance type, in GiB. Default: - No minimum or maximum limits
38644
+ :param memory_per_v_cpu_min: The minimum amount of memory per vCPU for an instance type, in GiB. Default: - No minimum or maximum limits
38645
+ :param network_bandwidth_gbps_max: The maximum amount of network bandwidth, in gigabits per second (Gbps). Default: - No minimum or maximum limits
38646
+ :param network_bandwidth_gbps_min: The minimum amount of network bandwidth, in gigabits per second (Gbps). Default: - No minimum or maximum limits
38647
+ :param network_interface_count_max: The maximum number of network interfaces for an instance type. Default: - No minimum or maximum limits
38648
+ :param network_interface_count_min: The minimum number of network interfaces for an instance type. Default: - No minimum or maximum limits
38649
+ :param on_demand_max_price_percentage_over_lowest_price: [Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per instance price. Default: - 20
38650
+ :param require_hibernate_support: Indicates whether instance types must provide On-Demand Instance hibernation support. Default: - false
38651
+ :param spot_max_price_percentage_over_lowest_price: [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is based on the per-vCPU or per-memory price instead of the per instance price. Note: Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, Amazon EC2 Auto Scaling will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as 999999. Default: - Automatic optimal price protection
38652
+ :param total_local_storage_gb_max: The maximum total local storage size for an instance type, in GB. Default: - No minimum or maximum limits
38653
+ :param total_local_storage_gb_min: The minimum total local storage size for an instance type, in GB. Default: - No minimum or maximum limits
38654
+ :param v_cpu_count_max: The maximum number of vCPUs for an instance type. Default: - No maximum limit
38655
+
38656
+ :exampleMetadata: infused
38657
+
38658
+ Example::
38659
+
38660
+ # vpc: ec2.Vpc
38661
+ # infrastructure_role: iam.Role
38662
+ # instance_profile: iam.InstanceProfile
38663
+
38664
+
38665
+ cluster = ecs.Cluster(self, "Cluster", vpc=vpc)
38666
+
38667
+ # Create a Managed Instances Capacity Provider
38668
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
38669
+ infrastructure_role=infrastructure_role,
38670
+ ec2_instance_profile=instance_profile,
38671
+ subnets=vpc.private_subnets,
38672
+ security_groups=[ec2.SecurityGroup(self, "MISecurityGroup", vpc=vpc)],
38673
+ instance_requirements=ec2.InstanceRequirementsConfig(
38674
+ v_cpu_count_min=1,
38675
+ memory_min=Size.gibibytes(2),
38676
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL],
38677
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA]
38678
+ ),
38679
+ propagate_tags=ecs.PropagateManagedInstancesTags.CAPACITY_PROVIDER
38680
+ )
38681
+
38682
+ # Add the capacity provider to the cluster
38683
+ cluster.add_managed_instances_capacity_provider(mi_capacity_provider)
38684
+
38685
+ task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
38686
+
38687
+ task_definition.add_container("web",
38688
+ image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
38689
+ memory_reservation_mi_b=256
38690
+ )
38691
+
38692
+ ecs.Ec2Service(self, "EC2Service",
38693
+ cluster=cluster,
38694
+ task_definition=task_definition,
38695
+ min_healthy_percent=100,
38696
+ capacity_provider_strategies=[ecs.CapacityProviderStrategy(
38697
+ capacity_provider=mi_capacity_provider.capacity_provider_name,
38698
+ weight=1
38699
+ )
38700
+ ]
38701
+ )
38702
+ '''
38703
+ if __debug__:
38704
+ type_hints = typing.get_type_hints(_typecheckingstub__ec2256eb42c017c1221986108df1dba524eae16d4aaf51d7503ce5b1f919f3cd)
38705
+ check_type(argname="argument memory_min", value=memory_min, expected_type=type_hints["memory_min"])
38706
+ check_type(argname="argument v_cpu_count_min", value=v_cpu_count_min, expected_type=type_hints["v_cpu_count_min"])
38707
+ check_type(argname="argument accelerator_count_max", value=accelerator_count_max, expected_type=type_hints["accelerator_count_max"])
38708
+ check_type(argname="argument accelerator_count_min", value=accelerator_count_min, expected_type=type_hints["accelerator_count_min"])
38709
+ check_type(argname="argument accelerator_manufacturers", value=accelerator_manufacturers, expected_type=type_hints["accelerator_manufacturers"])
38710
+ check_type(argname="argument accelerator_names", value=accelerator_names, expected_type=type_hints["accelerator_names"])
38711
+ check_type(argname="argument accelerator_total_memory_max", value=accelerator_total_memory_max, expected_type=type_hints["accelerator_total_memory_max"])
38712
+ check_type(argname="argument accelerator_total_memory_min", value=accelerator_total_memory_min, expected_type=type_hints["accelerator_total_memory_min"])
38713
+ check_type(argname="argument accelerator_types", value=accelerator_types, expected_type=type_hints["accelerator_types"])
38714
+ check_type(argname="argument allowed_instance_types", value=allowed_instance_types, expected_type=type_hints["allowed_instance_types"])
38715
+ check_type(argname="argument bare_metal", value=bare_metal, expected_type=type_hints["bare_metal"])
38716
+ check_type(argname="argument baseline_ebs_bandwidth_mbps_max", value=baseline_ebs_bandwidth_mbps_max, expected_type=type_hints["baseline_ebs_bandwidth_mbps_max"])
38717
+ check_type(argname="argument baseline_ebs_bandwidth_mbps_min", value=baseline_ebs_bandwidth_mbps_min, expected_type=type_hints["baseline_ebs_bandwidth_mbps_min"])
38718
+ check_type(argname="argument burstable_performance", value=burstable_performance, expected_type=type_hints["burstable_performance"])
38719
+ check_type(argname="argument cpu_manufacturers", value=cpu_manufacturers, expected_type=type_hints["cpu_manufacturers"])
38720
+ check_type(argname="argument excluded_instance_types", value=excluded_instance_types, expected_type=type_hints["excluded_instance_types"])
38721
+ check_type(argname="argument instance_generations", value=instance_generations, expected_type=type_hints["instance_generations"])
38722
+ check_type(argname="argument local_storage", value=local_storage, expected_type=type_hints["local_storage"])
38723
+ check_type(argname="argument local_storage_types", value=local_storage_types, expected_type=type_hints["local_storage_types"])
38724
+ check_type(argname="argument max_spot_price_as_percentage_of_optimal_on_demand_price", value=max_spot_price_as_percentage_of_optimal_on_demand_price, expected_type=type_hints["max_spot_price_as_percentage_of_optimal_on_demand_price"])
38725
+ check_type(argname="argument memory_max", value=memory_max, expected_type=type_hints["memory_max"])
38726
+ check_type(argname="argument memory_per_v_cpu_max", value=memory_per_v_cpu_max, expected_type=type_hints["memory_per_v_cpu_max"])
38727
+ check_type(argname="argument memory_per_v_cpu_min", value=memory_per_v_cpu_min, expected_type=type_hints["memory_per_v_cpu_min"])
38728
+ check_type(argname="argument network_bandwidth_gbps_max", value=network_bandwidth_gbps_max, expected_type=type_hints["network_bandwidth_gbps_max"])
38729
+ check_type(argname="argument network_bandwidth_gbps_min", value=network_bandwidth_gbps_min, expected_type=type_hints["network_bandwidth_gbps_min"])
38730
+ check_type(argname="argument network_interface_count_max", value=network_interface_count_max, expected_type=type_hints["network_interface_count_max"])
38731
+ check_type(argname="argument network_interface_count_min", value=network_interface_count_min, expected_type=type_hints["network_interface_count_min"])
38732
+ check_type(argname="argument on_demand_max_price_percentage_over_lowest_price", value=on_demand_max_price_percentage_over_lowest_price, expected_type=type_hints["on_demand_max_price_percentage_over_lowest_price"])
38733
+ check_type(argname="argument require_hibernate_support", value=require_hibernate_support, expected_type=type_hints["require_hibernate_support"])
38734
+ check_type(argname="argument spot_max_price_percentage_over_lowest_price", value=spot_max_price_percentage_over_lowest_price, expected_type=type_hints["spot_max_price_percentage_over_lowest_price"])
38735
+ check_type(argname="argument total_local_storage_gb_max", value=total_local_storage_gb_max, expected_type=type_hints["total_local_storage_gb_max"])
38736
+ check_type(argname="argument total_local_storage_gb_min", value=total_local_storage_gb_min, expected_type=type_hints["total_local_storage_gb_min"])
38737
+ check_type(argname="argument v_cpu_count_max", value=v_cpu_count_max, expected_type=type_hints["v_cpu_count_max"])
38738
+ self._values: typing.Dict[builtins.str, typing.Any] = {
38739
+ "memory_min": memory_min,
38740
+ "v_cpu_count_min": v_cpu_count_min,
38741
+ }
38742
+ if accelerator_count_max is not None:
38743
+ self._values["accelerator_count_max"] = accelerator_count_max
38744
+ if accelerator_count_min is not None:
38745
+ self._values["accelerator_count_min"] = accelerator_count_min
38746
+ if accelerator_manufacturers is not None:
38747
+ self._values["accelerator_manufacturers"] = accelerator_manufacturers
38748
+ if accelerator_names is not None:
38749
+ self._values["accelerator_names"] = accelerator_names
38750
+ if accelerator_total_memory_max is not None:
38751
+ self._values["accelerator_total_memory_max"] = accelerator_total_memory_max
38752
+ if accelerator_total_memory_min is not None:
38753
+ self._values["accelerator_total_memory_min"] = accelerator_total_memory_min
38754
+ if accelerator_types is not None:
38755
+ self._values["accelerator_types"] = accelerator_types
38756
+ if allowed_instance_types is not None:
38757
+ self._values["allowed_instance_types"] = allowed_instance_types
38758
+ if bare_metal is not None:
38759
+ self._values["bare_metal"] = bare_metal
38760
+ if baseline_ebs_bandwidth_mbps_max is not None:
38761
+ self._values["baseline_ebs_bandwidth_mbps_max"] = baseline_ebs_bandwidth_mbps_max
38762
+ if baseline_ebs_bandwidth_mbps_min is not None:
38763
+ self._values["baseline_ebs_bandwidth_mbps_min"] = baseline_ebs_bandwidth_mbps_min
38764
+ if burstable_performance is not None:
38765
+ self._values["burstable_performance"] = burstable_performance
38766
+ if cpu_manufacturers is not None:
38767
+ self._values["cpu_manufacturers"] = cpu_manufacturers
38768
+ if excluded_instance_types is not None:
38769
+ self._values["excluded_instance_types"] = excluded_instance_types
38770
+ if instance_generations is not None:
38771
+ self._values["instance_generations"] = instance_generations
38772
+ if local_storage is not None:
38773
+ self._values["local_storage"] = local_storage
38774
+ if local_storage_types is not None:
38775
+ self._values["local_storage_types"] = local_storage_types
38776
+ if max_spot_price_as_percentage_of_optimal_on_demand_price is not None:
38777
+ self._values["max_spot_price_as_percentage_of_optimal_on_demand_price"] = max_spot_price_as_percentage_of_optimal_on_demand_price
38778
+ if memory_max is not None:
38779
+ self._values["memory_max"] = memory_max
38780
+ if memory_per_v_cpu_max is not None:
38781
+ self._values["memory_per_v_cpu_max"] = memory_per_v_cpu_max
38782
+ if memory_per_v_cpu_min is not None:
38783
+ self._values["memory_per_v_cpu_min"] = memory_per_v_cpu_min
38784
+ if network_bandwidth_gbps_max is not None:
38785
+ self._values["network_bandwidth_gbps_max"] = network_bandwidth_gbps_max
38786
+ if network_bandwidth_gbps_min is not None:
38787
+ self._values["network_bandwidth_gbps_min"] = network_bandwidth_gbps_min
38788
+ if network_interface_count_max is not None:
38789
+ self._values["network_interface_count_max"] = network_interface_count_max
38790
+ if network_interface_count_min is not None:
38791
+ self._values["network_interface_count_min"] = network_interface_count_min
38792
+ if on_demand_max_price_percentage_over_lowest_price is not None:
38793
+ self._values["on_demand_max_price_percentage_over_lowest_price"] = on_demand_max_price_percentage_over_lowest_price
38794
+ if require_hibernate_support is not None:
38795
+ self._values["require_hibernate_support"] = require_hibernate_support
38796
+ if spot_max_price_percentage_over_lowest_price is not None:
38797
+ self._values["spot_max_price_percentage_over_lowest_price"] = spot_max_price_percentage_over_lowest_price
38798
+ if total_local_storage_gb_max is not None:
38799
+ self._values["total_local_storage_gb_max"] = total_local_storage_gb_max
38800
+ if total_local_storage_gb_min is not None:
38801
+ self._values["total_local_storage_gb_min"] = total_local_storage_gb_min
38802
+ if v_cpu_count_max is not None:
38803
+ self._values["v_cpu_count_max"] = v_cpu_count_max
38804
+
38805
+ @builtins.property
38806
+ def memory_min(self) -> _Size_7b441c34:
38807
+ '''The minimum instance memory size for an instance type, in MiB.
38808
+
38809
+ Required: Yes
38810
+ '''
38811
+ result = self._values.get("memory_min")
38812
+ assert result is not None, "Required property 'memory_min' is missing"
38813
+ return typing.cast(_Size_7b441c34, result)
38814
+
38815
+ @builtins.property
38816
+ def v_cpu_count_min(self) -> jsii.Number:
38817
+ '''The minimum number of vCPUs for an instance type.
38818
+
38819
+ Required: Yes
38820
+ '''
38821
+ result = self._values.get("v_cpu_count_min")
38822
+ assert result is not None, "Required property 'v_cpu_count_min' is missing"
38823
+ return typing.cast(jsii.Number, result)
38824
+
38825
+ @builtins.property
38826
+ def accelerator_count_max(self) -> typing.Optional[jsii.Number]:
38827
+ '''The maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) for an instance type.
38828
+
38829
+ To exclude accelerator-enabled instance types, set Max to 0.
38830
+
38831
+ :default: - No minimum or maximum limits
38832
+ '''
38833
+ result = self._values.get("accelerator_count_max")
38834
+ return typing.cast(typing.Optional[jsii.Number], result)
38835
+
38836
+ @builtins.property
38837
+ def accelerator_count_min(self) -> typing.Optional[jsii.Number]:
38838
+ '''The minimum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) for an instance type.
38839
+
38840
+ To exclude accelerator-enabled instance types, set acceleratorCountMax to 0.
38841
+
38842
+ :default: - No minimum or maximum limits
38843
+ '''
38844
+ result = self._values.get("accelerator_count_min")
38845
+ return typing.cast(typing.Optional[jsii.Number], result)
38846
+
38847
+ @builtins.property
38848
+ def accelerator_manufacturers(
38849
+ self,
38850
+ ) -> typing.Optional[typing.List[AcceleratorManufacturer]]:
38851
+ '''Indicates whether instance types must have accelerators by specific manufacturers.
38852
+
38853
+ - For instance types with NVIDIA devices, specify nvidia.
38854
+ - For instance types with AMD devices, specify amd.
38855
+ - For instance types with AWS devices, specify amazon-web-services.
38856
+ - For instance types with Xilinx devices, specify xilinx.
38857
+
38858
+ :default: - Any manufacturer
38859
+ '''
38860
+ result = self._values.get("accelerator_manufacturers")
38861
+ return typing.cast(typing.Optional[typing.List[AcceleratorManufacturer]], result)
38862
+
38863
+ @builtins.property
38864
+ def accelerator_names(self) -> typing.Optional[typing.List[AcceleratorName]]:
38865
+ '''Lists the accelerators that must be on an instance type.
38866
+
38867
+ - For instance types with NVIDIA A100 GPUs, specify a100.
38868
+ - For instance types with NVIDIA V100 GPUs, specify v100.
38869
+ - For instance types with NVIDIA K80 GPUs, specify k80.
38870
+ - For instance types with NVIDIA T4 GPUs, specify t4.
38871
+ - For instance types with NVIDIA M60 GPUs, specify m60.
38872
+ - For instance types with AMD Radeon Pro V520 GPUs, specify radeon-pro-v520.
38873
+ - For instance types with Xilinx VU9P FPGAs, specify vu9p.
38874
+
38875
+ :default: - Any accelerator
38876
+ '''
38877
+ result = self._values.get("accelerator_names")
38878
+ return typing.cast(typing.Optional[typing.List[AcceleratorName]], result)
38879
+
38880
+ @builtins.property
38881
+ def accelerator_total_memory_max(self) -> typing.Optional[_Size_7b441c34]:
38882
+ '''The maximum total memory size for the accelerators on an instance type, in MiB.
38883
+
38884
+ :default: - No minimum or maximum limits
38885
+ '''
38886
+ result = self._values.get("accelerator_total_memory_max")
38887
+ return typing.cast(typing.Optional[_Size_7b441c34], result)
38888
+
38889
+ @builtins.property
38890
+ def accelerator_total_memory_min(self) -> typing.Optional[_Size_7b441c34]:
38891
+ '''The minimum total memory size for the accelerators on an instance type, in MiB.
38892
+
38893
+ :default: - No minimum or maximum limits
38894
+ '''
38895
+ result = self._values.get("accelerator_total_memory_min")
38896
+ return typing.cast(typing.Optional[_Size_7b441c34], result)
38897
+
38898
+ @builtins.property
38899
+ def accelerator_types(self) -> typing.Optional[typing.List[AcceleratorType]]:
38900
+ '''Lists the accelerator types that must be on an instance type.
38901
+
38902
+ - For instance types with GPU accelerators, specify gpu.
38903
+ - For instance types with FPGA accelerators, specify fpga.
38904
+ - For instance types with inference accelerators, specify inference.
38905
+
38906
+ :default: - Any accelerator type
38907
+ '''
38908
+ result = self._values.get("accelerator_types")
38909
+ return typing.cast(typing.Optional[typing.List[AcceleratorType]], result)
38910
+
38911
+ @builtins.property
38912
+ def allowed_instance_types(self) -> typing.Optional[typing.List[builtins.str]]:
38913
+ '''The instance types to apply your specified attributes against.
38914
+
38915
+ All other instance types are ignored, even if they match your specified attributes.
38916
+
38917
+ You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*.
38918
+
38919
+ For example, if you specify c5*, Amazon EC2 Auto Scaling will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 Auto Scaling will allow all the M5a instance types, but not the M5n instance types.
38920
+
38921
+ Note: If you specify AllowedInstanceTypes, you can't specify ExcludedInstanceTypes.
38922
+
38923
+ :default: - All instance types
38924
+ '''
38925
+ result = self._values.get("allowed_instance_types")
38926
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
38927
+
38928
+ @builtins.property
38929
+ def bare_metal(self) -> typing.Optional[BareMetal]:
38930
+ '''Indicates whether bare metal instance types are included, excluded, or required.
38931
+
38932
+ :default: - excluded
38933
+ '''
38934
+ result = self._values.get("bare_metal")
38935
+ return typing.cast(typing.Optional[BareMetal], result)
38936
+
38937
+ @builtins.property
38938
+ def baseline_ebs_bandwidth_mbps_max(self) -> typing.Optional[jsii.Number]:
38939
+ '''The maximum baseline bandwidth performance for an instance type, in Mbps.
38940
+
38941
+ For more information, see Amazon EBS–optimized instances in the Amazon EC2 User Guide.
38942
+
38943
+ :default: - No minimum or maximum limits
38944
+ '''
38945
+ result = self._values.get("baseline_ebs_bandwidth_mbps_max")
38946
+ return typing.cast(typing.Optional[jsii.Number], result)
38947
+
38948
+ @builtins.property
38949
+ def baseline_ebs_bandwidth_mbps_min(self) -> typing.Optional[jsii.Number]:
38950
+ '''The minimum baseline bandwidth performance for an instance type, in Mbps.
38951
+
38952
+ For more information, see Amazon EBS–optimized instances in the Amazon EC2 User Guide.
38953
+
38954
+ :default: - No minimum or maximum limits
38955
+ '''
38956
+ result = self._values.get("baseline_ebs_bandwidth_mbps_min")
38957
+ return typing.cast(typing.Optional[jsii.Number], result)
38958
+
38959
+ @builtins.property
38960
+ def burstable_performance(self) -> typing.Optional[BurstablePerformance]:
38961
+ '''Indicates whether burstable performance instance types are included, excluded, or required.
38962
+
38963
+ For more information, see Burstable performance instances in the Amazon EC2 User Guide.
38964
+
38965
+ :default: - excluded
38966
+ '''
38967
+ result = self._values.get("burstable_performance")
38968
+ return typing.cast(typing.Optional[BurstablePerformance], result)
38969
+
38970
+ @builtins.property
38971
+ def cpu_manufacturers(self) -> typing.Optional[typing.List[CpuManufacturer]]:
38972
+ '''Lists which specific CPU manufacturers to include.
38973
+
38974
+ - For instance types with Intel CPUs, specify intel.
38975
+ - For instance types with AMD CPUs, specify amd.
38976
+ - For instance types with AWS CPUs, specify amazon-web-services.
38977
+ - For instance types with Apple CPUs, specify apple.
38978
+
38979
+ Note: Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
38980
+
38981
+ :default: - Any manufacturer
38982
+ '''
38983
+ result = self._values.get("cpu_manufacturers")
38984
+ return typing.cast(typing.Optional[typing.List[CpuManufacturer]], result)
38985
+
38986
+ @builtins.property
38987
+ def excluded_instance_types(self) -> typing.Optional[typing.List[builtins.str]]:
38988
+ '''The instance types to exclude.
38989
+
38990
+ You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance family, type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*.
38991
+
38992
+ For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 Auto Scaling will exclude all the M5a instance types, but not the M5n instance types.
38993
+
38994
+ Note: If you specify ExcludedInstanceTypes, you can't specify AllowedInstanceTypes.
38995
+
38996
+ :default: - No excluded instance types
38997
+ '''
38998
+ result = self._values.get("excluded_instance_types")
38999
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
39000
+
39001
+ @builtins.property
39002
+ def instance_generations(self) -> typing.Optional[typing.List[InstanceGeneration]]:
39003
+ '''Indicates whether current or previous generation instance types are included.
39004
+
39005
+ - For current generation instance types, specify current. The current generation includes EC2 instance types currently recommended for use. This typically includes the latest two to three generations in each instance family. For more information, see Instance types in the Amazon EC2 User Guide.
39006
+ - For previous generation instance types, specify previous.
39007
+
39008
+ :default: - Any current or previous generation
39009
+ '''
39010
+ result = self._values.get("instance_generations")
39011
+ return typing.cast(typing.Optional[typing.List[InstanceGeneration]], result)
39012
+
39013
+ @builtins.property
39014
+ def local_storage(self) -> typing.Optional["LocalStorage"]:
39015
+ '''Indicates whether instance types with instance store volumes are included, excluded, or required.
39016
+
39017
+ For more information, see Amazon EC2 instance store in the Amazon EC2 User Guide.
39018
+
39019
+ :default: - included
39020
+ '''
39021
+ result = self._values.get("local_storage")
39022
+ return typing.cast(typing.Optional["LocalStorage"], result)
39023
+
39024
+ @builtins.property
39025
+ def local_storage_types(self) -> typing.Optional[typing.List["LocalStorageType"]]:
39026
+ '''Indicates the type of local storage that is required.
39027
+
39028
+ - For instance types with hard disk drive (HDD) storage, specify hdd.
39029
+ - For instance types with solid state drive (SSD) storage, specify ssd.
39030
+
39031
+ :default: - Any local storage type
39032
+ '''
39033
+ result = self._values.get("local_storage_types")
39034
+ return typing.cast(typing.Optional[typing.List["LocalStorageType"]], result)
39035
+
39036
+ @builtins.property
39037
+ def max_spot_price_as_percentage_of_optimal_on_demand_price(
39038
+ self,
39039
+ ) -> typing.Optional[jsii.Number]:
39040
+ '''[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price.
39041
+
39042
+ The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.
39043
+
39044
+ The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.
39045
+
39046
+ If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is based on the per-vCPU or per-memory price instead of the per instance price.
39047
+
39048
+ Note: Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, Amazon EC2 Auto Scaling will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as 999999.
39049
+
39050
+ :default: - Automatic optimal price protection
39051
+ '''
39052
+ result = self._values.get("max_spot_price_as_percentage_of_optimal_on_demand_price")
39053
+ return typing.cast(typing.Optional[jsii.Number], result)
39054
+
39055
+ @builtins.property
39056
+ def memory_max(self) -> typing.Optional[_Size_7b441c34]:
39057
+ '''The maximum instance memory size for an instance type, in MiB.
39058
+
39059
+ :default: - No maximum limit
39060
+ '''
39061
+ result = self._values.get("memory_max")
39062
+ return typing.cast(typing.Optional[_Size_7b441c34], result)
39063
+
39064
+ @builtins.property
39065
+ def memory_per_v_cpu_max(self) -> typing.Optional[_Size_7b441c34]:
39066
+ '''The maximum amount of memory per vCPU for an instance type, in GiB.
39067
+
39068
+ :default: - No minimum or maximum limits
39069
+ '''
39070
+ result = self._values.get("memory_per_v_cpu_max")
39071
+ return typing.cast(typing.Optional[_Size_7b441c34], result)
39072
+
39073
+ @builtins.property
39074
+ def memory_per_v_cpu_min(self) -> typing.Optional[_Size_7b441c34]:
39075
+ '''The minimum amount of memory per vCPU for an instance type, in GiB.
39076
+
39077
+ :default: - No minimum or maximum limits
39078
+ '''
39079
+ result = self._values.get("memory_per_v_cpu_min")
39080
+ return typing.cast(typing.Optional[_Size_7b441c34], result)
39081
+
39082
+ @builtins.property
39083
+ def network_bandwidth_gbps_max(self) -> typing.Optional[jsii.Number]:
39084
+ '''The maximum amount of network bandwidth, in gigabits per second (Gbps).
39085
+
39086
+ :default: - No minimum or maximum limits
39087
+ '''
39088
+ result = self._values.get("network_bandwidth_gbps_max")
39089
+ return typing.cast(typing.Optional[jsii.Number], result)
39090
+
39091
+ @builtins.property
39092
+ def network_bandwidth_gbps_min(self) -> typing.Optional[jsii.Number]:
39093
+ '''The minimum amount of network bandwidth, in gigabits per second (Gbps).
39094
+
39095
+ :default: - No minimum or maximum limits
39096
+ '''
39097
+ result = self._values.get("network_bandwidth_gbps_min")
39098
+ return typing.cast(typing.Optional[jsii.Number], result)
39099
+
39100
+ @builtins.property
39101
+ def network_interface_count_max(self) -> typing.Optional[jsii.Number]:
39102
+ '''The maximum number of network interfaces for an instance type.
39103
+
39104
+ :default: - No minimum or maximum limits
39105
+ '''
39106
+ result = self._values.get("network_interface_count_max")
39107
+ return typing.cast(typing.Optional[jsii.Number], result)
39108
+
39109
+ @builtins.property
39110
+ def network_interface_count_min(self) -> typing.Optional[jsii.Number]:
39111
+ '''The minimum number of network interfaces for an instance type.
39112
+
39113
+ :default: - No minimum or maximum limits
39114
+ '''
39115
+ result = self._values.get("network_interface_count_min")
39116
+ return typing.cast(typing.Optional[jsii.Number], result)
39117
+
39118
+ @builtins.property
39119
+ def on_demand_max_price_percentage_over_lowest_price(
39120
+ self,
39121
+ ) -> typing.Optional[jsii.Number]:
39122
+ '''[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price.
39123
+
39124
+ The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.
39125
+
39126
+ The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.
39127
+
39128
+ To turn off price protection, specify a high value, such as 999999.
39129
+
39130
+ If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per instance price.
39131
+
39132
+ :default: - 20
39133
+ '''
39134
+ result = self._values.get("on_demand_max_price_percentage_over_lowest_price")
39135
+ return typing.cast(typing.Optional[jsii.Number], result)
39136
+
39137
+ @builtins.property
39138
+ def require_hibernate_support(self) -> typing.Optional[builtins.bool]:
39139
+ '''Indicates whether instance types must provide On-Demand Instance hibernation support.
39140
+
39141
+ :default: - false
39142
+ '''
39143
+ result = self._values.get("require_hibernate_support")
39144
+ return typing.cast(typing.Optional[builtins.bool], result)
39145
+
39146
+ @builtins.property
39147
+ def spot_max_price_percentage_over_lowest_price(
39148
+ self,
39149
+ ) -> typing.Optional[jsii.Number]:
39150
+ '''[Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price.
39151
+
39152
+ The identified Spot price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.
39153
+
39154
+ The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.
39155
+
39156
+ If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is based on the per-vCPU or per-memory price instead of the per instance price.
39157
+
39158
+ Note: Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, Amazon EC2 Auto Scaling will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as 999999.
39159
+
39160
+ :default: - Automatic optimal price protection
39161
+ '''
39162
+ result = self._values.get("spot_max_price_percentage_over_lowest_price")
39163
+ return typing.cast(typing.Optional[jsii.Number], result)
39164
+
39165
+ @builtins.property
39166
+ def total_local_storage_gb_max(self) -> typing.Optional[jsii.Number]:
39167
+ '''The maximum total local storage size for an instance type, in GB.
39168
+
39169
+ :default: - No minimum or maximum limits
39170
+ '''
39171
+ result = self._values.get("total_local_storage_gb_max")
39172
+ return typing.cast(typing.Optional[jsii.Number], result)
39173
+
39174
+ @builtins.property
39175
+ def total_local_storage_gb_min(self) -> typing.Optional[jsii.Number]:
39176
+ '''The minimum total local storage size for an instance type, in GB.
39177
+
39178
+ :default: - No minimum or maximum limits
39179
+ '''
39180
+ result = self._values.get("total_local_storage_gb_min")
39181
+ return typing.cast(typing.Optional[jsii.Number], result)
39182
+
39183
+ @builtins.property
39184
+ def v_cpu_count_max(self) -> typing.Optional[jsii.Number]:
39185
+ '''The maximum number of vCPUs for an instance type.
39186
+
39187
+ :default: - No maximum limit
39188
+ '''
39189
+ result = self._values.get("v_cpu_count_max")
39190
+ return typing.cast(typing.Optional[jsii.Number], result)
39191
+
39192
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
39193
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
39194
+
39195
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
39196
+ return not (rhs == self)
39197
+
39198
+ def __repr__(self) -> str:
39199
+ return "InstanceRequirementsConfig(%s)" % ", ".join(
39200
+ k + "=" + repr(v) for k, v in self._values.items()
39201
+ )
39202
+
39203
+
37656
39204
  @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.InstanceSize")
37657
39205
  class InstanceSize(enum.Enum):
37658
39206
  '''What size of instance to use.
@@ -42446,6 +43994,262 @@ class LocalGatewayRouteTableVirtualInterfaceGroupAssociationReference:
42446
43994
  )
42447
43995
 
42448
43996
 
43997
+ @jsii.data_type(
43998
+ jsii_type="aws-cdk-lib.aws_ec2.LocalGatewayVirtualInterfaceGroupReference",
43999
+ jsii_struct_bases=[],
44000
+ name_mapping={
44001
+ "local_gateway_virtual_interface_group_arn": "localGatewayVirtualInterfaceGroupArn",
44002
+ "local_gateway_virtual_interface_group_id": "localGatewayVirtualInterfaceGroupId",
44003
+ },
44004
+ )
44005
+ class LocalGatewayVirtualInterfaceGroupReference:
44006
+ def __init__(
44007
+ self,
44008
+ *,
44009
+ local_gateway_virtual_interface_group_arn: builtins.str,
44010
+ local_gateway_virtual_interface_group_id: builtins.str,
44011
+ ) -> None:
44012
+ '''A reference to a LocalGatewayVirtualInterfaceGroup resource.
44013
+
44014
+ :param local_gateway_virtual_interface_group_arn: The ARN of the LocalGatewayVirtualInterfaceGroup resource.
44015
+ :param local_gateway_virtual_interface_group_id: The LocalGatewayVirtualInterfaceGroupId of the LocalGatewayVirtualInterfaceGroup resource.
44016
+
44017
+ :exampleMetadata: fixture=_generated
44018
+
44019
+ Example::
44020
+
44021
+ # The code below shows an example of how to instantiate this type.
44022
+ # The values are placeholders you should change.
44023
+ from aws_cdk import aws_ec2 as ec2
44024
+
44025
+ local_gateway_virtual_interface_group_reference = ec2.LocalGatewayVirtualInterfaceGroupReference(
44026
+ local_gateway_virtual_interface_group_arn="localGatewayVirtualInterfaceGroupArn",
44027
+ local_gateway_virtual_interface_group_id="localGatewayVirtualInterfaceGroupId"
44028
+ )
44029
+ '''
44030
+ if __debug__:
44031
+ type_hints = typing.get_type_hints(_typecheckingstub__c5749867b83865efb222663d0629d4ad2212132a3d659cf6e5b6eefb44fdc1b9)
44032
+ check_type(argname="argument local_gateway_virtual_interface_group_arn", value=local_gateway_virtual_interface_group_arn, expected_type=type_hints["local_gateway_virtual_interface_group_arn"])
44033
+ check_type(argname="argument local_gateway_virtual_interface_group_id", value=local_gateway_virtual_interface_group_id, expected_type=type_hints["local_gateway_virtual_interface_group_id"])
44034
+ self._values: typing.Dict[builtins.str, typing.Any] = {
44035
+ "local_gateway_virtual_interface_group_arn": local_gateway_virtual_interface_group_arn,
44036
+ "local_gateway_virtual_interface_group_id": local_gateway_virtual_interface_group_id,
44037
+ }
44038
+
44039
+ @builtins.property
44040
+ def local_gateway_virtual_interface_group_arn(self) -> builtins.str:
44041
+ '''The ARN of the LocalGatewayVirtualInterfaceGroup resource.'''
44042
+ result = self._values.get("local_gateway_virtual_interface_group_arn")
44043
+ assert result is not None, "Required property 'local_gateway_virtual_interface_group_arn' is missing"
44044
+ return typing.cast(builtins.str, result)
44045
+
44046
+ @builtins.property
44047
+ def local_gateway_virtual_interface_group_id(self) -> builtins.str:
44048
+ '''The LocalGatewayVirtualInterfaceGroupId of the LocalGatewayVirtualInterfaceGroup resource.'''
44049
+ result = self._values.get("local_gateway_virtual_interface_group_id")
44050
+ assert result is not None, "Required property 'local_gateway_virtual_interface_group_id' is missing"
44051
+ return typing.cast(builtins.str, result)
44052
+
44053
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
44054
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
44055
+
44056
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
44057
+ return not (rhs == self)
44058
+
44059
+ def __repr__(self) -> str:
44060
+ return "LocalGatewayVirtualInterfaceGroupReference(%s)" % ", ".join(
44061
+ k + "=" + repr(v) for k, v in self._values.items()
44062
+ )
44063
+
44064
+
44065
+ @jsii.data_type(
44066
+ jsii_type="aws-cdk-lib.aws_ec2.LocalGatewayVirtualInterfaceReference",
44067
+ jsii_struct_bases=[],
44068
+ name_mapping={
44069
+ "local_gateway_virtual_interface_id": "localGatewayVirtualInterfaceId",
44070
+ },
44071
+ )
44072
+ class LocalGatewayVirtualInterfaceReference:
44073
+ def __init__(self, *, local_gateway_virtual_interface_id: builtins.str) -> None:
44074
+ '''A reference to a LocalGatewayVirtualInterface resource.
44075
+
44076
+ :param local_gateway_virtual_interface_id: The LocalGatewayVirtualInterfaceId of the LocalGatewayVirtualInterface resource.
44077
+
44078
+ :exampleMetadata: fixture=_generated
44079
+
44080
+ Example::
44081
+
44082
+ # The code below shows an example of how to instantiate this type.
44083
+ # The values are placeholders you should change.
44084
+ from aws_cdk import aws_ec2 as ec2
44085
+
44086
+ local_gateway_virtual_interface_reference = ec2.LocalGatewayVirtualInterfaceReference(
44087
+ local_gateway_virtual_interface_id="localGatewayVirtualInterfaceId"
44088
+ )
44089
+ '''
44090
+ if __debug__:
44091
+ type_hints = typing.get_type_hints(_typecheckingstub__370c12dc1c7162c4f581d58e74af3136efcbc6bf0ba1e90bcab50deb09c4733f)
44092
+ check_type(argname="argument local_gateway_virtual_interface_id", value=local_gateway_virtual_interface_id, expected_type=type_hints["local_gateway_virtual_interface_id"])
44093
+ self._values: typing.Dict[builtins.str, typing.Any] = {
44094
+ "local_gateway_virtual_interface_id": local_gateway_virtual_interface_id,
44095
+ }
44096
+
44097
+ @builtins.property
44098
+ def local_gateway_virtual_interface_id(self) -> builtins.str:
44099
+ '''The LocalGatewayVirtualInterfaceId of the LocalGatewayVirtualInterface resource.'''
44100
+ result = self._values.get("local_gateway_virtual_interface_id")
44101
+ assert result is not None, "Required property 'local_gateway_virtual_interface_id' is missing"
44102
+ return typing.cast(builtins.str, result)
44103
+
44104
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
44105
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
44106
+
44107
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
44108
+ return not (rhs == self)
44109
+
44110
+ def __repr__(self) -> str:
44111
+ return "LocalGatewayVirtualInterfaceReference(%s)" % ", ".join(
44112
+ k + "=" + repr(v) for k, v in self._values.items()
44113
+ )
44114
+
44115
+
44116
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.LocalStorage")
44117
+ class LocalStorage(enum.Enum):
44118
+ '''Local storage support requirements for EC2 instances.
44119
+
44120
+ Controls whether selected instance types must, may, or must not
44121
+ include directly attached local storage (instance store).
44122
+
44123
+ :exampleMetadata: infused
44124
+
44125
+ Example::
44126
+
44127
+ # infrastructure_role: iam.Role
44128
+ # instance_profile: iam.InstanceProfile
44129
+ # vpc: ec2.Vpc
44130
+
44131
+
44132
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
44133
+ infrastructure_role=infrastructure_role,
44134
+ ec2_instance_profile=instance_profile,
44135
+ subnets=vpc.private_subnets,
44136
+ instance_requirements=ec2.InstanceRequirementsConfig(
44137
+ # Required: CPU and memory constraints
44138
+ v_cpu_count_min=2,
44139
+ v_cpu_count_max=8,
44140
+ memory_min=Size.gibibytes(4),
44141
+ memory_max=Size.gibibytes(32),
44142
+
44143
+ # CPU preferences
44144
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
44145
+ instance_generations=[ec2.InstanceGeneration.CURRENT],
44146
+
44147
+ # Instance type filtering
44148
+ allowed_instance_types=["m5.*", "c5.*"],
44149
+
44150
+ # Performance characteristics
44151
+ burstable_performance=ec2.BurstablePerformance.EXCLUDED,
44152
+ bare_metal=ec2.BareMetal.EXCLUDED,
44153
+
44154
+ # Accelerator requirements (for ML/AI workloads)
44155
+ accelerator_types=[ec2.AcceleratorType.GPU],
44156
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
44157
+ accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
44158
+ accelerator_count_min=1,
44159
+
44160
+ # Storage requirements
44161
+ local_storage=ec2.LocalStorage.REQUIRED,
44162
+ local_storage_types=[ec2.LocalStorageType.SSD],
44163
+ total_local_storage_gBMin=100,
44164
+
44165
+ # Network requirements
44166
+ network_interface_count_min=2,
44167
+ network_bandwidth_gbps_min=10,
44168
+
44169
+ # Cost optimization
44170
+ on_demand_max_price_percentage_over_lowest_price=10
44171
+ )
44172
+ )
44173
+ '''
44174
+
44175
+ INCLUDED = "INCLUDED"
44176
+ '''Instance types with local storage are allowed, but types without local storage may also be selected.'''
44177
+ REQUIRED = "REQUIRED"
44178
+ '''Only instance types with local storage are allowed.
44179
+
44180
+ Types without local storage will be excluded.
44181
+ '''
44182
+ EXCLUDED = "EXCLUDED"
44183
+ '''Instance types with local storage are disallowed.
44184
+
44185
+ Only types without local storage may be selected.
44186
+ '''
44187
+
44188
+
44189
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.LocalStorageType")
44190
+ class LocalStorageType(enum.Enum):
44191
+ '''Types of local storage available for EC2 instances.
44192
+
44193
+ Specifies the physical medium used for local (instance store) storage.
44194
+
44195
+ :exampleMetadata: infused
44196
+
44197
+ Example::
44198
+
44199
+ # infrastructure_role: iam.Role
44200
+ # instance_profile: iam.InstanceProfile
44201
+ # vpc: ec2.Vpc
44202
+
44203
+
44204
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
44205
+ infrastructure_role=infrastructure_role,
44206
+ ec2_instance_profile=instance_profile,
44207
+ subnets=vpc.private_subnets,
44208
+ instance_requirements=ec2.InstanceRequirementsConfig(
44209
+ # Required: CPU and memory constraints
44210
+ v_cpu_count_min=2,
44211
+ v_cpu_count_max=8,
44212
+ memory_min=Size.gibibytes(4),
44213
+ memory_max=Size.gibibytes(32),
44214
+
44215
+ # CPU preferences
44216
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
44217
+ instance_generations=[ec2.InstanceGeneration.CURRENT],
44218
+
44219
+ # Instance type filtering
44220
+ allowed_instance_types=["m5.*", "c5.*"],
44221
+
44222
+ # Performance characteristics
44223
+ burstable_performance=ec2.BurstablePerformance.EXCLUDED,
44224
+ bare_metal=ec2.BareMetal.EXCLUDED,
44225
+
44226
+ # Accelerator requirements (for ML/AI workloads)
44227
+ accelerator_types=[ec2.AcceleratorType.GPU],
44228
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
44229
+ accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
44230
+ accelerator_count_min=1,
44231
+
44232
+ # Storage requirements
44233
+ local_storage=ec2.LocalStorage.REQUIRED,
44234
+ local_storage_types=[ec2.LocalStorageType.SSD],
44235
+ total_local_storage_gBMin=100,
44236
+
44237
+ # Network requirements
44238
+ network_interface_count_min=2,
44239
+ network_bandwidth_gbps_min=10,
44240
+
44241
+ # Cost optimization
44242
+ on_demand_max_price_percentage_over_lowest_price=10
44243
+ )
44244
+ )
44245
+ '''
44246
+
44247
+ HDD = "HDD"
44248
+ '''Hard disk drive storage.'''
44249
+ SSD = "SSD"
44250
+ '''Solid state drive storage.'''
44251
+
44252
+
42449
44253
  @jsii.data_type(
42450
44254
  jsii_type="aws-cdk-lib.aws_ec2.LocationPackageOptions",
42451
44255
  jsii_struct_bases=[],
@@ -61947,10 +63751,10 @@ class CfnEC2Fleet(
61947
63751
 
61948
63752
  :param delete_on_termination: Indicates whether the EBS volume is deleted on instance termination. For more information, see `Preserving Amazon EBS volumes on instance termination <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination>`_ in the *Amazon EC2 User Guide* .
61949
63753
  :param encrypted: Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot. The effect of setting the encryption state to ``true`` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see `Amazon EBS encryption <https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html#encryption-parameters>`_ in the *Amazon EBS User Guide* . In no case can you remove encryption from an encrypted volume. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For more information, see `Supported instance types <https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances>`_ . - If you are creating a block device mapping for a *new (empty) volume* , you can include this parameter, and specify either ``true`` for an encrypted volume, or ``false`` for an unencrypted volume. If you omit this parameter, it defaults to ``false`` (unencrypted). - If you are creating a block device mapping from an *existing encrypted or unencrypted snapshot* , you must omit this parameter. If you include this parameter, the request will fail, regardless of the value that you specify. - If you are creating a block device mapping from an *existing unencrypted volume* , you can include this parameter, but you must specify ``false`` . If you specify ``true`` , the request will fail. In this case, we recommend that you omit the parameter. - If you are creating a block device mapping from an *existing encrypted volume* , you can include this parameter, and specify either ``true`` or ``false`` . However, if you specify ``false`` , the parameter is ignored and the block device mapping is always encrypted. In this case, we recommend that you omit the parameter.
61950
- :param iops: The number of I/O operations per second (IOPS). For ``gp3`` , ``io1`` , and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: - ``gp3`` : 3,000 - 16,000 IOPS - ``io1`` : 100 - 64,000 IOPS - ``io2`` : 100 - 256,000 IOPS For ``io2`` volumes, you can achieve up to 256,000 IOPS on `instances built on the Nitro System <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances>`_ . On other instances, you can achieve performance up to 32,000 IOPS. This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS.
63754
+ :param iops: The number of I/O operations per second (IOPS). For ``gp3`` , ``io1`` , and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: - ``gp3`` : 3,000 - 80,000 IOPS - ``io1`` : 100 - 64,000 IOPS - ``io2`` : 100 - 256,000 IOPS For ``io2`` volumes, you can achieve up to 256,000 IOPS on `instances built on the Nitro System <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances>`_ . On other instances, you can achieve performance up to 32,000 IOPS. This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS.
61951
63755
  :param kms_key_id: Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption. This parameter is only supported on ``BlockDeviceMapping`` objects called by `RunInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html>`_ , `RequestSpotFleet <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html>`_ , and `RequestSpotInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html>`_ .
61952
63756
  :param snapshot_id: The ID of the snapshot.
61953
- :param volume_size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size. The following are the supported sizes for each volume type: - ``gp2`` and ``gp3`` : 1 - 16,384 GiB - ``io1`` : 4 - 16,384 GiB - ``io2`` : 4 - 65,536 GiB - ``st1`` and ``sc1`` : 125 - 16,384 GiB - ``standard`` : 1 - 1024 GiB
63757
+ :param volume_size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size. The following are the supported sizes for each volume type: - ``gp2`` : 1 - 16,384 GiB - ``gp3`` : 1 - 65,536 GiB - ``io1`` : 4 - 16,384 GiB - ``io2`` : 4 - 65,536 GiB - ``st1`` and ``sc1`` : 125 - 16,384 GiB - ``standard`` : 1 - 1024 GiB
61954
63758
  :param volume_type: The volume type. For more information, see `Amazon EBS volume types <https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html>`_ in the *Amazon EBS User Guide* .
61955
63759
 
61956
63760
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ebsblockdevice.html
@@ -62040,7 +63844,7 @@ class CfnEC2Fleet(
62040
63844
 
62041
63845
  The following are the supported values for each volume type:
62042
63846
 
62043
- - ``gp3`` : 3,000 - 16,000 IOPS
63847
+ - ``gp3`` : 3,000 - 80,000 IOPS
62044
63848
  - ``io1`` : 100 - 64,000 IOPS
62045
63849
  - ``io2`` : 100 - 256,000 IOPS
62046
63850
 
@@ -62081,7 +63885,8 @@ class CfnEC2Fleet(
62081
63885
 
62082
63886
  The following are the supported sizes for each volume type:
62083
63887
 
62084
- - ``gp2`` and ``gp3`` : 1 - 16,384 GiB
63888
+ - ``gp2`` : 1 - 16,384 GiB
63889
+ - ``gp3`` : 1 - 65,536 GiB
62085
63890
  - ``io1`` : 4 - 16,384 GiB
62086
63891
  - ``io2`` : 4 - 65,536 GiB
62087
63892
  - ``st1`` and ``sc1`` : 125 - 16,384 GiB
@@ -73746,12 +75551,12 @@ class CfnLaunchTemplate(
73746
75551
 
73747
75552
  :param delete_on_termination: Indicates whether the EBS volume is deleted on instance termination.
73748
75553
  :param encrypted: Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value.
73749
- :param iops: The number of I/O operations per second (IOPS). For ``gp3`` , ``io1`` , and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: - ``gp3`` : 3,000 - 16,000 IOPS - ``io1`` : 100 - 64,000 IOPS - ``io2`` : 100 - 256,000 IOPS For ``io2`` volumes, you can achieve up to 256,000 IOPS on `instances built on the Nitro System <https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html>`_ . On other instances, you can achieve performance up to 32,000 IOPS. This parameter is supported for ``io1`` , ``io2`` , and ``gp3`` volumes only.
75554
+ :param iops: The number of I/O operations per second (IOPS). For ``gp3`` , ``io1`` , and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: - ``gp3`` : 3,000 - 80,000 IOPS - ``io1`` : 100 - 64,000 IOPS - ``io2`` : 100 - 256,000 IOPS For ``io2`` volumes, you can achieve up to 256,000 IOPS on `instances built on the Nitro System <https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html>`_ . On other instances, you can achieve performance up to 32,000 IOPS. This parameter is supported for ``io1`` , ``io2`` , and ``gp3`` volumes only.
73750
75555
  :param kms_key_id: Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption.
73751
75556
  :param snapshot_id: The ID of the snapshot.
73752
- :param throughput: The throughput to provision for a ``gp3`` volume, with a maximum of 1,000 MiB/s. Valid Range: Minimum value of 125. Maximum value of 1000.
75557
+ :param throughput: The throughput to provision for a ``gp3`` volume, with a maximum of 2,000 MiB/s. Valid Range: Minimum value of 125. Maximum value of 2,000.
73753
75558
  :param volume_initialization_rate: Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot blocks from Amazon S3 to the volume. This is also known as *volume initialization* . Specifying a volume initialization rate ensures that the volume is initialized at a predictable and consistent rate after creation. This parameter is supported only for volumes created from snapshots. Omit this parameter if: - You want to create the volume using fast snapshot restore. You must specify a snapshot that is enabled for fast snapshot restore. In this case, the volume is fully initialized at creation. .. epigraph:: If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, the volume will be initialized at the specified rate instead of fast snapshot restore. - You want to create a volume that is initialized at the default rate. For more information, see `Initialize Amazon EBS volumes <https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html>`_ in the *Amazon EC2 User Guide* . Valid range: 100 - 300 MiB/s
73754
- :param volume_size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type: - ``gp2`` and ``gp3`` : 1 - 16,384 GiB - ``io1`` : 4 - 16,384 GiB - ``io2`` : 4 - 65,536 GiB - ``st1`` and ``sc1`` : 125 - 16,384 GiB - ``standard`` : 1 - 1024 GiB
75559
+ :param volume_size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type: - ``gp2`` : 1 - 16,384 GiB - ``gp3`` : 1 - 65,536 GiB - ``io1`` : 4 - 16,384 GiB - ``io2`` : 4 - 65,536 GiB - ``st1`` and ``sc1`` : 125 - 16,384 GiB - ``standard`` : 1 - 1024 GiB
73755
75560
  :param volume_type: The volume type. For more information, see `Amazon EBS volume types <https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html>`_ in the *Amazon EBS User Guide* .
73756
75561
 
73757
75562
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ebs.html
@@ -73838,7 +75643,7 @@ class CfnLaunchTemplate(
73838
75643
 
73839
75644
  The following are the supported values for each volume type:
73840
75645
 
73841
- - ``gp3`` : 3,000 - 16,000 IOPS
75646
+ - ``gp3`` : 3,000 - 80,000 IOPS
73842
75647
  - ``io1`` : 100 - 64,000 IOPS
73843
75648
  - ``io2`` : 100 - 256,000 IOPS
73844
75649
 
@@ -73871,9 +75676,9 @@ class CfnLaunchTemplate(
73871
75676
 
73872
75677
  @builtins.property
73873
75678
  def throughput(self) -> typing.Optional[jsii.Number]:
73874
- '''The throughput to provision for a ``gp3`` volume, with a maximum of 1,000 MiB/s.
75679
+ '''The throughput to provision for a ``gp3`` volume, with a maximum of 2,000 MiB/s.
73875
75680
 
73876
- Valid Range: Minimum value of 125. Maximum value of 1000.
75681
+ Valid Range: Minimum value of 125. Maximum value of 2,000.
73877
75682
 
73878
75683
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ebs.html#cfn-ec2-launchtemplate-ebs-throughput
73879
75684
  '''
@@ -73911,7 +75716,8 @@ class CfnLaunchTemplate(
73911
75716
 
73912
75717
  You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type:
73913
75718
 
73914
- - ``gp2`` and ``gp3`` : 1 - 16,384 GiB
75719
+ - ``gp2`` : 1 - 16,384 GiB
75720
+ - ``gp3`` : 1 - 65,536 GiB
73915
75721
  - ``io1`` : 4 - 16,384 GiB
73916
75722
  - ``io2`` : 4 - 65,536 GiB
73917
75723
  - ``st1`` and ``sc1`` : 125 - 16,384 GiB
@@ -79021,6 +80827,555 @@ class CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation(
79021
80827
  jsii.set(self, "tagsRaw", value) # pyright: ignore[reportArgumentType]
79022
80828
 
79023
80829
 
80830
+ @jsii.implements(_IInspectable_c2943556, ILocalGatewayVirtualInterfaceRef, _ITaggableV2_4e6798f8)
80831
+ class CfnLocalGatewayVirtualInterface(
80832
+ _CfnResource_9df397a6,
80833
+ metaclass=jsii.JSIIMeta,
80834
+ jsii_type="aws-cdk-lib.aws_ec2.CfnLocalGatewayVirtualInterface",
80835
+ ):
80836
+ '''Describes a local gateway virtual interface.
80837
+
80838
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html
80839
+ :cloudformationResource: AWS::EC2::LocalGatewayVirtualInterface
80840
+ :exampleMetadata: fixture=_generated
80841
+
80842
+ Example::
80843
+
80844
+ # The code below shows an example of how to instantiate this type.
80845
+ # The values are placeholders you should change.
80846
+ from aws_cdk import aws_ec2 as ec2
80847
+
80848
+ cfn_local_gateway_virtual_interface = ec2.CfnLocalGatewayVirtualInterface(self, "MyCfnLocalGatewayVirtualInterface",
80849
+ local_address="localAddress",
80850
+ local_gateway_virtual_interface_group_id="localGatewayVirtualInterfaceGroupId",
80851
+ outpost_lag_id="outpostLagId",
80852
+ peer_address="peerAddress",
80853
+ vlan=123,
80854
+
80855
+ # the properties below are optional
80856
+ peer_bgp_asn=123,
80857
+ peer_bgp_asn_extended=123,
80858
+ tags=[CfnTag(
80859
+ key="key",
80860
+ value="value"
80861
+ )]
80862
+ )
80863
+ '''
80864
+
80865
+ def __init__(
80866
+ self,
80867
+ scope: _constructs_77d1e7e8.Construct,
80868
+ id: builtins.str,
80869
+ *,
80870
+ local_address: builtins.str,
80871
+ local_gateway_virtual_interface_group_id: builtins.str,
80872
+ outpost_lag_id: builtins.str,
80873
+ peer_address: builtins.str,
80874
+ vlan: jsii.Number,
80875
+ peer_bgp_asn: typing.Optional[jsii.Number] = None,
80876
+ peer_bgp_asn_extended: typing.Optional[jsii.Number] = None,
80877
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
80878
+ ) -> None:
80879
+ '''
80880
+ :param scope: Scope in which this resource is defined.
80881
+ :param id: Construct identifier for this resource (unique in its scope).
80882
+ :param local_address: The local address.
80883
+ :param local_gateway_virtual_interface_group_id: The ID of the local gateway virtual interface group.
80884
+ :param outpost_lag_id: The Outpost LAG ID.
80885
+ :param peer_address: The peer address.
80886
+ :param vlan: The ID of the VLAN.
80887
+ :param peer_bgp_asn: The peer BGP ASN.
80888
+ :param peer_bgp_asn_extended: The extended 32-bit ASN of the BGP peer for use with larger ASN values.
80889
+ :param tags: The tags assigned to the virtual interface.
80890
+ '''
80891
+ if __debug__:
80892
+ type_hints = typing.get_type_hints(_typecheckingstub__2aa88d11229e60744af7610169f28b3d5625cb154fd34b95efb791e8bfccfc63)
80893
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
80894
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
80895
+ props = CfnLocalGatewayVirtualInterfaceProps(
80896
+ local_address=local_address,
80897
+ local_gateway_virtual_interface_group_id=local_gateway_virtual_interface_group_id,
80898
+ outpost_lag_id=outpost_lag_id,
80899
+ peer_address=peer_address,
80900
+ vlan=vlan,
80901
+ peer_bgp_asn=peer_bgp_asn,
80902
+ peer_bgp_asn_extended=peer_bgp_asn_extended,
80903
+ tags=tags,
80904
+ )
80905
+
80906
+ jsii.create(self.__class__, self, [scope, id, props])
80907
+
80908
+ @jsii.member(jsii_name="fromLocalGatewayVirtualInterfaceId")
80909
+ @builtins.classmethod
80910
+ def from_local_gateway_virtual_interface_id(
80911
+ cls,
80912
+ scope: _constructs_77d1e7e8.Construct,
80913
+ id: builtins.str,
80914
+ local_gateway_virtual_interface_id: builtins.str,
80915
+ ) -> ILocalGatewayVirtualInterfaceRef:
80916
+ '''Creates a new ILocalGatewayVirtualInterfaceRef from a localGatewayVirtualInterfaceId.
80917
+
80918
+ :param scope: -
80919
+ :param id: -
80920
+ :param local_gateway_virtual_interface_id: -
80921
+ '''
80922
+ if __debug__:
80923
+ type_hints = typing.get_type_hints(_typecheckingstub__7e3e16f72affac0d04131f323309fd5617e7cabcdedcd19ac8ade915c112fa06)
80924
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
80925
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
80926
+ check_type(argname="argument local_gateway_virtual_interface_id", value=local_gateway_virtual_interface_id, expected_type=type_hints["local_gateway_virtual_interface_id"])
80927
+ return typing.cast(ILocalGatewayVirtualInterfaceRef, jsii.sinvoke(cls, "fromLocalGatewayVirtualInterfaceId", [scope, id, local_gateway_virtual_interface_id]))
80928
+
80929
+ @jsii.member(jsii_name="inspect")
80930
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
80931
+ '''Examines the CloudFormation resource and discloses attributes.
80932
+
80933
+ :param inspector: tree inspector to collect and process attributes.
80934
+ '''
80935
+ if __debug__:
80936
+ type_hints = typing.get_type_hints(_typecheckingstub__94977590a9f1d2767ea0830e9b759c542b741cd7dac530ebefe8f70c31670444)
80937
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
80938
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
80939
+
80940
+ @jsii.member(jsii_name="renderProperties")
80941
+ def _render_properties(
80942
+ self,
80943
+ props: typing.Mapping[builtins.str, typing.Any],
80944
+ ) -> typing.Mapping[builtins.str, typing.Any]:
80945
+ '''
80946
+ :param props: -
80947
+ '''
80948
+ if __debug__:
80949
+ type_hints = typing.get_type_hints(_typecheckingstub__095a3726e61c66bed12ad64205be51561583ad09436d79a570b9239072336539)
80950
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
80951
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
80952
+
80953
+ @jsii.python.classproperty
80954
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
80955
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
80956
+ '''The CloudFormation resource type name for this resource class.'''
80957
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
80958
+
80959
+ @builtins.property
80960
+ @jsii.member(jsii_name="attrConfigurationState")
80961
+ def attr_configuration_state(self) -> builtins.str:
80962
+ '''The current state of the local gateway virtual interface.
80963
+
80964
+ :cloudformationAttribute: ConfigurationState
80965
+ '''
80966
+ return typing.cast(builtins.str, jsii.get(self, "attrConfigurationState"))
80967
+
80968
+ @builtins.property
80969
+ @jsii.member(jsii_name="attrLocalBgpAsn")
80970
+ def attr_local_bgp_asn(self) -> jsii.Number:
80971
+ '''The Border Gateway Protocol (BGP) Autonomous System Number (ASN) of the local gateway.
80972
+
80973
+ :cloudformationAttribute: LocalBgpAsn
80974
+ '''
80975
+ return typing.cast(jsii.Number, jsii.get(self, "attrLocalBgpAsn"))
80976
+
80977
+ @builtins.property
80978
+ @jsii.member(jsii_name="attrLocalGatewayId")
80979
+ def attr_local_gateway_id(self) -> builtins.str:
80980
+ '''The ID of the local gateway.
80981
+
80982
+ :cloudformationAttribute: LocalGatewayId
80983
+ '''
80984
+ return typing.cast(builtins.str, jsii.get(self, "attrLocalGatewayId"))
80985
+
80986
+ @builtins.property
80987
+ @jsii.member(jsii_name="attrLocalGatewayVirtualInterfaceId")
80988
+ def attr_local_gateway_virtual_interface_id(self) -> builtins.str:
80989
+ '''The ID of the virtual interface.
80990
+
80991
+ :cloudformationAttribute: LocalGatewayVirtualInterfaceId
80992
+ '''
80993
+ return typing.cast(builtins.str, jsii.get(self, "attrLocalGatewayVirtualInterfaceId"))
80994
+
80995
+ @builtins.property
80996
+ @jsii.member(jsii_name="attrOwnerId")
80997
+ def attr_owner_id(self) -> builtins.str:
80998
+ '''The ID of the AWS account that owns the local gateway virtual interface.
80999
+
81000
+ :cloudformationAttribute: OwnerId
81001
+ '''
81002
+ return typing.cast(builtins.str, jsii.get(self, "attrOwnerId"))
81003
+
81004
+ @builtins.property
81005
+ @jsii.member(jsii_name="cdkTagManager")
81006
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
81007
+ '''Tag Manager which manages the tags for this resource.'''
81008
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
81009
+
81010
+ @builtins.property
81011
+ @jsii.member(jsii_name="cfnProperties")
81012
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
81013
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
81014
+
81015
+ @builtins.property
81016
+ @jsii.member(jsii_name="localGatewayVirtualInterfaceRef")
81017
+ def local_gateway_virtual_interface_ref(
81018
+ self,
81019
+ ) -> LocalGatewayVirtualInterfaceReference:
81020
+ '''A reference to a LocalGatewayVirtualInterface resource.'''
81021
+ return typing.cast(LocalGatewayVirtualInterfaceReference, jsii.get(self, "localGatewayVirtualInterfaceRef"))
81022
+
81023
+ @builtins.property
81024
+ @jsii.member(jsii_name="localAddress")
81025
+ def local_address(self) -> builtins.str:
81026
+ '''The local address.'''
81027
+ return typing.cast(builtins.str, jsii.get(self, "localAddress"))
81028
+
81029
+ @local_address.setter
81030
+ def local_address(self, value: builtins.str) -> None:
81031
+ if __debug__:
81032
+ type_hints = typing.get_type_hints(_typecheckingstub__aea0d3e37c3a8dd56ec78450277d740b869a461b084be05fe5b483cc3069cf1d)
81033
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81034
+ jsii.set(self, "localAddress", value) # pyright: ignore[reportArgumentType]
81035
+
81036
+ @builtins.property
81037
+ @jsii.member(jsii_name="localGatewayVirtualInterfaceGroupId")
81038
+ def local_gateway_virtual_interface_group_id(self) -> builtins.str:
81039
+ '''The ID of the local gateway virtual interface group.'''
81040
+ return typing.cast(builtins.str, jsii.get(self, "localGatewayVirtualInterfaceGroupId"))
81041
+
81042
+ @local_gateway_virtual_interface_group_id.setter
81043
+ def local_gateway_virtual_interface_group_id(self, value: builtins.str) -> None:
81044
+ if __debug__:
81045
+ type_hints = typing.get_type_hints(_typecheckingstub__6022f5909fe462f9f3785e9d5d0bfec37b4fbdc32098ff0ed5b117e2095af317)
81046
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81047
+ jsii.set(self, "localGatewayVirtualInterfaceGroupId", value) # pyright: ignore[reportArgumentType]
81048
+
81049
+ @builtins.property
81050
+ @jsii.member(jsii_name="outpostLagId")
81051
+ def outpost_lag_id(self) -> builtins.str:
81052
+ '''The Outpost LAG ID.'''
81053
+ return typing.cast(builtins.str, jsii.get(self, "outpostLagId"))
81054
+
81055
+ @outpost_lag_id.setter
81056
+ def outpost_lag_id(self, value: builtins.str) -> None:
81057
+ if __debug__:
81058
+ type_hints = typing.get_type_hints(_typecheckingstub__d9e0940225d24f5768baac171eb4d7a02583d63a1dbff31fafd812a6612cf377)
81059
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81060
+ jsii.set(self, "outpostLagId", value) # pyright: ignore[reportArgumentType]
81061
+
81062
+ @builtins.property
81063
+ @jsii.member(jsii_name="peerAddress")
81064
+ def peer_address(self) -> builtins.str:
81065
+ '''The peer address.'''
81066
+ return typing.cast(builtins.str, jsii.get(self, "peerAddress"))
81067
+
81068
+ @peer_address.setter
81069
+ def peer_address(self, value: builtins.str) -> None:
81070
+ if __debug__:
81071
+ type_hints = typing.get_type_hints(_typecheckingstub__c55a99d7a9d8ce108f6383103a39169fa8ff7dbefa5fa9da14d3fdc18b33f56d)
81072
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81073
+ jsii.set(self, "peerAddress", value) # pyright: ignore[reportArgumentType]
81074
+
81075
+ @builtins.property
81076
+ @jsii.member(jsii_name="vlan")
81077
+ def vlan(self) -> jsii.Number:
81078
+ '''The ID of the VLAN.'''
81079
+ return typing.cast(jsii.Number, jsii.get(self, "vlan"))
81080
+
81081
+ @vlan.setter
81082
+ def vlan(self, value: jsii.Number) -> None:
81083
+ if __debug__:
81084
+ type_hints = typing.get_type_hints(_typecheckingstub__876a548873295da57ca1d79ac22c64da6f6bb90a671ef5e7e35327fa50455921)
81085
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81086
+ jsii.set(self, "vlan", value) # pyright: ignore[reportArgumentType]
81087
+
81088
+ @builtins.property
81089
+ @jsii.member(jsii_name="peerBgpAsn")
81090
+ def peer_bgp_asn(self) -> typing.Optional[jsii.Number]:
81091
+ '''The peer BGP ASN.'''
81092
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "peerBgpAsn"))
81093
+
81094
+ @peer_bgp_asn.setter
81095
+ def peer_bgp_asn(self, value: typing.Optional[jsii.Number]) -> None:
81096
+ if __debug__:
81097
+ type_hints = typing.get_type_hints(_typecheckingstub__0c59092a20afba0573e2b1509528b6946b674912bc181e34599b6b4caf2d6fc6)
81098
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81099
+ jsii.set(self, "peerBgpAsn", value) # pyright: ignore[reportArgumentType]
81100
+
81101
+ @builtins.property
81102
+ @jsii.member(jsii_name="peerBgpAsnExtended")
81103
+ def peer_bgp_asn_extended(self) -> typing.Optional[jsii.Number]:
81104
+ '''The extended 32-bit ASN of the BGP peer for use with larger ASN values.'''
81105
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "peerBgpAsnExtended"))
81106
+
81107
+ @peer_bgp_asn_extended.setter
81108
+ def peer_bgp_asn_extended(self, value: typing.Optional[jsii.Number]) -> None:
81109
+ if __debug__:
81110
+ type_hints = typing.get_type_hints(_typecheckingstub__f3cce6d05d44bd0efd48f94e34176bb44563507d53cdce3a678259de4fe36b18)
81111
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81112
+ jsii.set(self, "peerBgpAsnExtended", value) # pyright: ignore[reportArgumentType]
81113
+
81114
+ @builtins.property
81115
+ @jsii.member(jsii_name="tags")
81116
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
81117
+ '''The tags assigned to the virtual interface.'''
81118
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
81119
+
81120
+ @tags.setter
81121
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
81122
+ if __debug__:
81123
+ type_hints = typing.get_type_hints(_typecheckingstub__eb087b9b572ca18afe9a40645f05ba591d2e3255ff50d614f2090fe641563ff1)
81124
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81125
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
81126
+
81127
+
81128
+ @jsii.implements(_IInspectable_c2943556, ILocalGatewayVirtualInterfaceGroupRef, _ITaggableV2_4e6798f8)
81129
+ class CfnLocalGatewayVirtualInterfaceGroup(
81130
+ _CfnResource_9df397a6,
81131
+ metaclass=jsii.JSIIMeta,
81132
+ jsii_type="aws-cdk-lib.aws_ec2.CfnLocalGatewayVirtualInterfaceGroup",
81133
+ ):
81134
+ '''Describes a local gateway virtual interface group.
81135
+
81136
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html
81137
+ :cloudformationResource: AWS::EC2::LocalGatewayVirtualInterfaceGroup
81138
+ :exampleMetadata: fixture=_generated
81139
+
81140
+ Example::
81141
+
81142
+ # The code below shows an example of how to instantiate this type.
81143
+ # The values are placeholders you should change.
81144
+ from aws_cdk import aws_ec2 as ec2
81145
+
81146
+ cfn_local_gateway_virtual_interface_group = ec2.CfnLocalGatewayVirtualInterfaceGroup(self, "MyCfnLocalGatewayVirtualInterfaceGroup",
81147
+ local_gateway_id="localGatewayId",
81148
+
81149
+ # the properties below are optional
81150
+ local_bgp_asn=123,
81151
+ local_bgp_asn_extended=123,
81152
+ tags=[CfnTag(
81153
+ key="key",
81154
+ value="value"
81155
+ )]
81156
+ )
81157
+ '''
81158
+
81159
+ def __init__(
81160
+ self,
81161
+ scope: _constructs_77d1e7e8.Construct,
81162
+ id: builtins.str,
81163
+ *,
81164
+ local_gateway_id: builtins.str,
81165
+ local_bgp_asn: typing.Optional[jsii.Number] = None,
81166
+ local_bgp_asn_extended: typing.Optional[jsii.Number] = None,
81167
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
81168
+ ) -> None:
81169
+ '''
81170
+ :param scope: Scope in which this resource is defined.
81171
+ :param id: Construct identifier for this resource (unique in its scope).
81172
+ :param local_gateway_id: The ID of the local gateway.
81173
+ :param local_bgp_asn: The Autonomous System Number(ASN) for the local Border Gateway Protocol (BGP).
81174
+ :param local_bgp_asn_extended: The extended 32-bit ASN for the local BGP configuration.
81175
+ :param tags: The tags assigned to the virtual interface group.
81176
+ '''
81177
+ if __debug__:
81178
+ type_hints = typing.get_type_hints(_typecheckingstub__f4428e70a4cdbb5cb8cdf0b9a30ee1c62e12bf1982546a8f6fceda85eb1710d8)
81179
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
81180
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
81181
+ props = CfnLocalGatewayVirtualInterfaceGroupProps(
81182
+ local_gateway_id=local_gateway_id,
81183
+ local_bgp_asn=local_bgp_asn,
81184
+ local_bgp_asn_extended=local_bgp_asn_extended,
81185
+ tags=tags,
81186
+ )
81187
+
81188
+ jsii.create(self.__class__, self, [scope, id, props])
81189
+
81190
+ @jsii.member(jsii_name="fromLocalGatewayVirtualInterfaceGroupArn")
81191
+ @builtins.classmethod
81192
+ def from_local_gateway_virtual_interface_group_arn(
81193
+ cls,
81194
+ scope: _constructs_77d1e7e8.Construct,
81195
+ id: builtins.str,
81196
+ arn: builtins.str,
81197
+ ) -> ILocalGatewayVirtualInterfaceGroupRef:
81198
+ '''Creates a new ILocalGatewayVirtualInterfaceGroupRef from an ARN.
81199
+
81200
+ :param scope: -
81201
+ :param id: -
81202
+ :param arn: -
81203
+ '''
81204
+ if __debug__:
81205
+ type_hints = typing.get_type_hints(_typecheckingstub__d5a9b6710adb36dfbe12ad180d73bda56451914c2f050b2f3087ad3bcbc2d6fa)
81206
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
81207
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
81208
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
81209
+ return typing.cast(ILocalGatewayVirtualInterfaceGroupRef, jsii.sinvoke(cls, "fromLocalGatewayVirtualInterfaceGroupArn", [scope, id, arn]))
81210
+
81211
+ @jsii.member(jsii_name="fromLocalGatewayVirtualInterfaceGroupId")
81212
+ @builtins.classmethod
81213
+ def from_local_gateway_virtual_interface_group_id(
81214
+ cls,
81215
+ scope: _constructs_77d1e7e8.Construct,
81216
+ id: builtins.str,
81217
+ local_gateway_virtual_interface_group_id: builtins.str,
81218
+ ) -> ILocalGatewayVirtualInterfaceGroupRef:
81219
+ '''Creates a new ILocalGatewayVirtualInterfaceGroupRef from a localGatewayVirtualInterfaceGroupId.
81220
+
81221
+ :param scope: -
81222
+ :param id: -
81223
+ :param local_gateway_virtual_interface_group_id: -
81224
+ '''
81225
+ if __debug__:
81226
+ type_hints = typing.get_type_hints(_typecheckingstub__6c41061042437440fce590eb8d2e84ca2e31260fbb48f45a79f28c068eb57cf4)
81227
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
81228
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
81229
+ check_type(argname="argument local_gateway_virtual_interface_group_id", value=local_gateway_virtual_interface_group_id, expected_type=type_hints["local_gateway_virtual_interface_group_id"])
81230
+ return typing.cast(ILocalGatewayVirtualInterfaceGroupRef, jsii.sinvoke(cls, "fromLocalGatewayVirtualInterfaceGroupId", [scope, id, local_gateway_virtual_interface_group_id]))
81231
+
81232
+ @jsii.member(jsii_name="inspect")
81233
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
81234
+ '''Examines the CloudFormation resource and discloses attributes.
81235
+
81236
+ :param inspector: tree inspector to collect and process attributes.
81237
+ '''
81238
+ if __debug__:
81239
+ type_hints = typing.get_type_hints(_typecheckingstub__2cb275542481a92dcc0981a31e5b84f30303479387a077892f0ce93929c8683e)
81240
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
81241
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
81242
+
81243
+ @jsii.member(jsii_name="renderProperties")
81244
+ def _render_properties(
81245
+ self,
81246
+ props: typing.Mapping[builtins.str, typing.Any],
81247
+ ) -> typing.Mapping[builtins.str, typing.Any]:
81248
+ '''
81249
+ :param props: -
81250
+ '''
81251
+ if __debug__:
81252
+ type_hints = typing.get_type_hints(_typecheckingstub__18212f2fc4e751f496b0f978560864ecefabe558ebf8ffcccfafbd83fcc076f9)
81253
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
81254
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
81255
+
81256
+ @jsii.python.classproperty
81257
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
81258
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
81259
+ '''The CloudFormation resource type name for this resource class.'''
81260
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
81261
+
81262
+ @builtins.property
81263
+ @jsii.member(jsii_name="attrConfigurationState")
81264
+ def attr_configuration_state(self) -> builtins.str:
81265
+ '''The current state of the local gateway virtual interface group.
81266
+
81267
+ :cloudformationAttribute: ConfigurationState
81268
+ '''
81269
+ return typing.cast(builtins.str, jsii.get(self, "attrConfigurationState"))
81270
+
81271
+ @builtins.property
81272
+ @jsii.member(jsii_name="attrLocalGatewayVirtualInterfaceGroupArn")
81273
+ def attr_local_gateway_virtual_interface_group_arn(self) -> builtins.str:
81274
+ '''The Amazon Resource Number (ARN) of the local gateway virtual interface group.
81275
+
81276
+ :cloudformationAttribute: LocalGatewayVirtualInterfaceGroupArn
81277
+ '''
81278
+ return typing.cast(builtins.str, jsii.get(self, "attrLocalGatewayVirtualInterfaceGroupArn"))
81279
+
81280
+ @builtins.property
81281
+ @jsii.member(jsii_name="attrLocalGatewayVirtualInterfaceGroupId")
81282
+ def attr_local_gateway_virtual_interface_group_id(self) -> builtins.str:
81283
+ '''The ID of the virtual interface group.
81284
+
81285
+ :cloudformationAttribute: LocalGatewayVirtualInterfaceGroupId
81286
+ '''
81287
+ return typing.cast(builtins.str, jsii.get(self, "attrLocalGatewayVirtualInterfaceGroupId"))
81288
+
81289
+ @builtins.property
81290
+ @jsii.member(jsii_name="attrLocalGatewayVirtualInterfaceIds")
81291
+ def attr_local_gateway_virtual_interface_ids(self) -> typing.List[builtins.str]:
81292
+ '''The IDs of the virtual interfaces.
81293
+
81294
+ :cloudformationAttribute: LocalGatewayVirtualInterfaceIds
81295
+ '''
81296
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "attrLocalGatewayVirtualInterfaceIds"))
81297
+
81298
+ @builtins.property
81299
+ @jsii.member(jsii_name="attrOwnerId")
81300
+ def attr_owner_id(self) -> builtins.str:
81301
+ '''The ID of the AWS account that owns the local gateway virtual interface group.
81302
+
81303
+ :cloudformationAttribute: OwnerId
81304
+ '''
81305
+ return typing.cast(builtins.str, jsii.get(self, "attrOwnerId"))
81306
+
81307
+ @builtins.property
81308
+ @jsii.member(jsii_name="cdkTagManager")
81309
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
81310
+ '''Tag Manager which manages the tags for this resource.'''
81311
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
81312
+
81313
+ @builtins.property
81314
+ @jsii.member(jsii_name="cfnProperties")
81315
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
81316
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
81317
+
81318
+ @builtins.property
81319
+ @jsii.member(jsii_name="localGatewayVirtualInterfaceGroupRef")
81320
+ def local_gateway_virtual_interface_group_ref(
81321
+ self,
81322
+ ) -> LocalGatewayVirtualInterfaceGroupReference:
81323
+ '''A reference to a LocalGatewayVirtualInterfaceGroup resource.'''
81324
+ return typing.cast(LocalGatewayVirtualInterfaceGroupReference, jsii.get(self, "localGatewayVirtualInterfaceGroupRef"))
81325
+
81326
+ @builtins.property
81327
+ @jsii.member(jsii_name="localGatewayId")
81328
+ def local_gateway_id(self) -> builtins.str:
81329
+ '''The ID of the local gateway.'''
81330
+ return typing.cast(builtins.str, jsii.get(self, "localGatewayId"))
81331
+
81332
+ @local_gateway_id.setter
81333
+ def local_gateway_id(self, value: builtins.str) -> None:
81334
+ if __debug__:
81335
+ type_hints = typing.get_type_hints(_typecheckingstub__72980886c0b232d5cbf6c82b702ca8e8bad15827fe4b8c5a6125cccfd17a038f)
81336
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81337
+ jsii.set(self, "localGatewayId", value) # pyright: ignore[reportArgumentType]
81338
+
81339
+ @builtins.property
81340
+ @jsii.member(jsii_name="localBgpAsn")
81341
+ def local_bgp_asn(self) -> typing.Optional[jsii.Number]:
81342
+ '''The Autonomous System Number(ASN) for the local Border Gateway Protocol (BGP).'''
81343
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "localBgpAsn"))
81344
+
81345
+ @local_bgp_asn.setter
81346
+ def local_bgp_asn(self, value: typing.Optional[jsii.Number]) -> None:
81347
+ if __debug__:
81348
+ type_hints = typing.get_type_hints(_typecheckingstub__e17efd4cdc854aef38d95618d445b062d3dff94405b26cd2e5bf702d043d63c5)
81349
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81350
+ jsii.set(self, "localBgpAsn", value) # pyright: ignore[reportArgumentType]
81351
+
81352
+ @builtins.property
81353
+ @jsii.member(jsii_name="localBgpAsnExtended")
81354
+ def local_bgp_asn_extended(self) -> typing.Optional[jsii.Number]:
81355
+ '''The extended 32-bit ASN for the local BGP configuration.'''
81356
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "localBgpAsnExtended"))
81357
+
81358
+ @local_bgp_asn_extended.setter
81359
+ def local_bgp_asn_extended(self, value: typing.Optional[jsii.Number]) -> None:
81360
+ if __debug__:
81361
+ type_hints = typing.get_type_hints(_typecheckingstub__451e90a51f0d03f4296d1a4075273832941693edd09aeac29656d7364ee7c634)
81362
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81363
+ jsii.set(self, "localBgpAsnExtended", value) # pyright: ignore[reportArgumentType]
81364
+
81365
+ @builtins.property
81366
+ @jsii.member(jsii_name="tags")
81367
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
81368
+ '''The tags assigned to the virtual interface group.'''
81369
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
81370
+
81371
+ @tags.setter
81372
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
81373
+ if __debug__:
81374
+ type_hints = typing.get_type_hints(_typecheckingstub__c5e51302d318cef13096e5600090018d23258317ba4cb12507e944c98443851e)
81375
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81376
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
81377
+
81378
+
79024
81379
  @jsii.implements(_IInspectable_c2943556, INatGatewayRef, _ITaggable_36806126)
79025
81380
  class CfnNatGateway(
79026
81381
  _CfnResource_9df397a6,
@@ -90975,9 +93330,9 @@ class CfnSpotFleet(
90975
93330
 
90976
93331
  :param delete_on_termination: Indicates whether the EBS volume is deleted on instance termination. For more information, see `Preserving Amazon EBS volumes on instance termination <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination>`_ in the *Amazon EC2 User Guide* .
90977
93332
  :param encrypted: Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot. The effect of setting the encryption state to ``true`` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see `Amazon EBS Encryption <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-parameters>`_ in the *Amazon EC2 User Guide* . In no case can you remove encryption from an encrypted volume. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For more information, see `Supported Instance Types <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances>`_ . This parameter is not returned by `DescribeImageAttribute <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImageAttribute.html>`_ .
90978
- :param iops: The number of I/O operations per second (IOPS). For ``gp3`` , ``io1`` , and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: - ``gp3`` : 3,000 - 16,000 IOPS - ``io1`` : 100 - 64,000 IOPS - ``io2`` : 100 - 256,000 IOPS For ``io2`` volumes, you can achieve up to 256,000 IOPS on `instances built on the Nitro System <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances>`_ . On other instances, you can achieve performance up to 32,000 IOPS. This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS.
93333
+ :param iops: The number of I/O operations per second (IOPS). For ``gp3`` , ``io1`` , and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: - ``gp3`` : 3,000 - 80,000 IOPS - ``io1`` : 100 - 64,000 IOPS - ``io2`` : 100 - 256,000 IOPS For ``io2`` volumes, you can achieve up to 256,000 IOPS on `instances built on the Nitro System <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances>`_ . On other instances, you can achieve performance up to 32,000 IOPS. This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS.
90979
93334
  :param snapshot_id: The ID of the snapshot.
90980
- :param volume_size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size. The following are the supported sizes for each volume type: - ``gp2`` and ``gp3`` : 1 - 16,384 GiB - ``io1`` : 4 - 16,384 GiB - ``io2`` : 4 - 65,536 GiB - ``st1`` and ``sc1`` : 125 - 16,384 GiB - ``standard`` : 1 - 1024 GiB
93335
+ :param volume_size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size. The following are the supported sizes for each volume type: - ``gp2`` : 1 - 16,384 GiB - ``gp3`` : 1 - 65,536 GiB - ``io1`` : 4 - 16,384 GiB - ``io2`` : 4 - 65,536 GiB - ``st1`` and ``sc1`` : 125 - 16,384 GiB - ``standard`` : 1 - 1024 GiB
90981
93336
  :param volume_type: The volume type. For more information, see `Amazon EBS volume types <https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html>`_ in the *Amazon EBS User Guide* .
90982
93337
 
90983
93338
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-ebsblockdevice.html
@@ -91060,7 +93415,7 @@ class CfnSpotFleet(
91060
93415
 
91061
93416
  The following are the supported values for each volume type:
91062
93417
 
91063
- - ``gp3`` : 3,000 - 16,000 IOPS
93418
+ - ``gp3`` : 3,000 - 80,000 IOPS
91064
93419
  - ``io1`` : 100 - 64,000 IOPS
91065
93420
  - ``io2`` : 100 - 256,000 IOPS
91066
93421
 
@@ -91090,7 +93445,8 @@ class CfnSpotFleet(
91090
93445
 
91091
93446
  The following are the supported sizes for each volume type:
91092
93447
 
91093
- - ``gp2`` and ``gp3`` : 1 - 16,384 GiB
93448
+ - ``gp2`` : 1 - 16,384 GiB
93449
+ - ``gp3`` : 1 - 65,536 GiB
91094
93450
  - ``io1`` : 4 - 16,384 GiB
91095
93451
  - ``io2`` : 4 - 65,536 GiB
91096
93452
  - ``st1`` and ``sc1`` : 125 - 16,384 GiB
@@ -108548,11 +110904,11 @@ class CfnVolume(
108548
110904
  :param availability_zone: The ID of the Availability Zone in which to create the volume. For example, ``us-east-1a`` . Either ``AvailabilityZone`` or ``AvailabilityZoneId`` must be specified, but not both.
108549
110905
  :param auto_enable_io: Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O.
108550
110906
  :param encrypted: Indicates whether the volume should be encrypted. The effect of setting the encryption state to ``true`` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see `Encryption by default <https://docs.aws.amazon.com/ebs/latest/userguide/work-with-ebs-encr.html#encryption-by-default>`_ in the *Amazon EBS User Guide* . Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see `Supported instance types <https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances>`_ .
108551
- :param iops: The number of I/O operations per second (IOPS). For ``gp3`` , ``io1`` , and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: - ``gp3`` : 3,000 - 16,000 IOPS - ``io1`` : 100 - 64,000 IOPS - ``io2`` : 100 - 256,000 IOPS For ``io2`` volumes, you can achieve up to 256,000 IOPS on `instances built on the Nitro System <https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html>`_ . On other instances, you can achieve performance up to 32,000 IOPS. This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS. This parameter is not supported for ``gp2`` , ``st1`` , ``sc1`` , or ``standard`` volumes.
110907
+ :param iops: The number of I/O operations per second (IOPS). For ``gp3`` , ``io1`` , and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: - ``gp3`` : 3,000 - 80,000 IOPS - ``io1`` : 100 - 64,000 IOPS - ``io2`` : 100 - 256,000 IOPS For ``io2`` volumes, you can achieve up to 256,000 IOPS on `instances built on the Nitro System <https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html>`_ . On other instances, you can achieve performance up to 32,000 IOPS. This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS. This parameter is not supported for ``gp2`` , ``st1`` , ``sc1`` , or ``standard`` volumes.
108552
110908
  :param kms_key_id: The identifier of the AWS KMS key to use for Amazon EBS encryption. If ``KmsKeyId`` is specified, the encrypted state must be ``true`` . If you omit this property and your account is enabled for encryption by default, or *Encrypted* is set to ``true`` , then the volume is encrypted using the default key specified for your account. If your account does not have a default key, then the volume is encrypted using the AWS managed key . Alternatively, if you want to specify a different key, you can specify one of the following: - Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. - Key alias. Specify the alias for the key, prefixed with ``alias/`` . For example, for a key with the alias ``my_cmk`` , use ``alias/my_cmk`` . Or to specify the AWS managed key , use ``alias/aws/ebs`` . - Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. - Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
108553
110909
  :param multi_attach_enabled: Indicates whether Amazon EBS Multi-Attach is enabled. AWS CloudFormation does not currently support updating a single-attach volume to be multi-attach enabled, updating a multi-attach enabled volume to be single-attach, or updating the size or number of I/O operations per second (IOPS) of a multi-attach enabled volume.
108554
110910
  :param outpost_arn: The Amazon Resource Name (ARN) of the Outpost.
108555
- :param size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size. The following are the supported volumes sizes for each volume type: - ``gp2`` and ``gp3`` : 1 - 16,384 GiB - ``io1`` : 4 - 16,384 GiB - ``io2`` : 4 - 65,536 GiB - ``st1`` and ``sc1`` : 125 - 16,384 GiB - ``standard`` : 1 - 1024 GiB
110911
+ :param size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size. The following are the supported volumes sizes for each volume type: - ``gp2`` : 1 - 16,384 GiB - ``gp3`` : 1 - 65,536 GiB - ``io1`` : 4 - 16,384 GiB - ``io2`` : 4 - 65,536 GiB - ``st1`` and ``sc1`` : 125 - 16,384 GiB - ``standard`` : 1 - 1024 GiB
108556
110912
  :param snapshot_id: The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.
108557
110913
  :param tags: The tags to apply to the volume during creation.
108558
110914
  :param throughput: The throughput to provision for a volume, with a maximum of 1,000 MiB/s. This parameter is valid only for ``gp3`` volumes. The default value is 125. Valid Range: Minimum value of 125. Maximum value of 1000.
@@ -117561,6 +119917,9 @@ class PublicSubnet(
117561
119917
 
117562
119918
 
117563
119919
  __all__ = [
119920
+ "AcceleratorManufacturer",
119921
+ "AcceleratorName",
119922
+ "AcceleratorType",
117564
119923
  "AclCidr",
117565
119924
  "AclCidrConfig",
117566
119925
  "AclIcmp",
@@ -117598,10 +119957,12 @@ __all__ = [
117598
119957
  "ApplyCloudFormationInitOptions",
117599
119958
  "AttachInitOptions",
117600
119959
  "AwsIpamProps",
119960
+ "BareMetal",
117601
119961
  "BastionHostLinux",
117602
119962
  "BastionHostLinuxProps",
117603
119963
  "BlockDevice",
117604
119964
  "BlockDeviceVolume",
119965
+ "BurstablePerformance",
117605
119966
  "CapacityReservationFleetReference",
117606
119967
  "CapacityReservationReference",
117607
119968
  "CarrierGatewayReference",
@@ -117673,6 +120034,10 @@ __all__ = [
117673
120034
  "CfnLocalGatewayRouteTableVPCAssociationProps",
117674
120035
  "CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation",
117675
120036
  "CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationProps",
120037
+ "CfnLocalGatewayVirtualInterface",
120038
+ "CfnLocalGatewayVirtualInterfaceGroup",
120039
+ "CfnLocalGatewayVirtualInterfaceGroupProps",
120040
+ "CfnLocalGatewayVirtualInterfaceProps",
117676
120041
  "CfnNatGateway",
117677
120042
  "CfnNatGatewayProps",
117678
120043
  "CfnNetworkAcl",
@@ -117837,6 +120202,7 @@ __all__ = [
117837
120202
  "Connections",
117838
120203
  "ConnectionsProps",
117839
120204
  "CpuCredits",
120205
+ "CpuManufacturer",
117840
120206
  "CreateIpv6CidrBlocksRequest",
117841
120207
  "CustomerGatewayReference",
117842
120208
  "DHCPOptionsReference",
@@ -117924,6 +120290,8 @@ __all__ = [
117924
120290
  "ILocalGatewayRouteTableRef",
117925
120291
  "ILocalGatewayRouteTableVPCAssociationRef",
117926
120292
  "ILocalGatewayRouteTableVirtualInterfaceGroupAssociationRef",
120293
+ "ILocalGatewayVirtualInterfaceGroupRef",
120294
+ "ILocalGatewayVirtualInterfaceRef",
117927
120295
  "IMachineImage",
117928
120296
  "INatGatewayRef",
117929
120297
  "INetworkAcl",
@@ -118041,11 +120409,13 @@ __all__ = [
118041
120409
  "InstanceArchitecture",
118042
120410
  "InstanceClass",
118043
120411
  "InstanceConnectEndpointReference",
120412
+ "InstanceGeneration",
118044
120413
  "InstanceInitiatedShutdownBehavior",
118045
120414
  "InstanceProps",
118046
120415
  "InstanceReference",
118047
120416
  "InstanceRequireImdsv2Aspect",
118048
120417
  "InstanceRequireImdsv2AspectProps",
120418
+ "InstanceRequirementsConfig",
118049
120419
  "InstanceSize",
118050
120420
  "InstanceType",
118051
120421
  "InterfaceVpcEndpoint",
@@ -118081,6 +120451,10 @@ __all__ = [
118081
120451
  "LocalGatewayRouteTableReference",
118082
120452
  "LocalGatewayRouteTableVPCAssociationReference",
118083
120453
  "LocalGatewayRouteTableVirtualInterfaceGroupAssociationReference",
120454
+ "LocalGatewayVirtualInterfaceGroupReference",
120455
+ "LocalGatewayVirtualInterfaceReference",
120456
+ "LocalStorage",
120457
+ "LocalStorageType",
118084
120458
  "LocationPackageOptions",
118085
120459
  "LogFormat",
118086
120460
  "LookupMachineImage",
@@ -118991,6 +121365,30 @@ def _typecheckingstub__b9a8cd9288a52b6663080797430bf0981183639ee7ad7887a7ff932d0
118991
121365
  """Type checking stubs"""
118992
121366
  pass
118993
121367
 
121368
+ def _typecheckingstub__f7ce4c591b68ccf10989a9f20fd3c6f1fc55f0f986e5272574d1a8263ccb9638(
121369
+ *,
121370
+ local_gateway_id: builtins.str,
121371
+ local_bgp_asn: typing.Optional[jsii.Number] = None,
121372
+ local_bgp_asn_extended: typing.Optional[jsii.Number] = None,
121373
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
121374
+ ) -> None:
121375
+ """Type checking stubs"""
121376
+ pass
121377
+
121378
+ def _typecheckingstub__f937f1e5478df1249afd18165f33effb63a12f7ed00b1831a2fbee04cab4c28a(
121379
+ *,
121380
+ local_address: builtins.str,
121381
+ local_gateway_virtual_interface_group_id: builtins.str,
121382
+ outpost_lag_id: builtins.str,
121383
+ peer_address: builtins.str,
121384
+ vlan: jsii.Number,
121385
+ peer_bgp_asn: typing.Optional[jsii.Number] = None,
121386
+ peer_bgp_asn_extended: typing.Optional[jsii.Number] = None,
121387
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
121388
+ ) -> None:
121389
+ """Type checking stubs"""
121390
+ pass
121391
+
118994
121392
  def _typecheckingstub__1aba83edf7a8e3f14e1d4f9ca76c7049f7f7c569d2ffb43bcad65b330ee9a581(
118995
121393
  *,
118996
121394
  allocation_id: typing.Optional[builtins.str] = None,
@@ -120948,6 +123346,45 @@ def _typecheckingstub__a9326e8778e870d6503548ff3c5ed500440af6b908992d24dc8f76fa8
120948
123346
  """Type checking stubs"""
120949
123347
  pass
120950
123348
 
123349
+ def _typecheckingstub__ec2256eb42c017c1221986108df1dba524eae16d4aaf51d7503ce5b1f919f3cd(
123350
+ *,
123351
+ memory_min: _Size_7b441c34,
123352
+ v_cpu_count_min: jsii.Number,
123353
+ accelerator_count_max: typing.Optional[jsii.Number] = None,
123354
+ accelerator_count_min: typing.Optional[jsii.Number] = None,
123355
+ accelerator_manufacturers: typing.Optional[typing.Sequence[AcceleratorManufacturer]] = None,
123356
+ accelerator_names: typing.Optional[typing.Sequence[AcceleratorName]] = None,
123357
+ accelerator_total_memory_max: typing.Optional[_Size_7b441c34] = None,
123358
+ accelerator_total_memory_min: typing.Optional[_Size_7b441c34] = None,
123359
+ accelerator_types: typing.Optional[typing.Sequence[AcceleratorType]] = None,
123360
+ allowed_instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
123361
+ bare_metal: typing.Optional[BareMetal] = None,
123362
+ baseline_ebs_bandwidth_mbps_max: typing.Optional[jsii.Number] = None,
123363
+ baseline_ebs_bandwidth_mbps_min: typing.Optional[jsii.Number] = None,
123364
+ burstable_performance: typing.Optional[BurstablePerformance] = None,
123365
+ cpu_manufacturers: typing.Optional[typing.Sequence[CpuManufacturer]] = None,
123366
+ excluded_instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
123367
+ instance_generations: typing.Optional[typing.Sequence[InstanceGeneration]] = None,
123368
+ local_storage: typing.Optional[LocalStorage] = None,
123369
+ local_storage_types: typing.Optional[typing.Sequence[LocalStorageType]] = None,
123370
+ max_spot_price_as_percentage_of_optimal_on_demand_price: typing.Optional[jsii.Number] = None,
123371
+ memory_max: typing.Optional[_Size_7b441c34] = None,
123372
+ memory_per_v_cpu_max: typing.Optional[_Size_7b441c34] = None,
123373
+ memory_per_v_cpu_min: typing.Optional[_Size_7b441c34] = None,
123374
+ network_bandwidth_gbps_max: typing.Optional[jsii.Number] = None,
123375
+ network_bandwidth_gbps_min: typing.Optional[jsii.Number] = None,
123376
+ network_interface_count_max: typing.Optional[jsii.Number] = None,
123377
+ network_interface_count_min: typing.Optional[jsii.Number] = None,
123378
+ on_demand_max_price_percentage_over_lowest_price: typing.Optional[jsii.Number] = None,
123379
+ require_hibernate_support: typing.Optional[builtins.bool] = None,
123380
+ spot_max_price_percentage_over_lowest_price: typing.Optional[jsii.Number] = None,
123381
+ total_local_storage_gb_max: typing.Optional[jsii.Number] = None,
123382
+ total_local_storage_gb_min: typing.Optional[jsii.Number] = None,
123383
+ v_cpu_count_max: typing.Optional[jsii.Number] = None,
123384
+ ) -> None:
123385
+ """Type checking stubs"""
123386
+ pass
123387
+
120951
123388
  def _typecheckingstub__f9e12e553c32475e068e0d7318afcf27197468eae438a6b5020d7d6a0231705f(
120952
123389
  instance_type_identifier: builtins.str,
120953
123390
  ) -> None:
@@ -121199,6 +123636,21 @@ def _typecheckingstub__cd535e63329c308e9914cf9956b0964a6259b4c4557b9d3c8637793be
121199
123636
  """Type checking stubs"""
121200
123637
  pass
121201
123638
 
123639
+ def _typecheckingstub__c5749867b83865efb222663d0629d4ad2212132a3d659cf6e5b6eefb44fdc1b9(
123640
+ *,
123641
+ local_gateway_virtual_interface_group_arn: builtins.str,
123642
+ local_gateway_virtual_interface_group_id: builtins.str,
123643
+ ) -> None:
123644
+ """Type checking stubs"""
123645
+ pass
123646
+
123647
+ def _typecheckingstub__370c12dc1c7162c4f581d58e74af3136efcbc6bf0ba1e90bcab50deb09c4733f(
123648
+ *,
123649
+ local_gateway_virtual_interface_id: builtins.str,
123650
+ ) -> None:
123651
+ """Type checking stubs"""
123652
+ pass
123653
+
121202
123654
  def _typecheckingstub__adb9aead901a9e42e17ecf53f0a66db93e64d4cc2e633a62de1a847f4c40aa01(
121203
123655
  *,
121204
123656
  key: typing.Optional[builtins.str] = None,
@@ -126248,6 +128700,154 @@ def _typecheckingstub__3480fc1fb89ce602f4bc2bf15c99da71be91c04a233e81dcafb2795f1
126248
128700
  """Type checking stubs"""
126249
128701
  pass
126250
128702
 
128703
+ def _typecheckingstub__2aa88d11229e60744af7610169f28b3d5625cb154fd34b95efb791e8bfccfc63(
128704
+ scope: _constructs_77d1e7e8.Construct,
128705
+ id: builtins.str,
128706
+ *,
128707
+ local_address: builtins.str,
128708
+ local_gateway_virtual_interface_group_id: builtins.str,
128709
+ outpost_lag_id: builtins.str,
128710
+ peer_address: builtins.str,
128711
+ vlan: jsii.Number,
128712
+ peer_bgp_asn: typing.Optional[jsii.Number] = None,
128713
+ peer_bgp_asn_extended: typing.Optional[jsii.Number] = None,
128714
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
128715
+ ) -> None:
128716
+ """Type checking stubs"""
128717
+ pass
128718
+
128719
+ def _typecheckingstub__7e3e16f72affac0d04131f323309fd5617e7cabcdedcd19ac8ade915c112fa06(
128720
+ scope: _constructs_77d1e7e8.Construct,
128721
+ id: builtins.str,
128722
+ local_gateway_virtual_interface_id: builtins.str,
128723
+ ) -> None:
128724
+ """Type checking stubs"""
128725
+ pass
128726
+
128727
+ def _typecheckingstub__94977590a9f1d2767ea0830e9b759c542b741cd7dac530ebefe8f70c31670444(
128728
+ inspector: _TreeInspector_488e0dd5,
128729
+ ) -> None:
128730
+ """Type checking stubs"""
128731
+ pass
128732
+
128733
+ def _typecheckingstub__095a3726e61c66bed12ad64205be51561583ad09436d79a570b9239072336539(
128734
+ props: typing.Mapping[builtins.str, typing.Any],
128735
+ ) -> None:
128736
+ """Type checking stubs"""
128737
+ pass
128738
+
128739
+ def _typecheckingstub__aea0d3e37c3a8dd56ec78450277d740b869a461b084be05fe5b483cc3069cf1d(
128740
+ value: builtins.str,
128741
+ ) -> None:
128742
+ """Type checking stubs"""
128743
+ pass
128744
+
128745
+ def _typecheckingstub__6022f5909fe462f9f3785e9d5d0bfec37b4fbdc32098ff0ed5b117e2095af317(
128746
+ value: builtins.str,
128747
+ ) -> None:
128748
+ """Type checking stubs"""
128749
+ pass
128750
+
128751
+ def _typecheckingstub__d9e0940225d24f5768baac171eb4d7a02583d63a1dbff31fafd812a6612cf377(
128752
+ value: builtins.str,
128753
+ ) -> None:
128754
+ """Type checking stubs"""
128755
+ pass
128756
+
128757
+ def _typecheckingstub__c55a99d7a9d8ce108f6383103a39169fa8ff7dbefa5fa9da14d3fdc18b33f56d(
128758
+ value: builtins.str,
128759
+ ) -> None:
128760
+ """Type checking stubs"""
128761
+ pass
128762
+
128763
+ def _typecheckingstub__876a548873295da57ca1d79ac22c64da6f6bb90a671ef5e7e35327fa50455921(
128764
+ value: jsii.Number,
128765
+ ) -> None:
128766
+ """Type checking stubs"""
128767
+ pass
128768
+
128769
+ def _typecheckingstub__0c59092a20afba0573e2b1509528b6946b674912bc181e34599b6b4caf2d6fc6(
128770
+ value: typing.Optional[jsii.Number],
128771
+ ) -> None:
128772
+ """Type checking stubs"""
128773
+ pass
128774
+
128775
+ def _typecheckingstub__f3cce6d05d44bd0efd48f94e34176bb44563507d53cdce3a678259de4fe36b18(
128776
+ value: typing.Optional[jsii.Number],
128777
+ ) -> None:
128778
+ """Type checking stubs"""
128779
+ pass
128780
+
128781
+ def _typecheckingstub__eb087b9b572ca18afe9a40645f05ba591d2e3255ff50d614f2090fe641563ff1(
128782
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
128783
+ ) -> None:
128784
+ """Type checking stubs"""
128785
+ pass
128786
+
128787
+ def _typecheckingstub__f4428e70a4cdbb5cb8cdf0b9a30ee1c62e12bf1982546a8f6fceda85eb1710d8(
128788
+ scope: _constructs_77d1e7e8.Construct,
128789
+ id: builtins.str,
128790
+ *,
128791
+ local_gateway_id: builtins.str,
128792
+ local_bgp_asn: typing.Optional[jsii.Number] = None,
128793
+ local_bgp_asn_extended: typing.Optional[jsii.Number] = None,
128794
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
128795
+ ) -> None:
128796
+ """Type checking stubs"""
128797
+ pass
128798
+
128799
+ def _typecheckingstub__d5a9b6710adb36dfbe12ad180d73bda56451914c2f050b2f3087ad3bcbc2d6fa(
128800
+ scope: _constructs_77d1e7e8.Construct,
128801
+ id: builtins.str,
128802
+ arn: builtins.str,
128803
+ ) -> None:
128804
+ """Type checking stubs"""
128805
+ pass
128806
+
128807
+ def _typecheckingstub__6c41061042437440fce590eb8d2e84ca2e31260fbb48f45a79f28c068eb57cf4(
128808
+ scope: _constructs_77d1e7e8.Construct,
128809
+ id: builtins.str,
128810
+ local_gateway_virtual_interface_group_id: builtins.str,
128811
+ ) -> None:
128812
+ """Type checking stubs"""
128813
+ pass
128814
+
128815
+ def _typecheckingstub__2cb275542481a92dcc0981a31e5b84f30303479387a077892f0ce93929c8683e(
128816
+ inspector: _TreeInspector_488e0dd5,
128817
+ ) -> None:
128818
+ """Type checking stubs"""
128819
+ pass
128820
+
128821
+ def _typecheckingstub__18212f2fc4e751f496b0f978560864ecefabe558ebf8ffcccfafbd83fcc076f9(
128822
+ props: typing.Mapping[builtins.str, typing.Any],
128823
+ ) -> None:
128824
+ """Type checking stubs"""
128825
+ pass
128826
+
128827
+ def _typecheckingstub__72980886c0b232d5cbf6c82b702ca8e8bad15827fe4b8c5a6125cccfd17a038f(
128828
+ value: builtins.str,
128829
+ ) -> None:
128830
+ """Type checking stubs"""
128831
+ pass
128832
+
128833
+ def _typecheckingstub__e17efd4cdc854aef38d95618d445b062d3dff94405b26cd2e5bf702d043d63c5(
128834
+ value: typing.Optional[jsii.Number],
128835
+ ) -> None:
128836
+ """Type checking stubs"""
128837
+ pass
128838
+
128839
+ def _typecheckingstub__451e90a51f0d03f4296d1a4075273832941693edd09aeac29656d7364ee7c634(
128840
+ value: typing.Optional[jsii.Number],
128841
+ ) -> None:
128842
+ """Type checking stubs"""
128843
+ pass
128844
+
128845
+ def _typecheckingstub__c5e51302d318cef13096e5600090018d23258317ba4cb12507e944c98443851e(
128846
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
128847
+ ) -> None:
128848
+ """Type checking stubs"""
128849
+ pass
128850
+
126251
128851
  def _typecheckingstub__4d23f1a46df0174ce142c0ff05ac9cb901ecac30141c8b466b44569b409414aa(
126252
128852
  scope: _constructs_77d1e7e8.Construct,
126253
128853
  id: builtins.str,