aws-cdk-lib 2.218.0__py3-none-any.whl → 2.220.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 (65) hide show
  1. aws_cdk/__init__.py +31 -36
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.218.0.jsii.tgz → aws-cdk-lib@2.220.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_applicationsignals/__init__.py +450 -2
  7. aws_cdk/aws_arcregionswitch/__init__.py +8 -0
  8. aws_cdk/aws_backup/__init__.py +29 -0
  9. aws_cdk/aws_batch/__init__.py +109 -7
  10. aws_cdk/aws_bcmdataexports/__init__.py +9 -0
  11. aws_cdk/aws_bedrock/__init__.py +384 -1
  12. aws_cdk/aws_bedrockagentcore/__init__.py +7862 -1568
  13. aws_cdk/aws_cloudfront/experimental/__init__.py +4 -0
  14. aws_cdk/aws_cloudfront_origins/__init__.py +87 -6
  15. aws_cdk/aws_cloudwatch/__init__.py +5 -5
  16. aws_cdk/aws_codebuild/__init__.py +339 -62
  17. aws_cdk/aws_cognito/__init__.py +6 -4
  18. aws_cdk/aws_connect/__init__.py +9 -9
  19. aws_cdk/aws_cur/__init__.py +5 -3
  20. aws_cdk/aws_datasync/__init__.py +44 -22
  21. aws_cdk/aws_datazone/__init__.py +35 -33
  22. aws_cdk/aws_dax/__init__.py +12 -3
  23. aws_cdk/aws_dms/__init__.py +3 -5
  24. aws_cdk/aws_ec2/__init__.py +2721 -30
  25. aws_cdk/aws_ecs/__init__.py +2900 -90
  26. aws_cdk/aws_eks/__init__.py +114 -9
  27. aws_cdk/aws_entityresolution/__init__.py +18 -0
  28. aws_cdk/aws_fsx/__init__.py +4 -4
  29. aws_cdk/aws_greengrassv2/__init__.py +29 -0
  30. aws_cdk/aws_imagebuilder/__init__.py +397 -0
  31. aws_cdk/aws_iotsitewise/__init__.py +136 -80
  32. aws_cdk/aws_kinesis/__init__.py +95 -4
  33. aws_cdk/aws_lambda/__init__.py +43 -0
  34. aws_cdk/aws_lightsail/__init__.py +584 -0
  35. aws_cdk/aws_logs/__init__.py +57 -0
  36. aws_cdk/aws_lookoutmetrics/__init__.py +14 -2
  37. aws_cdk/aws_m2/__init__.py +59 -13
  38. aws_cdk/aws_medialive/__init__.py +108 -0
  39. aws_cdk/aws_msk/__init__.py +4 -2
  40. aws_cdk/aws_mwaa/__init__.py +5 -5
  41. aws_cdk/aws_neptune/__init__.py +133 -70
  42. aws_cdk/aws_networkfirewall/__init__.py +6 -2
  43. aws_cdk/aws_networkmanager/__init__.py +29 -0
  44. aws_cdk/aws_observabilityadmin/__init__.py +1227 -83
  45. aws_cdk/aws_omics/__init__.py +7 -1
  46. aws_cdk/aws_opensearchservice/__init__.py +64 -0
  47. aws_cdk/aws_opsworkscm/__init__.py +0 -29
  48. aws_cdk/aws_pcs/__init__.py +224 -33
  49. aws_cdk/aws_pinpoint/__init__.py +58 -0
  50. aws_cdk/aws_quicksight/__init__.py +118 -0
  51. aws_cdk/aws_rds/__init__.py +62 -37
  52. aws_cdk/aws_refactorspaces/__init__.py +18 -6
  53. aws_cdk/aws_route53/__init__.py +138 -8
  54. aws_cdk/aws_s3/__init__.py +29 -2
  55. aws_cdk/aws_s3objectlambda/__init__.py +44 -12
  56. aws_cdk/aws_servicecatalog/__init__.py +103 -106
  57. aws_cdk/aws_smsvoice/__init__.py +319 -0
  58. aws_cdk/aws_ssmquicksetup/__init__.py +3 -3
  59. aws_cdk/aws_synthetics/__init__.py +21 -1
  60. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.220.0.dist-info}/METADATA +2 -2
  61. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.220.0.dist-info}/RECORD +65 -65
  62. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.220.0.dist-info}/LICENSE +0 -0
  63. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.220.0.dist-info}/NOTICE +0 -0
  64. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.220.0.dist-info}/WHEEL +0 -0
  65. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.220.0.dist-info}/top_level.txt +0 -0
@@ -1422,6 +1422,21 @@ endpoint = vpc.add_client_vpn_endpoint("Endpoint",
1422
1422
  )
1423
1423
  ```
1424
1424
 
1425
+ To control whether clients are automatically disconnected when the maximum session duration is reached, use the `disconnectOnSessionTimeout` prop.
1426
+ By default (`true`), clients are disconnected and must manually reconnect.
1427
+ Set to `false` to allow automatic reconnection attempts:
1428
+
1429
+ ```python
1430
+ endpoint = vpc.add_client_vpn_endpoint("Endpoint",
1431
+ cidr="10.100.0.0/16",
1432
+ server_certificate_arn="arn:aws:acm:us-east-1:123456789012:certificate/server-certificate-id",
1433
+ client_certificate_arn="arn:aws:acm:us-east-1:123456789012:certificate/client-certificate-id",
1434
+ disconnect_on_session_timeout=False
1435
+ )
1436
+ ```
1437
+
1438
+ Detail information about maximum VPN session duration timeout can be found in the [AWS documentation](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-max-duration.html).
1439
+
1425
1440
  ## Instances
1426
1441
 
1427
1442
  You can use the `Instance` class to start up a single EC2 instance. For production setups, we recommend
@@ -2903,6 +2918,225 @@ from ..aws_s3_assets import (
2903
2918
  from ..aws_ssm import IStringParameter as _IStringParameter_f2b707f9
2904
2919
 
2905
2920
 
2921
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.AcceleratorManufacturer")
2922
+ class AcceleratorManufacturer(enum.Enum):
2923
+ '''Supported hardware accelerator manufacturers.
2924
+
2925
+ Restricts instance selection to accelerators from a particular vendor.
2926
+ Useful for choosing specific ecosystems (e.g., NVIDIA CUDA, AWS chips).
2927
+
2928
+ :exampleMetadata: infused
2929
+
2930
+ Example::
2931
+
2932
+ # vpc: ec2.Vpc
2933
+ # infrastructure_role: iam.Role
2934
+ # instance_profile: iam.InstanceProfile
2935
+
2936
+
2937
+ cluster = ecs.Cluster(self, "Cluster", vpc=vpc)
2938
+
2939
+ # Create a Managed Instances Capacity Provider
2940
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
2941
+ infrastructure_role=infrastructure_role,
2942
+ ec2_instance_profile=instance_profile,
2943
+ subnets=vpc.private_subnets,
2944
+ security_groups=[ec2.SecurityGroup(self, "MISecurityGroup", vpc=vpc)],
2945
+ instance_requirements=ec2.InstanceRequirementsConfig(
2946
+ v_cpu_count_min=1,
2947
+ memory_min=Size.gibibytes(2),
2948
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL],
2949
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA]
2950
+ ),
2951
+ propagate_tags=ecs.PropagateManagedInstancesTags.CAPACITY_PROVIDER
2952
+ )
2953
+
2954
+ # Add the capacity provider to the cluster
2955
+ cluster.add_managed_instances_capacity_provider(mi_capacity_provider)
2956
+
2957
+ task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
2958
+
2959
+ task_definition.add_container("web",
2960
+ image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
2961
+ memory_reservation_mi_b=256
2962
+ )
2963
+
2964
+ ecs.Ec2Service(self, "EC2Service",
2965
+ cluster=cluster,
2966
+ task_definition=task_definition,
2967
+ min_healthy_percent=100,
2968
+ capacity_provider_strategies=[ecs.CapacityProviderStrategy(
2969
+ capacity_provider=mi_capacity_provider.capacity_provider_name,
2970
+ weight=1
2971
+ )
2972
+ ]
2973
+ )
2974
+ '''
2975
+
2976
+ AWS = "AWS"
2977
+ '''Amazon Web Services (e.g., Inferentia, Trainium accelerators).'''
2978
+ AMD = "AMD"
2979
+ '''AMD (e.g., Radeon Pro V520 GPU).'''
2980
+ NVIDIA = "NVIDIA"
2981
+ '''NVIDIA (e.g., A100, V100, T4, K80, M60 GPUs).'''
2982
+ XILINX = "XILINX"
2983
+ '''Xilinx (e.g., VU9P FPGA).'''
2984
+
2985
+
2986
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.AcceleratorName")
2987
+ class AcceleratorName(enum.Enum):
2988
+ '''Specific hardware accelerator models supported by EC2.
2989
+
2990
+ Defines exact accelerator models that can be required or excluded
2991
+ when selecting instance types.
2992
+
2993
+ :exampleMetadata: infused
2994
+
2995
+ Example::
2996
+
2997
+ # infrastructure_role: iam.Role
2998
+ # instance_profile: iam.InstanceProfile
2999
+ # vpc: ec2.Vpc
3000
+
3001
+
3002
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
3003
+ infrastructure_role=infrastructure_role,
3004
+ ec2_instance_profile=instance_profile,
3005
+ subnets=vpc.private_subnets,
3006
+ instance_requirements=ec2.InstanceRequirementsConfig(
3007
+ # Required: CPU and memory constraints
3008
+ v_cpu_count_min=2,
3009
+ v_cpu_count_max=8,
3010
+ memory_min=Size.gibibytes(4),
3011
+ memory_max=Size.gibibytes(32),
3012
+
3013
+ # CPU preferences
3014
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
3015
+ instance_generations=[ec2.InstanceGeneration.CURRENT],
3016
+
3017
+ # Instance type filtering
3018
+ allowed_instance_types=["m5.*", "c5.*"],
3019
+
3020
+ # Performance characteristics
3021
+ burstable_performance=ec2.BurstablePerformance.EXCLUDED,
3022
+ bare_metal=ec2.BareMetal.EXCLUDED,
3023
+
3024
+ # Accelerator requirements (for ML/AI workloads)
3025
+ accelerator_types=[ec2.AcceleratorType.GPU],
3026
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
3027
+ accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
3028
+ accelerator_count_min=1,
3029
+
3030
+ # Storage requirements
3031
+ local_storage=ec2.LocalStorage.REQUIRED,
3032
+ local_storage_types=[ec2.LocalStorageType.SSD],
3033
+ total_local_storage_gBMin=100,
3034
+
3035
+ # Network requirements
3036
+ network_interface_count_min=2,
3037
+ network_bandwidth_gbps_min=10,
3038
+
3039
+ # Cost optimization
3040
+ on_demand_max_price_percentage_over_lowest_price=10
3041
+ )
3042
+ )
3043
+ '''
3044
+
3045
+ A100 = "A100"
3046
+ '''NVIDIA A100 GPU.'''
3047
+ K80 = "K80"
3048
+ '''NVIDIA K80 GPU.'''
3049
+ M60 = "M60"
3050
+ '''NVIDIA M60 GPU.'''
3051
+ RADEON_PRO_V520 = "RADEON_PRO_V520"
3052
+ '''AMD Radeon Pro V520 GPU.'''
3053
+ T4 = "T4"
3054
+ '''NVIDIA T4 GPU.'''
3055
+ V100 = "V100"
3056
+ '''NVIDIA V100 GPU.'''
3057
+ VU9P = "VU9P"
3058
+ '''Xilinx VU9P FPGA.'''
3059
+
3060
+
3061
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.AcceleratorType")
3062
+ class AcceleratorType(enum.Enum):
3063
+ '''Hardware accelerator categories available for EC2 instances.
3064
+
3065
+ Defines the general type of hardware accelerator that can be attached
3066
+ to an instance, typically used in instance requirement specifications
3067
+ (e.g., GPUs for compute-intensive tasks, FPGAs for custom logic, or
3068
+ inference chips for ML workloads).
3069
+
3070
+ :exampleMetadata: infused
3071
+
3072
+ Example::
3073
+
3074
+ # infrastructure_role: iam.Role
3075
+ # instance_profile: iam.InstanceProfile
3076
+ # vpc: ec2.Vpc
3077
+
3078
+
3079
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
3080
+ infrastructure_role=infrastructure_role,
3081
+ ec2_instance_profile=instance_profile,
3082
+ subnets=vpc.private_subnets,
3083
+ instance_requirements=ec2.InstanceRequirementsConfig(
3084
+ # Required: CPU and memory constraints
3085
+ v_cpu_count_min=2,
3086
+ v_cpu_count_max=8,
3087
+ memory_min=Size.gibibytes(4),
3088
+ memory_max=Size.gibibytes(32),
3089
+
3090
+ # CPU preferences
3091
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
3092
+ instance_generations=[ec2.InstanceGeneration.CURRENT],
3093
+
3094
+ # Instance type filtering
3095
+ allowed_instance_types=["m5.*", "c5.*"],
3096
+
3097
+ # Performance characteristics
3098
+ burstable_performance=ec2.BurstablePerformance.EXCLUDED,
3099
+ bare_metal=ec2.BareMetal.EXCLUDED,
3100
+
3101
+ # Accelerator requirements (for ML/AI workloads)
3102
+ accelerator_types=[ec2.AcceleratorType.GPU],
3103
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
3104
+ accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
3105
+ accelerator_count_min=1,
3106
+
3107
+ # Storage requirements
3108
+ local_storage=ec2.LocalStorage.REQUIRED,
3109
+ local_storage_types=[ec2.LocalStorageType.SSD],
3110
+ total_local_storage_gBMin=100,
3111
+
3112
+ # Network requirements
3113
+ network_interface_count_min=2,
3114
+ network_bandwidth_gbps_min=10,
3115
+
3116
+ # Cost optimization
3117
+ on_demand_max_price_percentage_over_lowest_price=10
3118
+ )
3119
+ )
3120
+ '''
3121
+
3122
+ GPU = "GPU"
3123
+ '''Graphics Processing Unit accelerators, such as NVIDIA GPUs.
3124
+
3125
+ Commonly used for machine learning training, graphics rendering,
3126
+ or high-performance parallel computing.
3127
+ '''
3128
+ FPGA = "FPGA"
3129
+ '''Field Programmable Gate Array accelerators, such as Xilinx FPGAs.
3130
+
3131
+ Used for hardware-level customization and specialized workloads.
3132
+ '''
3133
+ INFERENCE = "INFERENCE"
3134
+ '''Inference accelerators, such as AWS Inferentia.
3135
+
3136
+ Purpose-built for efficient machine learning inference.
3137
+ '''
3138
+
3139
+
2906
3140
  class AclCidr(
2907
3141
  metaclass=jsii.JSIIAbstractClass,
2908
3142
  jsii_type="aws-cdk-lib.aws_ec2.AclCidr",
@@ -5368,6 +5602,80 @@ class AwsIpamProps:
5368
5602
  )
5369
5603
 
5370
5604
 
5605
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.BareMetal")
5606
+ class BareMetal(enum.Enum):
5607
+ '''Bare metal support requirements for EC2 instances.
5608
+
5609
+ Controls whether selected instance types must, may, or must not
5610
+ be bare metal variants (i.e., instances that run directly on
5611
+ physical hardware without a hypervisor).
5612
+
5613
+ :exampleMetadata: infused
5614
+
5615
+ Example::
5616
+
5617
+ # infrastructure_role: iam.Role
5618
+ # instance_profile: iam.InstanceProfile
5619
+ # vpc: ec2.Vpc
5620
+
5621
+
5622
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
5623
+ infrastructure_role=infrastructure_role,
5624
+ ec2_instance_profile=instance_profile,
5625
+ subnets=vpc.private_subnets,
5626
+ instance_requirements=ec2.InstanceRequirementsConfig(
5627
+ # Required: CPU and memory constraints
5628
+ v_cpu_count_min=2,
5629
+ v_cpu_count_max=8,
5630
+ memory_min=Size.gibibytes(4),
5631
+ memory_max=Size.gibibytes(32),
5632
+
5633
+ # CPU preferences
5634
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
5635
+ instance_generations=[ec2.InstanceGeneration.CURRENT],
5636
+
5637
+ # Instance type filtering
5638
+ allowed_instance_types=["m5.*", "c5.*"],
5639
+
5640
+ # Performance characteristics
5641
+ burstable_performance=ec2.BurstablePerformance.EXCLUDED,
5642
+ bare_metal=ec2.BareMetal.EXCLUDED,
5643
+
5644
+ # Accelerator requirements (for ML/AI workloads)
5645
+ accelerator_types=[ec2.AcceleratorType.GPU],
5646
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
5647
+ accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
5648
+ accelerator_count_min=1,
5649
+
5650
+ # Storage requirements
5651
+ local_storage=ec2.LocalStorage.REQUIRED,
5652
+ local_storage_types=[ec2.LocalStorageType.SSD],
5653
+ total_local_storage_gBMin=100,
5654
+
5655
+ # Network requirements
5656
+ network_interface_count_min=2,
5657
+ network_bandwidth_gbps_min=10,
5658
+
5659
+ # Cost optimization
5660
+ on_demand_max_price_percentage_over_lowest_price=10
5661
+ )
5662
+ )
5663
+ '''
5664
+
5665
+ INCLUDED = "INCLUDED"
5666
+ '''Bare metal instance types are allowed, but non-bare-metal (virtualized) types may also be selected.'''
5667
+ REQUIRED = "REQUIRED"
5668
+ '''Only bare metal instance types are allowed.
5669
+
5670
+ Non-bare-metal types will be excluded from selection.
5671
+ '''
5672
+ EXCLUDED = "EXCLUDED"
5673
+ '''Bare metal instance types are disallowed.
5674
+
5675
+ Only non-bare-metal types may be selected.
5676
+ '''
5677
+
5678
+
5371
5679
  @jsii.data_type(
5372
5680
  jsii_type="aws-cdk-lib.aws_ec2.BastionHostLinuxProps",
5373
5681
  jsii_struct_bases=[],
@@ -5866,6 +6174,79 @@ class BlockDeviceVolume(
5866
6174
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "virtualName"))
5867
6175
 
5868
6176
 
6177
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.BurstablePerformance")
6178
+ class BurstablePerformance(enum.Enum):
6179
+ '''Burstable CPU performance requirements for EC2 instances.
6180
+
6181
+ Controls whether selected instance types must, may, or must not
6182
+ support burstable vCPU performance (e.g., T3, T4g families).
6183
+
6184
+ :exampleMetadata: infused
6185
+
6186
+ Example::
6187
+
6188
+ # infrastructure_role: iam.Role
6189
+ # instance_profile: iam.InstanceProfile
6190
+ # vpc: ec2.Vpc
6191
+
6192
+
6193
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
6194
+ infrastructure_role=infrastructure_role,
6195
+ ec2_instance_profile=instance_profile,
6196
+ subnets=vpc.private_subnets,
6197
+ instance_requirements=ec2.InstanceRequirementsConfig(
6198
+ # Required: CPU and memory constraints
6199
+ v_cpu_count_min=2,
6200
+ v_cpu_count_max=8,
6201
+ memory_min=Size.gibibytes(4),
6202
+ memory_max=Size.gibibytes(32),
6203
+
6204
+ # CPU preferences
6205
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
6206
+ instance_generations=[ec2.InstanceGeneration.CURRENT],
6207
+
6208
+ # Instance type filtering
6209
+ allowed_instance_types=["m5.*", "c5.*"],
6210
+
6211
+ # Performance characteristics
6212
+ burstable_performance=ec2.BurstablePerformance.EXCLUDED,
6213
+ bare_metal=ec2.BareMetal.EXCLUDED,
6214
+
6215
+ # Accelerator requirements (for ML/AI workloads)
6216
+ accelerator_types=[ec2.AcceleratorType.GPU],
6217
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
6218
+ accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
6219
+ accelerator_count_min=1,
6220
+
6221
+ # Storage requirements
6222
+ local_storage=ec2.LocalStorage.REQUIRED,
6223
+ local_storage_types=[ec2.LocalStorageType.SSD],
6224
+ total_local_storage_gBMin=100,
6225
+
6226
+ # Network requirements
6227
+ network_interface_count_min=2,
6228
+ network_bandwidth_gbps_min=10,
6229
+
6230
+ # Cost optimization
6231
+ on_demand_max_price_percentage_over_lowest_price=10
6232
+ )
6233
+ )
6234
+ '''
6235
+
6236
+ INCLUDED = "INCLUDED"
6237
+ '''Burstable-performance instance types are allowed, but non-burstable types may also be selected.'''
6238
+ REQUIRED = "REQUIRED"
6239
+ '''Only burstable-performance instance types are allowed.
6240
+
6241
+ Non-burstable types will be excluded from selection.
6242
+ '''
6243
+ EXCLUDED = "EXCLUDED"
6244
+ '''Burstable-performance instance types are disallowed.
6245
+
6246
+ Only non-burstable types may be selected.
6247
+ '''
6248
+
6249
+
5869
6250
  @jsii.data_type(
5870
6251
  jsii_type="aws-cdk-lib.aws_ec2.CapacityReservationFleetReference",
5871
6252
  jsii_struct_bases=[],
@@ -12174,6 +12555,294 @@ class CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationProps:
12174
12555
  )
12175
12556
 
12176
12557
 
12558
+ @jsii.data_type(
12559
+ jsii_type="aws-cdk-lib.aws_ec2.CfnLocalGatewayVirtualInterfaceGroupProps",
12560
+ jsii_struct_bases=[],
12561
+ name_mapping={
12562
+ "local_gateway_id": "localGatewayId",
12563
+ "local_bgp_asn": "localBgpAsn",
12564
+ "local_bgp_asn_extended": "localBgpAsnExtended",
12565
+ "tags": "tags",
12566
+ },
12567
+ )
12568
+ class CfnLocalGatewayVirtualInterfaceGroupProps:
12569
+ def __init__(
12570
+ self,
12571
+ *,
12572
+ local_gateway_id: builtins.str,
12573
+ local_bgp_asn: typing.Optional[jsii.Number] = None,
12574
+ local_bgp_asn_extended: typing.Optional[jsii.Number] = None,
12575
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
12576
+ ) -> None:
12577
+ '''Properties for defining a ``CfnLocalGatewayVirtualInterfaceGroup``.
12578
+
12579
+ :param local_gateway_id: The ID of the local gateway.
12580
+ :param local_bgp_asn: The Autonomous System Number(ASN) for the local Border Gateway Protocol (BGP).
12581
+ :param local_bgp_asn_extended: The extended 32-bit ASN for the local BGP configuration.
12582
+ :param tags: The tags assigned to the virtual interface group.
12583
+
12584
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html
12585
+ :exampleMetadata: fixture=_generated
12586
+
12587
+ Example::
12588
+
12589
+ # The code below shows an example of how to instantiate this type.
12590
+ # The values are placeholders you should change.
12591
+ from aws_cdk import aws_ec2 as ec2
12592
+
12593
+ cfn_local_gateway_virtual_interface_group_props = ec2.CfnLocalGatewayVirtualInterfaceGroupProps(
12594
+ local_gateway_id="localGatewayId",
12595
+
12596
+ # the properties below are optional
12597
+ local_bgp_asn=123,
12598
+ local_bgp_asn_extended=123,
12599
+ tags=[CfnTag(
12600
+ key="key",
12601
+ value="value"
12602
+ )]
12603
+ )
12604
+ '''
12605
+ if __debug__:
12606
+ type_hints = typing.get_type_hints(_typecheckingstub__f7ce4c591b68ccf10989a9f20fd3c6f1fc55f0f986e5272574d1a8263ccb9638)
12607
+ check_type(argname="argument local_gateway_id", value=local_gateway_id, expected_type=type_hints["local_gateway_id"])
12608
+ check_type(argname="argument local_bgp_asn", value=local_bgp_asn, expected_type=type_hints["local_bgp_asn"])
12609
+ check_type(argname="argument local_bgp_asn_extended", value=local_bgp_asn_extended, expected_type=type_hints["local_bgp_asn_extended"])
12610
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
12611
+ self._values: typing.Dict[builtins.str, typing.Any] = {
12612
+ "local_gateway_id": local_gateway_id,
12613
+ }
12614
+ if local_bgp_asn is not None:
12615
+ self._values["local_bgp_asn"] = local_bgp_asn
12616
+ if local_bgp_asn_extended is not None:
12617
+ self._values["local_bgp_asn_extended"] = local_bgp_asn_extended
12618
+ if tags is not None:
12619
+ self._values["tags"] = tags
12620
+
12621
+ @builtins.property
12622
+ def local_gateway_id(self) -> builtins.str:
12623
+ '''The ID of the local gateway.
12624
+
12625
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html#cfn-ec2-localgatewayvirtualinterfacegroup-localgatewayid
12626
+ '''
12627
+ result = self._values.get("local_gateway_id")
12628
+ assert result is not None, "Required property 'local_gateway_id' is missing"
12629
+ return typing.cast(builtins.str, result)
12630
+
12631
+ @builtins.property
12632
+ def local_bgp_asn(self) -> typing.Optional[jsii.Number]:
12633
+ '''The Autonomous System Number(ASN) for the local Border Gateway Protocol (BGP).
12634
+
12635
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html#cfn-ec2-localgatewayvirtualinterfacegroup-localbgpasn
12636
+ '''
12637
+ result = self._values.get("local_bgp_asn")
12638
+ return typing.cast(typing.Optional[jsii.Number], result)
12639
+
12640
+ @builtins.property
12641
+ def local_bgp_asn_extended(self) -> typing.Optional[jsii.Number]:
12642
+ '''The extended 32-bit ASN for the local BGP configuration.
12643
+
12644
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html#cfn-ec2-localgatewayvirtualinterfacegroup-localbgpasnextended
12645
+ '''
12646
+ result = self._values.get("local_bgp_asn_extended")
12647
+ return typing.cast(typing.Optional[jsii.Number], result)
12648
+
12649
+ @builtins.property
12650
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
12651
+ '''The tags assigned to the virtual interface group.
12652
+
12653
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html#cfn-ec2-localgatewayvirtualinterfacegroup-tags
12654
+ '''
12655
+ result = self._values.get("tags")
12656
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
12657
+
12658
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
12659
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12660
+
12661
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12662
+ return not (rhs == self)
12663
+
12664
+ def __repr__(self) -> str:
12665
+ return "CfnLocalGatewayVirtualInterfaceGroupProps(%s)" % ", ".join(
12666
+ k + "=" + repr(v) for k, v in self._values.items()
12667
+ )
12668
+
12669
+
12670
+ @jsii.data_type(
12671
+ jsii_type="aws-cdk-lib.aws_ec2.CfnLocalGatewayVirtualInterfaceProps",
12672
+ jsii_struct_bases=[],
12673
+ name_mapping={
12674
+ "local_address": "localAddress",
12675
+ "local_gateway_virtual_interface_group_id": "localGatewayVirtualInterfaceGroupId",
12676
+ "outpost_lag_id": "outpostLagId",
12677
+ "peer_address": "peerAddress",
12678
+ "vlan": "vlan",
12679
+ "peer_bgp_asn": "peerBgpAsn",
12680
+ "peer_bgp_asn_extended": "peerBgpAsnExtended",
12681
+ "tags": "tags",
12682
+ },
12683
+ )
12684
+ class CfnLocalGatewayVirtualInterfaceProps:
12685
+ def __init__(
12686
+ self,
12687
+ *,
12688
+ local_address: builtins.str,
12689
+ local_gateway_virtual_interface_group_id: builtins.str,
12690
+ outpost_lag_id: builtins.str,
12691
+ peer_address: builtins.str,
12692
+ vlan: jsii.Number,
12693
+ peer_bgp_asn: typing.Optional[jsii.Number] = None,
12694
+ peer_bgp_asn_extended: typing.Optional[jsii.Number] = None,
12695
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
12696
+ ) -> None:
12697
+ '''Properties for defining a ``CfnLocalGatewayVirtualInterface``.
12698
+
12699
+ :param local_address: The local address.
12700
+ :param local_gateway_virtual_interface_group_id: The ID of the local gateway virtual interface group.
12701
+ :param outpost_lag_id: The Outpost LAG ID.
12702
+ :param peer_address: The peer address.
12703
+ :param vlan: The ID of the VLAN.
12704
+ :param peer_bgp_asn: The peer BGP ASN.
12705
+ :param peer_bgp_asn_extended: The extended 32-bit ASN of the BGP peer for use with larger ASN values.
12706
+ :param tags: The tags assigned to the virtual interface.
12707
+
12708
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html
12709
+ :exampleMetadata: fixture=_generated
12710
+
12711
+ Example::
12712
+
12713
+ # The code below shows an example of how to instantiate this type.
12714
+ # The values are placeholders you should change.
12715
+ from aws_cdk import aws_ec2 as ec2
12716
+
12717
+ cfn_local_gateway_virtual_interface_props = ec2.CfnLocalGatewayVirtualInterfaceProps(
12718
+ local_address="localAddress",
12719
+ local_gateway_virtual_interface_group_id="localGatewayVirtualInterfaceGroupId",
12720
+ outpost_lag_id="outpostLagId",
12721
+ peer_address="peerAddress",
12722
+ vlan=123,
12723
+
12724
+ # the properties below are optional
12725
+ peer_bgp_asn=123,
12726
+ peer_bgp_asn_extended=123,
12727
+ tags=[CfnTag(
12728
+ key="key",
12729
+ value="value"
12730
+ )]
12731
+ )
12732
+ '''
12733
+ if __debug__:
12734
+ type_hints = typing.get_type_hints(_typecheckingstub__f937f1e5478df1249afd18165f33effb63a12f7ed00b1831a2fbee04cab4c28a)
12735
+ check_type(argname="argument local_address", value=local_address, expected_type=type_hints["local_address"])
12736
+ 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"])
12737
+ check_type(argname="argument outpost_lag_id", value=outpost_lag_id, expected_type=type_hints["outpost_lag_id"])
12738
+ check_type(argname="argument peer_address", value=peer_address, expected_type=type_hints["peer_address"])
12739
+ check_type(argname="argument vlan", value=vlan, expected_type=type_hints["vlan"])
12740
+ check_type(argname="argument peer_bgp_asn", value=peer_bgp_asn, expected_type=type_hints["peer_bgp_asn"])
12741
+ check_type(argname="argument peer_bgp_asn_extended", value=peer_bgp_asn_extended, expected_type=type_hints["peer_bgp_asn_extended"])
12742
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
12743
+ self._values: typing.Dict[builtins.str, typing.Any] = {
12744
+ "local_address": local_address,
12745
+ "local_gateway_virtual_interface_group_id": local_gateway_virtual_interface_group_id,
12746
+ "outpost_lag_id": outpost_lag_id,
12747
+ "peer_address": peer_address,
12748
+ "vlan": vlan,
12749
+ }
12750
+ if peer_bgp_asn is not None:
12751
+ self._values["peer_bgp_asn"] = peer_bgp_asn
12752
+ if peer_bgp_asn_extended is not None:
12753
+ self._values["peer_bgp_asn_extended"] = peer_bgp_asn_extended
12754
+ if tags is not None:
12755
+ self._values["tags"] = tags
12756
+
12757
+ @builtins.property
12758
+ def local_address(self) -> builtins.str:
12759
+ '''The local address.
12760
+
12761
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-localaddress
12762
+ '''
12763
+ result = self._values.get("local_address")
12764
+ assert result is not None, "Required property 'local_address' is missing"
12765
+ return typing.cast(builtins.str, result)
12766
+
12767
+ @builtins.property
12768
+ def local_gateway_virtual_interface_group_id(self) -> builtins.str:
12769
+ '''The ID of the local gateway virtual interface group.
12770
+
12771
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-localgatewayvirtualinterfacegroupid
12772
+ '''
12773
+ result = self._values.get("local_gateway_virtual_interface_group_id")
12774
+ assert result is not None, "Required property 'local_gateway_virtual_interface_group_id' is missing"
12775
+ return typing.cast(builtins.str, result)
12776
+
12777
+ @builtins.property
12778
+ def outpost_lag_id(self) -> builtins.str:
12779
+ '''The Outpost LAG ID.
12780
+
12781
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-outpostlagid
12782
+ '''
12783
+ result = self._values.get("outpost_lag_id")
12784
+ assert result is not None, "Required property 'outpost_lag_id' is missing"
12785
+ return typing.cast(builtins.str, result)
12786
+
12787
+ @builtins.property
12788
+ def peer_address(self) -> builtins.str:
12789
+ '''The peer address.
12790
+
12791
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-peeraddress
12792
+ '''
12793
+ result = self._values.get("peer_address")
12794
+ assert result is not None, "Required property 'peer_address' is missing"
12795
+ return typing.cast(builtins.str, result)
12796
+
12797
+ @builtins.property
12798
+ def vlan(self) -> jsii.Number:
12799
+ '''The ID of the VLAN.
12800
+
12801
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-vlan
12802
+ '''
12803
+ result = self._values.get("vlan")
12804
+ assert result is not None, "Required property 'vlan' is missing"
12805
+ return typing.cast(jsii.Number, result)
12806
+
12807
+ @builtins.property
12808
+ def peer_bgp_asn(self) -> typing.Optional[jsii.Number]:
12809
+ '''The peer BGP ASN.
12810
+
12811
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-peerbgpasn
12812
+ '''
12813
+ result = self._values.get("peer_bgp_asn")
12814
+ return typing.cast(typing.Optional[jsii.Number], result)
12815
+
12816
+ @builtins.property
12817
+ def peer_bgp_asn_extended(self) -> typing.Optional[jsii.Number]:
12818
+ '''The extended 32-bit ASN of the BGP peer for use with larger ASN values.
12819
+
12820
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-peerbgpasnextended
12821
+ '''
12822
+ result = self._values.get("peer_bgp_asn_extended")
12823
+ return typing.cast(typing.Optional[jsii.Number], result)
12824
+
12825
+ @builtins.property
12826
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
12827
+ '''The tags assigned to the virtual interface.
12828
+
12829
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html#cfn-ec2-localgatewayvirtualinterface-tags
12830
+ '''
12831
+ result = self._values.get("tags")
12832
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
12833
+
12834
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
12835
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12836
+
12837
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12838
+ return not (rhs == self)
12839
+
12840
+ def __repr__(self) -> str:
12841
+ return "CfnLocalGatewayVirtualInterfaceProps(%s)" % ", ".join(
12842
+ k + "=" + repr(v) for k, v in self._values.items()
12843
+ )
12844
+
12845
+
12177
12846
  @jsii.data_type(
12178
12847
  jsii_type="aws-cdk-lib.aws_ec2.CfnNatGatewayProps",
12179
12848
  jsii_struct_bases=[],
@@ -19914,7 +20583,7 @@ class CfnVPCEndpointProps:
19914
20583
 
19915
20584
  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
20585
 
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":"*" }] }'``
20586
+ ``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
20587
 
19919
20588
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-policydocument
19920
20589
  '''
@@ -22426,11 +23095,11 @@ class CfnVolumeProps:
22426
23095
  :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
23096
  :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
23097
  :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.
23098
+ :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
23099
  :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
23100
  :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
23101
  :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
23102
+ :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
23103
  :param snapshot_id: The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.
22435
23104
  :param tags: The tags to apply to the volume during creation.
22436
23105
  :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 +23227,7 @@ class CfnVolumeProps:
22558
23227
 
22559
23228
  The following are the supported values for each volume type:
22560
23229
 
22561
- - ``gp3`` : 3,000 - 16,000 IOPS
23230
+ - ``gp3`` : 3,000 - 80,000 IOPS
22562
23231
  - ``io1`` : 100 - 64,000 IOPS
22563
23232
  - ``io2`` : 100 - 256,000 IOPS
22564
23233
 
@@ -22621,7 +23290,8 @@ class CfnVolumeProps:
22621
23290
 
22622
23291
  The following are the supported volumes sizes for each volume type:
22623
23292
 
22624
- - ``gp2`` and ``gp3`` : 1 - 16,384 GiB
23293
+ - ``gp2`` : 1 - 16,384 GiB
23294
+ - ``gp3`` : 1 - 65,536 GiB
22625
23295
  - ``io1`` : 4 - 16,384 GiB
22626
23296
  - ``io2`` : 4 - 65,536 GiB
22627
23297
  - ``st1`` and ``sc1`` : 125 - 16,384 GiB
@@ -23159,6 +23829,7 @@ class ClientVpnEndpointAttributes:
23159
23829
  "client_login_banner": "clientLoginBanner",
23160
23830
  "client_route_enforcement_options": "clientRouteEnforcementOptions",
23161
23831
  "description": "description",
23832
+ "disconnect_on_session_timeout": "disconnectOnSessionTimeout",
23162
23833
  "dns_servers": "dnsServers",
23163
23834
  "logging": "logging",
23164
23835
  "log_group": "logGroup",
@@ -23185,6 +23856,7 @@ class ClientVpnEndpointOptions:
23185
23856
  client_login_banner: typing.Optional[builtins.str] = None,
23186
23857
  client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
23187
23858
  description: typing.Optional[builtins.str] = None,
23859
+ disconnect_on_session_timeout: typing.Optional[builtins.bool] = None,
23188
23860
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
23189
23861
  logging: typing.Optional[builtins.bool] = None,
23190
23862
  log_group: typing.Optional[_ILogGroup_3c4fa718] = None,
@@ -23208,6 +23880,7 @@ class ClientVpnEndpointOptions:
23208
23880
  :param client_login_banner: Customizable text that will be displayed in a banner on AWS provided clients when a VPN session is established. UTF-8 encoded characters only. Maximum of 1400 characters. Default: - no banner is presented to the client
23209
23881
  :param client_route_enforcement_options: Options for Client Route Enforcement. Client Route Enforcement is a feature of Client VPN that helps enforce administrator defined routes on devices connected through the VPN. This feature helps improve your security posture by ensuring that network traffic originating from a connected client is not inadvertently sent outside the VPN tunnel. Default: undefined - AWS Client VPN default setting is disable client route enforcement
23210
23882
  :param description: A brief description of the Client VPN endpoint. Default: - no description
23883
+ :param disconnect_on_session_timeout: Indicates whether the client VPN session is disconnected after the maximum ``sessionTimeout`` is reached. If ``true``, users are prompted to reconnect client VPN. If ``false``, client VPN attempts to reconnect automatically. Default: undefined - AWS Client VPN default is true
23211
23884
  :param dns_servers: Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. Default: - use the DNS address configured on the device
23212
23885
  :param logging: Whether to enable connections logging. Default: true
23213
23886
  :param log_group: A CloudWatch Logs log group for connection logging. Default: - a new group is created
@@ -23225,16 +23898,13 @@ class ClientVpnEndpointOptions:
23225
23898
 
23226
23899
  Example::
23227
23900
 
23228
- endpoint = vpc.add_client_vpn_endpoint("Endpoint",
23901
+ vpc.add_client_vpn_endpoint("Endpoint",
23229
23902
  cidr="10.100.0.0/16",
23230
23903
  server_certificate_arn="arn:aws:acm:us-east-1:123456789012:certificate/server-certificate-id",
23231
- user_based_authentication=ec2.ClientVpnUserBasedAuthentication.federated(saml_provider),
23232
- authorize_all_users_to_vpc_cidr=False
23233
- )
23234
-
23235
- endpoint.add_authorization_rule("Rule",
23236
- cidr="10.0.10.0/32",
23237
- group_id="group-id"
23904
+ # Mutual authentication
23905
+ client_certificate_arn="arn:aws:acm:us-east-1:123456789012:certificate/client-certificate-id",
23906
+ # User-based authentication
23907
+ user_based_authentication=ec2.ClientVpnUserBasedAuthentication.federated(saml_provider)
23238
23908
  )
23239
23909
  '''
23240
23910
  if isinstance(client_route_enforcement_options, dict):
@@ -23251,6 +23921,7 @@ class ClientVpnEndpointOptions:
23251
23921
  check_type(argname="argument client_login_banner", value=client_login_banner, expected_type=type_hints["client_login_banner"])
23252
23922
  check_type(argname="argument client_route_enforcement_options", value=client_route_enforcement_options, expected_type=type_hints["client_route_enforcement_options"])
23253
23923
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
23924
+ check_type(argname="argument disconnect_on_session_timeout", value=disconnect_on_session_timeout, expected_type=type_hints["disconnect_on_session_timeout"])
23254
23925
  check_type(argname="argument dns_servers", value=dns_servers, expected_type=type_hints["dns_servers"])
23255
23926
  check_type(argname="argument logging", value=logging, expected_type=type_hints["logging"])
23256
23927
  check_type(argname="argument log_group", value=log_group, expected_type=type_hints["log_group"])
@@ -23279,6 +23950,8 @@ class ClientVpnEndpointOptions:
23279
23950
  self._values["client_route_enforcement_options"] = client_route_enforcement_options
23280
23951
  if description is not None:
23281
23952
  self._values["description"] = description
23953
+ if disconnect_on_session_timeout is not None:
23954
+ self._values["disconnect_on_session_timeout"] = disconnect_on_session_timeout
23282
23955
  if dns_servers is not None:
23283
23956
  self._values["dns_servers"] = dns_servers
23284
23957
  if logging is not None:
@@ -23399,6 +24072,20 @@ class ClientVpnEndpointOptions:
23399
24072
  result = self._values.get("description")
23400
24073
  return typing.cast(typing.Optional[builtins.str], result)
23401
24074
 
24075
+ @builtins.property
24076
+ def disconnect_on_session_timeout(self) -> typing.Optional[builtins.bool]:
24077
+ '''Indicates whether the client VPN session is disconnected after the maximum ``sessionTimeout`` is reached.
24078
+
24079
+ If ``true``, users are prompted to reconnect client VPN.
24080
+ If ``false``, client VPN attempts to reconnect automatically.
24081
+
24082
+ :default: undefined - AWS Client VPN default is true
24083
+
24084
+ :see: https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-max-duration.html
24085
+ '''
24086
+ result = self._values.get("disconnect_on_session_timeout")
24087
+ return typing.cast(typing.Optional[builtins.bool], result)
24088
+
23402
24089
  @builtins.property
23403
24090
  def dns_servers(self) -> typing.Optional[typing.List[builtins.str]]:
23404
24091
  '''Information about the DNS servers to be used for DNS resolution.
@@ -23539,6 +24226,7 @@ class ClientVpnEndpointOptions:
23539
24226
  "client_login_banner": "clientLoginBanner",
23540
24227
  "client_route_enforcement_options": "clientRouteEnforcementOptions",
23541
24228
  "description": "description",
24229
+ "disconnect_on_session_timeout": "disconnectOnSessionTimeout",
23542
24230
  "dns_servers": "dnsServers",
23543
24231
  "logging": "logging",
23544
24232
  "log_group": "logGroup",
@@ -23566,6 +24254,7 @@ class ClientVpnEndpointProps(ClientVpnEndpointOptions):
23566
24254
  client_login_banner: typing.Optional[builtins.str] = None,
23567
24255
  client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
23568
24256
  description: typing.Optional[builtins.str] = None,
24257
+ disconnect_on_session_timeout: typing.Optional[builtins.bool] = None,
23569
24258
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
23570
24259
  logging: typing.Optional[builtins.bool] = None,
23571
24260
  log_group: typing.Optional[_ILogGroup_3c4fa718] = None,
@@ -23590,6 +24279,7 @@ class ClientVpnEndpointProps(ClientVpnEndpointOptions):
23590
24279
  :param client_login_banner: Customizable text that will be displayed in a banner on AWS provided clients when a VPN session is established. UTF-8 encoded characters only. Maximum of 1400 characters. Default: - no banner is presented to the client
23591
24280
  :param client_route_enforcement_options: Options for Client Route Enforcement. Client Route Enforcement is a feature of Client VPN that helps enforce administrator defined routes on devices connected through the VPN. This feature helps improve your security posture by ensuring that network traffic originating from a connected client is not inadvertently sent outside the VPN tunnel. Default: undefined - AWS Client VPN default setting is disable client route enforcement
23592
24281
  :param description: A brief description of the Client VPN endpoint. Default: - no description
24282
+ :param disconnect_on_session_timeout: Indicates whether the client VPN session is disconnected after the maximum ``sessionTimeout`` is reached. If ``true``, users are prompted to reconnect client VPN. If ``false``, client VPN attempts to reconnect automatically. Default: undefined - AWS Client VPN default is true
23593
24283
  :param dns_servers: Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. Default: - use the DNS address configured on the device
23594
24284
  :param logging: Whether to enable connections logging. Default: true
23595
24285
  :param log_group: A CloudWatch Logs log group for connection logging. Default: - a new group is created
@@ -23636,6 +24326,7 @@ class ClientVpnEndpointProps(ClientVpnEndpointOptions):
23636
24326
  enforced=False
23637
24327
  ),
23638
24328
  description="description",
24329
+ disconnect_on_session_timeout=False,
23639
24330
  dns_servers=["dnsServers"],
23640
24331
  logging=False,
23641
24332
  log_group=log_group,
@@ -23671,6 +24362,7 @@ class ClientVpnEndpointProps(ClientVpnEndpointOptions):
23671
24362
  check_type(argname="argument client_login_banner", value=client_login_banner, expected_type=type_hints["client_login_banner"])
23672
24363
  check_type(argname="argument client_route_enforcement_options", value=client_route_enforcement_options, expected_type=type_hints["client_route_enforcement_options"])
23673
24364
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
24365
+ check_type(argname="argument disconnect_on_session_timeout", value=disconnect_on_session_timeout, expected_type=type_hints["disconnect_on_session_timeout"])
23674
24366
  check_type(argname="argument dns_servers", value=dns_servers, expected_type=type_hints["dns_servers"])
23675
24367
  check_type(argname="argument logging", value=logging, expected_type=type_hints["logging"])
23676
24368
  check_type(argname="argument log_group", value=log_group, expected_type=type_hints["log_group"])
@@ -23701,6 +24393,8 @@ class ClientVpnEndpointProps(ClientVpnEndpointOptions):
23701
24393
  self._values["client_route_enforcement_options"] = client_route_enforcement_options
23702
24394
  if description is not None:
23703
24395
  self._values["description"] = description
24396
+ if disconnect_on_session_timeout is not None:
24397
+ self._values["disconnect_on_session_timeout"] = disconnect_on_session_timeout
23704
24398
  if dns_servers is not None:
23705
24399
  self._values["dns_servers"] = dns_servers
23706
24400
  if logging is not None:
@@ -23821,6 +24515,20 @@ class ClientVpnEndpointProps(ClientVpnEndpointOptions):
23821
24515
  result = self._values.get("description")
23822
24516
  return typing.cast(typing.Optional[builtins.str], result)
23823
24517
 
24518
+ @builtins.property
24519
+ def disconnect_on_session_timeout(self) -> typing.Optional[builtins.bool]:
24520
+ '''Indicates whether the client VPN session is disconnected after the maximum ``sessionTimeout`` is reached.
24521
+
24522
+ If ``true``, users are prompted to reconnect client VPN.
24523
+ If ``false``, client VPN attempts to reconnect automatically.
24524
+
24525
+ :default: undefined - AWS Client VPN default is true
24526
+
24527
+ :see: https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-max-duration.html
24528
+ '''
24529
+ result = self._values.get("disconnect_on_session_timeout")
24530
+ return typing.cast(typing.Optional[builtins.bool], result)
24531
+
23824
24532
  @builtins.property
23825
24533
  def dns_servers(self) -> typing.Optional[typing.List[builtins.str]]:
23826
24534
  '''Information about the DNS servers to be used for DNS resolution.
@@ -25297,6 +26005,70 @@ class CpuCredits(enum.Enum):
25297
26005
  '''
25298
26006
 
25299
26007
 
26008
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.CpuManufacturer")
26009
+ class CpuManufacturer(enum.Enum):
26010
+ '''CPU manufacturers supported by EC2 instances.
26011
+
26012
+ Restricts the acceptable CPU vendor for selected instance types.
26013
+
26014
+ :exampleMetadata: infused
26015
+
26016
+ Example::
26017
+
26018
+ # vpc: ec2.Vpc
26019
+ # infrastructure_role: iam.Role
26020
+ # instance_profile: iam.InstanceProfile
26021
+
26022
+
26023
+ cluster = ecs.Cluster(self, "Cluster", vpc=vpc)
26024
+
26025
+ # Create a Managed Instances Capacity Provider
26026
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
26027
+ infrastructure_role=infrastructure_role,
26028
+ ec2_instance_profile=instance_profile,
26029
+ subnets=vpc.private_subnets,
26030
+ security_groups=[ec2.SecurityGroup(self, "MISecurityGroup", vpc=vpc)],
26031
+ instance_requirements=ec2.InstanceRequirementsConfig(
26032
+ v_cpu_count_min=1,
26033
+ memory_min=Size.gibibytes(2),
26034
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL],
26035
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA]
26036
+ ),
26037
+ propagate_tags=ecs.PropagateManagedInstancesTags.CAPACITY_PROVIDER
26038
+ )
26039
+
26040
+ # Add the capacity provider to the cluster
26041
+ cluster.add_managed_instances_capacity_provider(mi_capacity_provider)
26042
+
26043
+ task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
26044
+
26045
+ task_definition.add_container("web",
26046
+ image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
26047
+ memory_reservation_mi_b=256
26048
+ )
26049
+
26050
+ ecs.Ec2Service(self, "EC2Service",
26051
+ cluster=cluster,
26052
+ task_definition=task_definition,
26053
+ min_healthy_percent=100,
26054
+ capacity_provider_strategies=[ecs.CapacityProviderStrategy(
26055
+ capacity_provider=mi_capacity_provider.capacity_provider_name,
26056
+ weight=1
26057
+ )
26058
+ ]
26059
+ )
26060
+ '''
26061
+
26062
+ INTEL = "INTEL"
26063
+ '''Intel CPUs (e.g., Xeon families).'''
26064
+ AMD = "AMD"
26065
+ '''AMD CPUs (e.g., EPYC families).'''
26066
+ AWS = "AWS"
26067
+ '''AWS-designed CPUs (e.g., Graviton families).'''
26068
+ APPLE = "APPLE"
26069
+ '''Apple CPUs (e.g., M1, M2).'''
26070
+
26071
+
25300
26072
  @jsii.data_type(
25301
26073
  jsii_type="aws-cdk-lib.aws_ec2.CreateIpv6CidrBlocksRequest",
25302
26074
  jsii_struct_bases=[],
@@ -29291,6 +30063,100 @@ class _ILocalGatewayRouteTableVirtualInterfaceGroupAssociationRefProxy(
29291
30063
  typing.cast(typing.Any, ILocalGatewayRouteTableVirtualInterfaceGroupAssociationRef).__jsii_proxy_class__ = lambda : _ILocalGatewayRouteTableVirtualInterfaceGroupAssociationRefProxy
29292
30064
 
29293
30065
 
30066
+ @jsii.interface(jsii_type="aws-cdk-lib.aws_ec2.ILocalGatewayVirtualInterfaceGroupRef")
30067
+ class ILocalGatewayVirtualInterfaceGroupRef(
30068
+ _constructs_77d1e7e8.IConstruct,
30069
+ typing_extensions.Protocol,
30070
+ ):
30071
+ '''(experimental) Indicates that this resource can be referenced as a LocalGatewayVirtualInterfaceGroup.
30072
+
30073
+ :stability: experimental
30074
+ '''
30075
+
30076
+ @builtins.property
30077
+ @jsii.member(jsii_name="localGatewayVirtualInterfaceGroupRef")
30078
+ def local_gateway_virtual_interface_group_ref(
30079
+ self,
30080
+ ) -> "LocalGatewayVirtualInterfaceGroupReference":
30081
+ '''(experimental) A reference to a LocalGatewayVirtualInterfaceGroup resource.
30082
+
30083
+ :stability: experimental
30084
+ '''
30085
+ ...
30086
+
30087
+
30088
+ class _ILocalGatewayVirtualInterfaceGroupRefProxy(
30089
+ jsii.proxy_for(_constructs_77d1e7e8.IConstruct), # type: ignore[misc]
30090
+ ):
30091
+ '''(experimental) Indicates that this resource can be referenced as a LocalGatewayVirtualInterfaceGroup.
30092
+
30093
+ :stability: experimental
30094
+ '''
30095
+
30096
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_ec2.ILocalGatewayVirtualInterfaceGroupRef"
30097
+
30098
+ @builtins.property
30099
+ @jsii.member(jsii_name="localGatewayVirtualInterfaceGroupRef")
30100
+ def local_gateway_virtual_interface_group_ref(
30101
+ self,
30102
+ ) -> "LocalGatewayVirtualInterfaceGroupReference":
30103
+ '''(experimental) A reference to a LocalGatewayVirtualInterfaceGroup resource.
30104
+
30105
+ :stability: experimental
30106
+ '''
30107
+ return typing.cast("LocalGatewayVirtualInterfaceGroupReference", jsii.get(self, "localGatewayVirtualInterfaceGroupRef"))
30108
+
30109
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
30110
+ typing.cast(typing.Any, ILocalGatewayVirtualInterfaceGroupRef).__jsii_proxy_class__ = lambda : _ILocalGatewayVirtualInterfaceGroupRefProxy
30111
+
30112
+
30113
+ @jsii.interface(jsii_type="aws-cdk-lib.aws_ec2.ILocalGatewayVirtualInterfaceRef")
30114
+ class ILocalGatewayVirtualInterfaceRef(
30115
+ _constructs_77d1e7e8.IConstruct,
30116
+ typing_extensions.Protocol,
30117
+ ):
30118
+ '''(experimental) Indicates that this resource can be referenced as a LocalGatewayVirtualInterface.
30119
+
30120
+ :stability: experimental
30121
+ '''
30122
+
30123
+ @builtins.property
30124
+ @jsii.member(jsii_name="localGatewayVirtualInterfaceRef")
30125
+ def local_gateway_virtual_interface_ref(
30126
+ self,
30127
+ ) -> "LocalGatewayVirtualInterfaceReference":
30128
+ '''(experimental) A reference to a LocalGatewayVirtualInterface resource.
30129
+
30130
+ :stability: experimental
30131
+ '''
30132
+ ...
30133
+
30134
+
30135
+ class _ILocalGatewayVirtualInterfaceRefProxy(
30136
+ jsii.proxy_for(_constructs_77d1e7e8.IConstruct), # type: ignore[misc]
30137
+ ):
30138
+ '''(experimental) Indicates that this resource can be referenced as a LocalGatewayVirtualInterface.
30139
+
30140
+ :stability: experimental
30141
+ '''
30142
+
30143
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_ec2.ILocalGatewayVirtualInterfaceRef"
30144
+
30145
+ @builtins.property
30146
+ @jsii.member(jsii_name="localGatewayVirtualInterfaceRef")
30147
+ def local_gateway_virtual_interface_ref(
30148
+ self,
30149
+ ) -> "LocalGatewayVirtualInterfaceReference":
30150
+ '''(experimental) A reference to a LocalGatewayVirtualInterface resource.
30151
+
30152
+ :stability: experimental
30153
+ '''
30154
+ return typing.cast("LocalGatewayVirtualInterfaceReference", jsii.get(self, "localGatewayVirtualInterfaceRef"))
30155
+
30156
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
30157
+ typing.cast(typing.Any, ILocalGatewayVirtualInterfaceRef).__jsii_proxy_class__ = lambda : _ILocalGatewayVirtualInterfaceRefProxy
30158
+
30159
+
29294
30160
  @jsii.interface(jsii_type="aws-cdk-lib.aws_ec2.IMachineImage")
29295
30161
  class IMachineImage(typing_extensions.Protocol):
29296
30162
  '''Interface for classes that can select an appropriate machine image to use.'''
@@ -32913,6 +33779,7 @@ class IVpc(_IResource_c80c4260, IVPCRef, typing_extensions.Protocol):
32913
33779
  client_login_banner: typing.Optional[builtins.str] = None,
32914
33780
  client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
32915
33781
  description: typing.Optional[builtins.str] = None,
33782
+ disconnect_on_session_timeout: typing.Optional[builtins.bool] = None,
32916
33783
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
32917
33784
  logging: typing.Optional[builtins.bool] = None,
32918
33785
  log_group: typing.Optional[_ILogGroup_3c4fa718] = None,
@@ -32937,6 +33804,7 @@ class IVpc(_IResource_c80c4260, IVPCRef, typing_extensions.Protocol):
32937
33804
  :param client_login_banner: Customizable text that will be displayed in a banner on AWS provided clients when a VPN session is established. UTF-8 encoded characters only. Maximum of 1400 characters. Default: - no banner is presented to the client
32938
33805
  :param client_route_enforcement_options: Options for Client Route Enforcement. Client Route Enforcement is a feature of Client VPN that helps enforce administrator defined routes on devices connected through the VPN. This feature helps improve your security posture by ensuring that network traffic originating from a connected client is not inadvertently sent outside the VPN tunnel. Default: undefined - AWS Client VPN default setting is disable client route enforcement
32939
33806
  :param description: A brief description of the Client VPN endpoint. Default: - no description
33807
+ :param disconnect_on_session_timeout: Indicates whether the client VPN session is disconnected after the maximum ``sessionTimeout`` is reached. If ``true``, users are prompted to reconnect client VPN. If ``false``, client VPN attempts to reconnect automatically. Default: undefined - AWS Client VPN default is true
32940
33808
  :param dns_servers: Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. Default: - use the DNS address configured on the device
32941
33809
  :param logging: Whether to enable connections logging. Default: true
32942
33810
  :param log_group: A CloudWatch Logs log group for connection logging. Default: - a new group is created
@@ -33164,6 +34032,7 @@ class _IVpcProxy(
33164
34032
  client_login_banner: typing.Optional[builtins.str] = None,
33165
34033
  client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
33166
34034
  description: typing.Optional[builtins.str] = None,
34035
+ disconnect_on_session_timeout: typing.Optional[builtins.bool] = None,
33167
34036
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
33168
34037
  logging: typing.Optional[builtins.bool] = None,
33169
34038
  log_group: typing.Optional[_ILogGroup_3c4fa718] = None,
@@ -33188,6 +34057,7 @@ class _IVpcProxy(
33188
34057
  :param client_login_banner: Customizable text that will be displayed in a banner on AWS provided clients when a VPN session is established. UTF-8 encoded characters only. Maximum of 1400 characters. Default: - no banner is presented to the client
33189
34058
  :param client_route_enforcement_options: Options for Client Route Enforcement. Client Route Enforcement is a feature of Client VPN that helps enforce administrator defined routes on devices connected through the VPN. This feature helps improve your security posture by ensuring that network traffic originating from a connected client is not inadvertently sent outside the VPN tunnel. Default: undefined - AWS Client VPN default setting is disable client route enforcement
33190
34059
  :param description: A brief description of the Client VPN endpoint. Default: - no description
34060
+ :param disconnect_on_session_timeout: Indicates whether the client VPN session is disconnected after the maximum ``sessionTimeout`` is reached. If ``true``, users are prompted to reconnect client VPN. If ``false``, client VPN attempts to reconnect automatically. Default: undefined - AWS Client VPN default is true
33191
34061
  :param dns_servers: Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. Default: - use the DNS address configured on the device
33192
34062
  :param logging: Whether to enable connections logging. Default: true
33193
34063
  :param log_group: A CloudWatch Logs log group for connection logging. Default: - a new group is created
@@ -33213,6 +34083,7 @@ class _IVpcProxy(
33213
34083
  client_login_banner=client_login_banner,
33214
34084
  client_route_enforcement_options=client_route_enforcement_options,
33215
34085
  description=description,
34086
+ disconnect_on_session_timeout=disconnect_on_session_timeout,
33216
34087
  dns_servers=dns_servers,
33217
34088
  logging=logging,
33218
34089
  log_group=log_group,
@@ -36366,6 +37237,14 @@ class InstanceClass(enum.Enum):
36366
37237
  '''Compute optimized instances based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation C7i-flex instances efficiently use compute resources to deliver a baseline level of performance with the ability to scale up to the full compute performance a majority of the time.'''
36367
37238
  C7I_FLEX = "C7I_FLEX"
36368
37239
  '''Compute optimized instances based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation C7i-flex instances efficiently use compute resources to deliver a baseline level of performance with the ability to scale up to the full compute performance a majority of the time.'''
37240
+ COMPUTE8_INTEL = "COMPUTE8_INTEL"
37241
+ '''Compute optimized instances based on custom Intel Xeon 6 processors, available only on AWS, 8th generation.'''
37242
+ C8I = "C8I"
37243
+ '''Compute optimized instances based on custom Intel Xeon 6 processors, available only on AWS, 8th generation.'''
37244
+ COMPUTE8_INTEL_FLEX = "COMPUTE8_INTEL_FLEX"
37245
+ '''Compute optimized instances based on custom Intel Xeon 6 processors, available only on AWS, 8th generation C8i-flex instances efficiently use compute resources to deliver a baseline level of performance with the ability to scale up to the full compute performance a majority of the time.'''
37246
+ C8I_FLEX = "C8I_FLEX"
37247
+ '''Compute optimized instances based on custom Intel Xeon 6 processors, available only on AWS, 8th generation C8i-flex instances efficiently use compute resources to deliver a baseline level of performance with the ability to scale up to the full compute performance a majority of the time.'''
36369
37248
  COMPUTE7_AMD = "COMPUTE7_AMD"
36370
37249
  '''Compute optimized instances based on 4th generation AMD EPYC (codename Genoa), 7th generation.'''
36371
37250
  C7A = "C7A"
@@ -36664,6 +37543,10 @@ class InstanceClass(enum.Enum):
36664
37543
  '''Standard instances based on 4th generation AMD EPYC (codename Genoa), 7th generation.'''
36665
37544
  M7A = "M7A"
36666
37545
  '''Standard instances based on 4th generation AMD EPYC (codename Genoa), 7th generation.'''
37546
+ STANDARD8_AMD = "STANDARD8_AMD"
37547
+ '''Standard instances based on 5th generation AMD EPYC (formerly code named Turin), 8th generation.'''
37548
+ M8A = "M8A"
37549
+ '''Standard instances based on 5th generation AMD EPYC (formerly code named Turin), 8th generation.'''
36667
37550
  HIGH_COMPUTE_MEMORY1 = "HIGH_COMPUTE_MEMORY1"
36668
37551
  '''High memory and compute capacity instances, 1st generation.'''
36669
37552
  Z1D = "Z1D"
@@ -36775,6 +37658,71 @@ class InstanceConnectEndpointReference:
36775
37658
  )
36776
37659
 
36777
37660
 
37661
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.InstanceGeneration")
37662
+ class InstanceGeneration(enum.Enum):
37663
+ '''Instance generation categories for EC2.
37664
+
37665
+ Determines whether the instance type must belong to the latest
37666
+ (current) generation or to an older (previous) generation.
37667
+
37668
+ :exampleMetadata: infused
37669
+
37670
+ Example::
37671
+
37672
+ # infrastructure_role: iam.Role
37673
+ # instance_profile: iam.InstanceProfile
37674
+ # vpc: ec2.Vpc
37675
+
37676
+
37677
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
37678
+ infrastructure_role=infrastructure_role,
37679
+ ec2_instance_profile=instance_profile,
37680
+ subnets=vpc.private_subnets,
37681
+ instance_requirements=ec2.InstanceRequirementsConfig(
37682
+ # Required: CPU and memory constraints
37683
+ v_cpu_count_min=2,
37684
+ v_cpu_count_max=8,
37685
+ memory_min=Size.gibibytes(4),
37686
+ memory_max=Size.gibibytes(32),
37687
+
37688
+ # CPU preferences
37689
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
37690
+ instance_generations=[ec2.InstanceGeneration.CURRENT],
37691
+
37692
+ # Instance type filtering
37693
+ allowed_instance_types=["m5.*", "c5.*"],
37694
+
37695
+ # Performance characteristics
37696
+ burstable_performance=ec2.BurstablePerformance.EXCLUDED,
37697
+ bare_metal=ec2.BareMetal.EXCLUDED,
37698
+
37699
+ # Accelerator requirements (for ML/AI workloads)
37700
+ accelerator_types=[ec2.AcceleratorType.GPU],
37701
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
37702
+ accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
37703
+ accelerator_count_min=1,
37704
+
37705
+ # Storage requirements
37706
+ local_storage=ec2.LocalStorage.REQUIRED,
37707
+ local_storage_types=[ec2.LocalStorageType.SSD],
37708
+ total_local_storage_gBMin=100,
37709
+
37710
+ # Network requirements
37711
+ network_interface_count_min=2,
37712
+ network_bandwidth_gbps_min=10,
37713
+
37714
+ # Cost optimization
37715
+ on_demand_max_price_percentage_over_lowest_price=10
37716
+ )
37717
+ )
37718
+ '''
37719
+
37720
+ CURRENT = "CURRENT"
37721
+ '''Current generation instances (latest families).'''
37722
+ PREVIOUS = "PREVIOUS"
37723
+ '''Previous generation instances (older families).'''
37724
+
37725
+
36778
37726
  @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.InstanceInitiatedShutdownBehavior")
36779
37727
  class InstanceInitiatedShutdownBehavior(enum.Enum):
36780
37728
  '''Provides the options for specifying the instance initiated shutdown behavior.
@@ -37653,6 +38601,676 @@ class InstanceRequireImdsv2AspectProps:
37653
38601
  )
37654
38602
 
37655
38603
 
38604
+ @jsii.data_type(
38605
+ jsii_type="aws-cdk-lib.aws_ec2.InstanceRequirementsConfig",
38606
+ jsii_struct_bases=[],
38607
+ name_mapping={
38608
+ "memory_min": "memoryMin",
38609
+ "v_cpu_count_min": "vCpuCountMin",
38610
+ "accelerator_count_max": "acceleratorCountMax",
38611
+ "accelerator_count_min": "acceleratorCountMin",
38612
+ "accelerator_manufacturers": "acceleratorManufacturers",
38613
+ "accelerator_names": "acceleratorNames",
38614
+ "accelerator_total_memory_max": "acceleratorTotalMemoryMax",
38615
+ "accelerator_total_memory_min": "acceleratorTotalMemoryMin",
38616
+ "accelerator_types": "acceleratorTypes",
38617
+ "allowed_instance_types": "allowedInstanceTypes",
38618
+ "bare_metal": "bareMetal",
38619
+ "baseline_ebs_bandwidth_mbps_max": "baselineEbsBandwidthMbpsMax",
38620
+ "baseline_ebs_bandwidth_mbps_min": "baselineEbsBandwidthMbpsMin",
38621
+ "burstable_performance": "burstablePerformance",
38622
+ "cpu_manufacturers": "cpuManufacturers",
38623
+ "excluded_instance_types": "excludedInstanceTypes",
38624
+ "instance_generations": "instanceGenerations",
38625
+ "local_storage": "localStorage",
38626
+ "local_storage_types": "localStorageTypes",
38627
+ "max_spot_price_as_percentage_of_optimal_on_demand_price": "maxSpotPriceAsPercentageOfOptimalOnDemandPrice",
38628
+ "memory_max": "memoryMax",
38629
+ "memory_per_v_cpu_max": "memoryPerVCpuMax",
38630
+ "memory_per_v_cpu_min": "memoryPerVCpuMin",
38631
+ "network_bandwidth_gbps_max": "networkBandwidthGbpsMax",
38632
+ "network_bandwidth_gbps_min": "networkBandwidthGbpsMin",
38633
+ "network_interface_count_max": "networkInterfaceCountMax",
38634
+ "network_interface_count_min": "networkInterfaceCountMin",
38635
+ "on_demand_max_price_percentage_over_lowest_price": "onDemandMaxPricePercentageOverLowestPrice",
38636
+ "require_hibernate_support": "requireHibernateSupport",
38637
+ "spot_max_price_percentage_over_lowest_price": "spotMaxPricePercentageOverLowestPrice",
38638
+ "total_local_storage_gb_max": "totalLocalStorageGBMax",
38639
+ "total_local_storage_gb_min": "totalLocalStorageGBMin",
38640
+ "v_cpu_count_max": "vCpuCountMax",
38641
+ },
38642
+ )
38643
+ class InstanceRequirementsConfig:
38644
+ def __init__(
38645
+ self,
38646
+ *,
38647
+ memory_min: _Size_7b441c34,
38648
+ v_cpu_count_min: jsii.Number,
38649
+ accelerator_count_max: typing.Optional[jsii.Number] = None,
38650
+ accelerator_count_min: typing.Optional[jsii.Number] = None,
38651
+ accelerator_manufacturers: typing.Optional[typing.Sequence[AcceleratorManufacturer]] = None,
38652
+ accelerator_names: typing.Optional[typing.Sequence[AcceleratorName]] = None,
38653
+ accelerator_total_memory_max: typing.Optional[_Size_7b441c34] = None,
38654
+ accelerator_total_memory_min: typing.Optional[_Size_7b441c34] = None,
38655
+ accelerator_types: typing.Optional[typing.Sequence[AcceleratorType]] = None,
38656
+ allowed_instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
38657
+ bare_metal: typing.Optional[BareMetal] = None,
38658
+ baseline_ebs_bandwidth_mbps_max: typing.Optional[jsii.Number] = None,
38659
+ baseline_ebs_bandwidth_mbps_min: typing.Optional[jsii.Number] = None,
38660
+ burstable_performance: typing.Optional[BurstablePerformance] = None,
38661
+ cpu_manufacturers: typing.Optional[typing.Sequence[CpuManufacturer]] = None,
38662
+ excluded_instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
38663
+ instance_generations: typing.Optional[typing.Sequence[InstanceGeneration]] = None,
38664
+ local_storage: typing.Optional["LocalStorage"] = None,
38665
+ local_storage_types: typing.Optional[typing.Sequence["LocalStorageType"]] = None,
38666
+ max_spot_price_as_percentage_of_optimal_on_demand_price: typing.Optional[jsii.Number] = None,
38667
+ memory_max: typing.Optional[_Size_7b441c34] = None,
38668
+ memory_per_v_cpu_max: typing.Optional[_Size_7b441c34] = None,
38669
+ memory_per_v_cpu_min: typing.Optional[_Size_7b441c34] = None,
38670
+ network_bandwidth_gbps_max: typing.Optional[jsii.Number] = None,
38671
+ network_bandwidth_gbps_min: typing.Optional[jsii.Number] = None,
38672
+ network_interface_count_max: typing.Optional[jsii.Number] = None,
38673
+ network_interface_count_min: typing.Optional[jsii.Number] = None,
38674
+ on_demand_max_price_percentage_over_lowest_price: typing.Optional[jsii.Number] = None,
38675
+ require_hibernate_support: typing.Optional[builtins.bool] = None,
38676
+ spot_max_price_percentage_over_lowest_price: typing.Optional[jsii.Number] = None,
38677
+ total_local_storage_gb_max: typing.Optional[jsii.Number] = None,
38678
+ total_local_storage_gb_min: typing.Optional[jsii.Number] = None,
38679
+ v_cpu_count_max: typing.Optional[jsii.Number] = None,
38680
+ ) -> None:
38681
+ '''The attributes for the instance types for a mixed instances policy.
38682
+
38683
+ 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.
38684
+
38685
+ 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:
38686
+
38687
+ - AllowedInstanceTypes - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.
38688
+ - ExcludedInstanceTypes - The instance types to exclude from the list, even if they match your specified attributes.
38689
+
38690
+ Note: You must specify VCpuCount and MemoryMiB. All other attributes are optional. Any unspecified optional attribute is set to its default.
38691
+
38692
+ :param memory_min: The minimum instance memory size for an instance type, in MiB. Required: Yes
38693
+ :param v_cpu_count_min: The minimum number of vCPUs for an instance type. Required: Yes
38694
+ :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
38695
+ :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
38696
+ :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
38697
+ :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
38698
+ :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
38699
+ :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
38700
+ :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
38701
+ :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
38702
+ :param bare_metal: Indicates whether bare metal instance types are included, excluded, or required. Default: - excluded
38703
+ :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
38704
+ :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
38705
+ :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
38706
+ :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
38707
+ :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
38708
+ :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
38709
+ :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
38710
+ :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
38711
+ :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
38712
+ :param memory_max: The maximum instance memory size for an instance type, in MiB. Default: - No maximum limit
38713
+ :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
38714
+ :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
38715
+ :param network_bandwidth_gbps_max: The maximum amount of network bandwidth, in gigabits per second (Gbps). Default: - No minimum or maximum limits
38716
+ :param network_bandwidth_gbps_min: The minimum amount of network bandwidth, in gigabits per second (Gbps). Default: - No minimum or maximum limits
38717
+ :param network_interface_count_max: The maximum number of network interfaces for an instance type. Default: - No minimum or maximum limits
38718
+ :param network_interface_count_min: The minimum number of network interfaces for an instance type. Default: - No minimum or maximum limits
38719
+ :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
38720
+ :param require_hibernate_support: Indicates whether instance types must provide On-Demand Instance hibernation support. Default: - false
38721
+ :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
38722
+ :param total_local_storage_gb_max: The maximum total local storage size for an instance type, in GB. Default: - No minimum or maximum limits
38723
+ :param total_local_storage_gb_min: The minimum total local storage size for an instance type, in GB. Default: - No minimum or maximum limits
38724
+ :param v_cpu_count_max: The maximum number of vCPUs for an instance type. Default: - No maximum limit
38725
+
38726
+ :exampleMetadata: infused
38727
+
38728
+ Example::
38729
+
38730
+ # vpc: ec2.Vpc
38731
+ # infrastructure_role: iam.Role
38732
+ # instance_profile: iam.InstanceProfile
38733
+
38734
+
38735
+ cluster = ecs.Cluster(self, "Cluster", vpc=vpc)
38736
+
38737
+ # Create a Managed Instances Capacity Provider
38738
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
38739
+ infrastructure_role=infrastructure_role,
38740
+ ec2_instance_profile=instance_profile,
38741
+ subnets=vpc.private_subnets,
38742
+ security_groups=[ec2.SecurityGroup(self, "MISecurityGroup", vpc=vpc)],
38743
+ instance_requirements=ec2.InstanceRequirementsConfig(
38744
+ v_cpu_count_min=1,
38745
+ memory_min=Size.gibibytes(2),
38746
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL],
38747
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA]
38748
+ ),
38749
+ propagate_tags=ecs.PropagateManagedInstancesTags.CAPACITY_PROVIDER
38750
+ )
38751
+
38752
+ # Add the capacity provider to the cluster
38753
+ cluster.add_managed_instances_capacity_provider(mi_capacity_provider)
38754
+
38755
+ task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
38756
+
38757
+ task_definition.add_container("web",
38758
+ image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
38759
+ memory_reservation_mi_b=256
38760
+ )
38761
+
38762
+ ecs.Ec2Service(self, "EC2Service",
38763
+ cluster=cluster,
38764
+ task_definition=task_definition,
38765
+ min_healthy_percent=100,
38766
+ capacity_provider_strategies=[ecs.CapacityProviderStrategy(
38767
+ capacity_provider=mi_capacity_provider.capacity_provider_name,
38768
+ weight=1
38769
+ )
38770
+ ]
38771
+ )
38772
+ '''
38773
+ if __debug__:
38774
+ type_hints = typing.get_type_hints(_typecheckingstub__ec2256eb42c017c1221986108df1dba524eae16d4aaf51d7503ce5b1f919f3cd)
38775
+ check_type(argname="argument memory_min", value=memory_min, expected_type=type_hints["memory_min"])
38776
+ check_type(argname="argument v_cpu_count_min", value=v_cpu_count_min, expected_type=type_hints["v_cpu_count_min"])
38777
+ check_type(argname="argument accelerator_count_max", value=accelerator_count_max, expected_type=type_hints["accelerator_count_max"])
38778
+ check_type(argname="argument accelerator_count_min", value=accelerator_count_min, expected_type=type_hints["accelerator_count_min"])
38779
+ check_type(argname="argument accelerator_manufacturers", value=accelerator_manufacturers, expected_type=type_hints["accelerator_manufacturers"])
38780
+ check_type(argname="argument accelerator_names", value=accelerator_names, expected_type=type_hints["accelerator_names"])
38781
+ check_type(argname="argument accelerator_total_memory_max", value=accelerator_total_memory_max, expected_type=type_hints["accelerator_total_memory_max"])
38782
+ check_type(argname="argument accelerator_total_memory_min", value=accelerator_total_memory_min, expected_type=type_hints["accelerator_total_memory_min"])
38783
+ check_type(argname="argument accelerator_types", value=accelerator_types, expected_type=type_hints["accelerator_types"])
38784
+ check_type(argname="argument allowed_instance_types", value=allowed_instance_types, expected_type=type_hints["allowed_instance_types"])
38785
+ check_type(argname="argument bare_metal", value=bare_metal, expected_type=type_hints["bare_metal"])
38786
+ check_type(argname="argument baseline_ebs_bandwidth_mbps_max", value=baseline_ebs_bandwidth_mbps_max, expected_type=type_hints["baseline_ebs_bandwidth_mbps_max"])
38787
+ check_type(argname="argument baseline_ebs_bandwidth_mbps_min", value=baseline_ebs_bandwidth_mbps_min, expected_type=type_hints["baseline_ebs_bandwidth_mbps_min"])
38788
+ check_type(argname="argument burstable_performance", value=burstable_performance, expected_type=type_hints["burstable_performance"])
38789
+ check_type(argname="argument cpu_manufacturers", value=cpu_manufacturers, expected_type=type_hints["cpu_manufacturers"])
38790
+ check_type(argname="argument excluded_instance_types", value=excluded_instance_types, expected_type=type_hints["excluded_instance_types"])
38791
+ check_type(argname="argument instance_generations", value=instance_generations, expected_type=type_hints["instance_generations"])
38792
+ check_type(argname="argument local_storage", value=local_storage, expected_type=type_hints["local_storage"])
38793
+ check_type(argname="argument local_storage_types", value=local_storage_types, expected_type=type_hints["local_storage_types"])
38794
+ 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"])
38795
+ check_type(argname="argument memory_max", value=memory_max, expected_type=type_hints["memory_max"])
38796
+ check_type(argname="argument memory_per_v_cpu_max", value=memory_per_v_cpu_max, expected_type=type_hints["memory_per_v_cpu_max"])
38797
+ check_type(argname="argument memory_per_v_cpu_min", value=memory_per_v_cpu_min, expected_type=type_hints["memory_per_v_cpu_min"])
38798
+ check_type(argname="argument network_bandwidth_gbps_max", value=network_bandwidth_gbps_max, expected_type=type_hints["network_bandwidth_gbps_max"])
38799
+ check_type(argname="argument network_bandwidth_gbps_min", value=network_bandwidth_gbps_min, expected_type=type_hints["network_bandwidth_gbps_min"])
38800
+ check_type(argname="argument network_interface_count_max", value=network_interface_count_max, expected_type=type_hints["network_interface_count_max"])
38801
+ check_type(argname="argument network_interface_count_min", value=network_interface_count_min, expected_type=type_hints["network_interface_count_min"])
38802
+ 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"])
38803
+ check_type(argname="argument require_hibernate_support", value=require_hibernate_support, expected_type=type_hints["require_hibernate_support"])
38804
+ 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"])
38805
+ check_type(argname="argument total_local_storage_gb_max", value=total_local_storage_gb_max, expected_type=type_hints["total_local_storage_gb_max"])
38806
+ check_type(argname="argument total_local_storage_gb_min", value=total_local_storage_gb_min, expected_type=type_hints["total_local_storage_gb_min"])
38807
+ check_type(argname="argument v_cpu_count_max", value=v_cpu_count_max, expected_type=type_hints["v_cpu_count_max"])
38808
+ self._values: typing.Dict[builtins.str, typing.Any] = {
38809
+ "memory_min": memory_min,
38810
+ "v_cpu_count_min": v_cpu_count_min,
38811
+ }
38812
+ if accelerator_count_max is not None:
38813
+ self._values["accelerator_count_max"] = accelerator_count_max
38814
+ if accelerator_count_min is not None:
38815
+ self._values["accelerator_count_min"] = accelerator_count_min
38816
+ if accelerator_manufacturers is not None:
38817
+ self._values["accelerator_manufacturers"] = accelerator_manufacturers
38818
+ if accelerator_names is not None:
38819
+ self._values["accelerator_names"] = accelerator_names
38820
+ if accelerator_total_memory_max is not None:
38821
+ self._values["accelerator_total_memory_max"] = accelerator_total_memory_max
38822
+ if accelerator_total_memory_min is not None:
38823
+ self._values["accelerator_total_memory_min"] = accelerator_total_memory_min
38824
+ if accelerator_types is not None:
38825
+ self._values["accelerator_types"] = accelerator_types
38826
+ if allowed_instance_types is not None:
38827
+ self._values["allowed_instance_types"] = allowed_instance_types
38828
+ if bare_metal is not None:
38829
+ self._values["bare_metal"] = bare_metal
38830
+ if baseline_ebs_bandwidth_mbps_max is not None:
38831
+ self._values["baseline_ebs_bandwidth_mbps_max"] = baseline_ebs_bandwidth_mbps_max
38832
+ if baseline_ebs_bandwidth_mbps_min is not None:
38833
+ self._values["baseline_ebs_bandwidth_mbps_min"] = baseline_ebs_bandwidth_mbps_min
38834
+ if burstable_performance is not None:
38835
+ self._values["burstable_performance"] = burstable_performance
38836
+ if cpu_manufacturers is not None:
38837
+ self._values["cpu_manufacturers"] = cpu_manufacturers
38838
+ if excluded_instance_types is not None:
38839
+ self._values["excluded_instance_types"] = excluded_instance_types
38840
+ if instance_generations is not None:
38841
+ self._values["instance_generations"] = instance_generations
38842
+ if local_storage is not None:
38843
+ self._values["local_storage"] = local_storage
38844
+ if local_storage_types is not None:
38845
+ self._values["local_storage_types"] = local_storage_types
38846
+ if max_spot_price_as_percentage_of_optimal_on_demand_price is not None:
38847
+ self._values["max_spot_price_as_percentage_of_optimal_on_demand_price"] = max_spot_price_as_percentage_of_optimal_on_demand_price
38848
+ if memory_max is not None:
38849
+ self._values["memory_max"] = memory_max
38850
+ if memory_per_v_cpu_max is not None:
38851
+ self._values["memory_per_v_cpu_max"] = memory_per_v_cpu_max
38852
+ if memory_per_v_cpu_min is not None:
38853
+ self._values["memory_per_v_cpu_min"] = memory_per_v_cpu_min
38854
+ if network_bandwidth_gbps_max is not None:
38855
+ self._values["network_bandwidth_gbps_max"] = network_bandwidth_gbps_max
38856
+ if network_bandwidth_gbps_min is not None:
38857
+ self._values["network_bandwidth_gbps_min"] = network_bandwidth_gbps_min
38858
+ if network_interface_count_max is not None:
38859
+ self._values["network_interface_count_max"] = network_interface_count_max
38860
+ if network_interface_count_min is not None:
38861
+ self._values["network_interface_count_min"] = network_interface_count_min
38862
+ if on_demand_max_price_percentage_over_lowest_price is not None:
38863
+ self._values["on_demand_max_price_percentage_over_lowest_price"] = on_demand_max_price_percentage_over_lowest_price
38864
+ if require_hibernate_support is not None:
38865
+ self._values["require_hibernate_support"] = require_hibernate_support
38866
+ if spot_max_price_percentage_over_lowest_price is not None:
38867
+ self._values["spot_max_price_percentage_over_lowest_price"] = spot_max_price_percentage_over_lowest_price
38868
+ if total_local_storage_gb_max is not None:
38869
+ self._values["total_local_storage_gb_max"] = total_local_storage_gb_max
38870
+ if total_local_storage_gb_min is not None:
38871
+ self._values["total_local_storage_gb_min"] = total_local_storage_gb_min
38872
+ if v_cpu_count_max is not None:
38873
+ self._values["v_cpu_count_max"] = v_cpu_count_max
38874
+
38875
+ @builtins.property
38876
+ def memory_min(self) -> _Size_7b441c34:
38877
+ '''The minimum instance memory size for an instance type, in MiB.
38878
+
38879
+ Required: Yes
38880
+ '''
38881
+ result = self._values.get("memory_min")
38882
+ assert result is not None, "Required property 'memory_min' is missing"
38883
+ return typing.cast(_Size_7b441c34, result)
38884
+
38885
+ @builtins.property
38886
+ def v_cpu_count_min(self) -> jsii.Number:
38887
+ '''The minimum number of vCPUs for an instance type.
38888
+
38889
+ Required: Yes
38890
+ '''
38891
+ result = self._values.get("v_cpu_count_min")
38892
+ assert result is not None, "Required property 'v_cpu_count_min' is missing"
38893
+ return typing.cast(jsii.Number, result)
38894
+
38895
+ @builtins.property
38896
+ def accelerator_count_max(self) -> typing.Optional[jsii.Number]:
38897
+ '''The maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) for an instance type.
38898
+
38899
+ To exclude accelerator-enabled instance types, set Max to 0.
38900
+
38901
+ :default: - No minimum or maximum limits
38902
+ '''
38903
+ result = self._values.get("accelerator_count_max")
38904
+ return typing.cast(typing.Optional[jsii.Number], result)
38905
+
38906
+ @builtins.property
38907
+ def accelerator_count_min(self) -> typing.Optional[jsii.Number]:
38908
+ '''The minimum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) for an instance type.
38909
+
38910
+ To exclude accelerator-enabled instance types, set acceleratorCountMax to 0.
38911
+
38912
+ :default: - No minimum or maximum limits
38913
+ '''
38914
+ result = self._values.get("accelerator_count_min")
38915
+ return typing.cast(typing.Optional[jsii.Number], result)
38916
+
38917
+ @builtins.property
38918
+ def accelerator_manufacturers(
38919
+ self,
38920
+ ) -> typing.Optional[typing.List[AcceleratorManufacturer]]:
38921
+ '''Indicates whether instance types must have accelerators by specific manufacturers.
38922
+
38923
+ - For instance types with NVIDIA devices, specify nvidia.
38924
+ - For instance types with AMD devices, specify amd.
38925
+ - For instance types with AWS devices, specify amazon-web-services.
38926
+ - For instance types with Xilinx devices, specify xilinx.
38927
+
38928
+ :default: - Any manufacturer
38929
+ '''
38930
+ result = self._values.get("accelerator_manufacturers")
38931
+ return typing.cast(typing.Optional[typing.List[AcceleratorManufacturer]], result)
38932
+
38933
+ @builtins.property
38934
+ def accelerator_names(self) -> typing.Optional[typing.List[AcceleratorName]]:
38935
+ '''Lists the accelerators that must be on an instance type.
38936
+
38937
+ - For instance types with NVIDIA A100 GPUs, specify a100.
38938
+ - For instance types with NVIDIA V100 GPUs, specify v100.
38939
+ - For instance types with NVIDIA K80 GPUs, specify k80.
38940
+ - For instance types with NVIDIA T4 GPUs, specify t4.
38941
+ - For instance types with NVIDIA M60 GPUs, specify m60.
38942
+ - For instance types with AMD Radeon Pro V520 GPUs, specify radeon-pro-v520.
38943
+ - For instance types with Xilinx VU9P FPGAs, specify vu9p.
38944
+
38945
+ :default: - Any accelerator
38946
+ '''
38947
+ result = self._values.get("accelerator_names")
38948
+ return typing.cast(typing.Optional[typing.List[AcceleratorName]], result)
38949
+
38950
+ @builtins.property
38951
+ def accelerator_total_memory_max(self) -> typing.Optional[_Size_7b441c34]:
38952
+ '''The maximum total memory size for the accelerators on an instance type, in MiB.
38953
+
38954
+ :default: - No minimum or maximum limits
38955
+ '''
38956
+ result = self._values.get("accelerator_total_memory_max")
38957
+ return typing.cast(typing.Optional[_Size_7b441c34], result)
38958
+
38959
+ @builtins.property
38960
+ def accelerator_total_memory_min(self) -> typing.Optional[_Size_7b441c34]:
38961
+ '''The minimum total memory size for the accelerators on an instance type, in MiB.
38962
+
38963
+ :default: - No minimum or maximum limits
38964
+ '''
38965
+ result = self._values.get("accelerator_total_memory_min")
38966
+ return typing.cast(typing.Optional[_Size_7b441c34], result)
38967
+
38968
+ @builtins.property
38969
+ def accelerator_types(self) -> typing.Optional[typing.List[AcceleratorType]]:
38970
+ '''Lists the accelerator types that must be on an instance type.
38971
+
38972
+ - For instance types with GPU accelerators, specify gpu.
38973
+ - For instance types with FPGA accelerators, specify fpga.
38974
+ - For instance types with inference accelerators, specify inference.
38975
+
38976
+ :default: - Any accelerator type
38977
+ '''
38978
+ result = self._values.get("accelerator_types")
38979
+ return typing.cast(typing.Optional[typing.List[AcceleratorType]], result)
38980
+
38981
+ @builtins.property
38982
+ def allowed_instance_types(self) -> typing.Optional[typing.List[builtins.str]]:
38983
+ '''The instance types to apply your specified attributes against.
38984
+
38985
+ All other instance types are ignored, even if they match your specified attributes.
38986
+
38987
+ 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*.
38988
+
38989
+ 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.
38990
+
38991
+ Note: If you specify AllowedInstanceTypes, you can't specify ExcludedInstanceTypes.
38992
+
38993
+ :default: - All instance types
38994
+ '''
38995
+ result = self._values.get("allowed_instance_types")
38996
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
38997
+
38998
+ @builtins.property
38999
+ def bare_metal(self) -> typing.Optional[BareMetal]:
39000
+ '''Indicates whether bare metal instance types are included, excluded, or required.
39001
+
39002
+ :default: - excluded
39003
+ '''
39004
+ result = self._values.get("bare_metal")
39005
+ return typing.cast(typing.Optional[BareMetal], result)
39006
+
39007
+ @builtins.property
39008
+ def baseline_ebs_bandwidth_mbps_max(self) -> typing.Optional[jsii.Number]:
39009
+ '''The maximum baseline bandwidth performance for an instance type, in Mbps.
39010
+
39011
+ For more information, see Amazon EBS–optimized instances in the Amazon EC2 User Guide.
39012
+
39013
+ :default: - No minimum or maximum limits
39014
+ '''
39015
+ result = self._values.get("baseline_ebs_bandwidth_mbps_max")
39016
+ return typing.cast(typing.Optional[jsii.Number], result)
39017
+
39018
+ @builtins.property
39019
+ def baseline_ebs_bandwidth_mbps_min(self) -> typing.Optional[jsii.Number]:
39020
+ '''The minimum baseline bandwidth performance for an instance type, in Mbps.
39021
+
39022
+ For more information, see Amazon EBS–optimized instances in the Amazon EC2 User Guide.
39023
+
39024
+ :default: - No minimum or maximum limits
39025
+ '''
39026
+ result = self._values.get("baseline_ebs_bandwidth_mbps_min")
39027
+ return typing.cast(typing.Optional[jsii.Number], result)
39028
+
39029
+ @builtins.property
39030
+ def burstable_performance(self) -> typing.Optional[BurstablePerformance]:
39031
+ '''Indicates whether burstable performance instance types are included, excluded, or required.
39032
+
39033
+ For more information, see Burstable performance instances in the Amazon EC2 User Guide.
39034
+
39035
+ :default: - excluded
39036
+ '''
39037
+ result = self._values.get("burstable_performance")
39038
+ return typing.cast(typing.Optional[BurstablePerformance], result)
39039
+
39040
+ @builtins.property
39041
+ def cpu_manufacturers(self) -> typing.Optional[typing.List[CpuManufacturer]]:
39042
+ '''Lists which specific CPU manufacturers to include.
39043
+
39044
+ - For instance types with Intel CPUs, specify intel.
39045
+ - For instance types with AMD CPUs, specify amd.
39046
+ - For instance types with AWS CPUs, specify amazon-web-services.
39047
+ - For instance types with Apple CPUs, specify apple.
39048
+
39049
+ 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.
39050
+
39051
+ :default: - Any manufacturer
39052
+ '''
39053
+ result = self._values.get("cpu_manufacturers")
39054
+ return typing.cast(typing.Optional[typing.List[CpuManufacturer]], result)
39055
+
39056
+ @builtins.property
39057
+ def excluded_instance_types(self) -> typing.Optional[typing.List[builtins.str]]:
39058
+ '''The instance types to exclude.
39059
+
39060
+ 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*.
39061
+
39062
+ 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.
39063
+
39064
+ Note: If you specify ExcludedInstanceTypes, you can't specify AllowedInstanceTypes.
39065
+
39066
+ :default: - No excluded instance types
39067
+ '''
39068
+ result = self._values.get("excluded_instance_types")
39069
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
39070
+
39071
+ @builtins.property
39072
+ def instance_generations(self) -> typing.Optional[typing.List[InstanceGeneration]]:
39073
+ '''Indicates whether current or previous generation instance types are included.
39074
+
39075
+ - 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.
39076
+ - For previous generation instance types, specify previous.
39077
+
39078
+ :default: - Any current or previous generation
39079
+ '''
39080
+ result = self._values.get("instance_generations")
39081
+ return typing.cast(typing.Optional[typing.List[InstanceGeneration]], result)
39082
+
39083
+ @builtins.property
39084
+ def local_storage(self) -> typing.Optional["LocalStorage"]:
39085
+ '''Indicates whether instance types with instance store volumes are included, excluded, or required.
39086
+
39087
+ For more information, see Amazon EC2 instance store in the Amazon EC2 User Guide.
39088
+
39089
+ :default: - included
39090
+ '''
39091
+ result = self._values.get("local_storage")
39092
+ return typing.cast(typing.Optional["LocalStorage"], result)
39093
+
39094
+ @builtins.property
39095
+ def local_storage_types(self) -> typing.Optional[typing.List["LocalStorageType"]]:
39096
+ '''Indicates the type of local storage that is required.
39097
+
39098
+ - For instance types with hard disk drive (HDD) storage, specify hdd.
39099
+ - For instance types with solid state drive (SSD) storage, specify ssd.
39100
+
39101
+ :default: - Any local storage type
39102
+ '''
39103
+ result = self._values.get("local_storage_types")
39104
+ return typing.cast(typing.Optional[typing.List["LocalStorageType"]], result)
39105
+
39106
+ @builtins.property
39107
+ def max_spot_price_as_percentage_of_optimal_on_demand_price(
39108
+ self,
39109
+ ) -> typing.Optional[jsii.Number]:
39110
+ '''[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price.
39111
+
39112
+ 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.
39113
+
39114
+ The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.
39115
+
39116
+ 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.
39117
+
39118
+ 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.
39119
+
39120
+ :default: - Automatic optimal price protection
39121
+ '''
39122
+ result = self._values.get("max_spot_price_as_percentage_of_optimal_on_demand_price")
39123
+ return typing.cast(typing.Optional[jsii.Number], result)
39124
+
39125
+ @builtins.property
39126
+ def memory_max(self) -> typing.Optional[_Size_7b441c34]:
39127
+ '''The maximum instance memory size for an instance type, in MiB.
39128
+
39129
+ :default: - No maximum limit
39130
+ '''
39131
+ result = self._values.get("memory_max")
39132
+ return typing.cast(typing.Optional[_Size_7b441c34], result)
39133
+
39134
+ @builtins.property
39135
+ def memory_per_v_cpu_max(self) -> typing.Optional[_Size_7b441c34]:
39136
+ '''The maximum amount of memory per vCPU for an instance type, in GiB.
39137
+
39138
+ :default: - No minimum or maximum limits
39139
+ '''
39140
+ result = self._values.get("memory_per_v_cpu_max")
39141
+ return typing.cast(typing.Optional[_Size_7b441c34], result)
39142
+
39143
+ @builtins.property
39144
+ def memory_per_v_cpu_min(self) -> typing.Optional[_Size_7b441c34]:
39145
+ '''The minimum amount of memory per vCPU for an instance type, in GiB.
39146
+
39147
+ :default: - No minimum or maximum limits
39148
+ '''
39149
+ result = self._values.get("memory_per_v_cpu_min")
39150
+ return typing.cast(typing.Optional[_Size_7b441c34], result)
39151
+
39152
+ @builtins.property
39153
+ def network_bandwidth_gbps_max(self) -> typing.Optional[jsii.Number]:
39154
+ '''The maximum amount of network bandwidth, in gigabits per second (Gbps).
39155
+
39156
+ :default: - No minimum or maximum limits
39157
+ '''
39158
+ result = self._values.get("network_bandwidth_gbps_max")
39159
+ return typing.cast(typing.Optional[jsii.Number], result)
39160
+
39161
+ @builtins.property
39162
+ def network_bandwidth_gbps_min(self) -> typing.Optional[jsii.Number]:
39163
+ '''The minimum amount of network bandwidth, in gigabits per second (Gbps).
39164
+
39165
+ :default: - No minimum or maximum limits
39166
+ '''
39167
+ result = self._values.get("network_bandwidth_gbps_min")
39168
+ return typing.cast(typing.Optional[jsii.Number], result)
39169
+
39170
+ @builtins.property
39171
+ def network_interface_count_max(self) -> typing.Optional[jsii.Number]:
39172
+ '''The maximum number of network interfaces for an instance type.
39173
+
39174
+ :default: - No minimum or maximum limits
39175
+ '''
39176
+ result = self._values.get("network_interface_count_max")
39177
+ return typing.cast(typing.Optional[jsii.Number], result)
39178
+
39179
+ @builtins.property
39180
+ def network_interface_count_min(self) -> typing.Optional[jsii.Number]:
39181
+ '''The minimum number of network interfaces for an instance type.
39182
+
39183
+ :default: - No minimum or maximum limits
39184
+ '''
39185
+ result = self._values.get("network_interface_count_min")
39186
+ return typing.cast(typing.Optional[jsii.Number], result)
39187
+
39188
+ @builtins.property
39189
+ def on_demand_max_price_percentage_over_lowest_price(
39190
+ self,
39191
+ ) -> typing.Optional[jsii.Number]:
39192
+ '''[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price.
39193
+
39194
+ 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.
39195
+
39196
+ The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.
39197
+
39198
+ To turn off price protection, specify a high value, such as 999999.
39199
+
39200
+ 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.
39201
+
39202
+ :default: - 20
39203
+ '''
39204
+ result = self._values.get("on_demand_max_price_percentage_over_lowest_price")
39205
+ return typing.cast(typing.Optional[jsii.Number], result)
39206
+
39207
+ @builtins.property
39208
+ def require_hibernate_support(self) -> typing.Optional[builtins.bool]:
39209
+ '''Indicates whether instance types must provide On-Demand Instance hibernation support.
39210
+
39211
+ :default: - false
39212
+ '''
39213
+ result = self._values.get("require_hibernate_support")
39214
+ return typing.cast(typing.Optional[builtins.bool], result)
39215
+
39216
+ @builtins.property
39217
+ def spot_max_price_percentage_over_lowest_price(
39218
+ self,
39219
+ ) -> typing.Optional[jsii.Number]:
39220
+ '''[Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price.
39221
+
39222
+ 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.
39223
+
39224
+ The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.
39225
+
39226
+ 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.
39227
+
39228
+ 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.
39229
+
39230
+ :default: - Automatic optimal price protection
39231
+ '''
39232
+ result = self._values.get("spot_max_price_percentage_over_lowest_price")
39233
+ return typing.cast(typing.Optional[jsii.Number], result)
39234
+
39235
+ @builtins.property
39236
+ def total_local_storage_gb_max(self) -> typing.Optional[jsii.Number]:
39237
+ '''The maximum total local storage size for an instance type, in GB.
39238
+
39239
+ :default: - No minimum or maximum limits
39240
+ '''
39241
+ result = self._values.get("total_local_storage_gb_max")
39242
+ return typing.cast(typing.Optional[jsii.Number], result)
39243
+
39244
+ @builtins.property
39245
+ def total_local_storage_gb_min(self) -> typing.Optional[jsii.Number]:
39246
+ '''The minimum total local storage size for an instance type, in GB.
39247
+
39248
+ :default: - No minimum or maximum limits
39249
+ '''
39250
+ result = self._values.get("total_local_storage_gb_min")
39251
+ return typing.cast(typing.Optional[jsii.Number], result)
39252
+
39253
+ @builtins.property
39254
+ def v_cpu_count_max(self) -> typing.Optional[jsii.Number]:
39255
+ '''The maximum number of vCPUs for an instance type.
39256
+
39257
+ :default: - No maximum limit
39258
+ '''
39259
+ result = self._values.get("v_cpu_count_max")
39260
+ return typing.cast(typing.Optional[jsii.Number], result)
39261
+
39262
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
39263
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
39264
+
39265
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
39266
+ return not (rhs == self)
39267
+
39268
+ def __repr__(self) -> str:
39269
+ return "InstanceRequirementsConfig(%s)" % ", ".join(
39270
+ k + "=" + repr(v) for k, v in self._values.items()
39271
+ )
39272
+
39273
+
37656
39274
  @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.InstanceSize")
37657
39275
  class InstanceSize(enum.Enum):
37658
39276
  '''What size of instance to use.
@@ -38124,6 +39742,16 @@ class InterfaceVpcEndpointAwsService(
38124
39742
  def BEDROCK_AGENT_RUNTIME(cls) -> "InterfaceVpcEndpointAwsService":
38125
39743
  return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "BEDROCK_AGENT_RUNTIME"))
38126
39744
 
39745
+ @jsii.python.classproperty
39746
+ @jsii.member(jsii_name="BEDROCK_AGENTCORE")
39747
+ def BEDROCK_AGENTCORE(cls) -> "InterfaceVpcEndpointAwsService":
39748
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "BEDROCK_AGENTCORE"))
39749
+
39750
+ @jsii.python.classproperty
39751
+ @jsii.member(jsii_name="BEDROCK_AGENTCORE_GATEWAY")
39752
+ def BEDROCK_AGENTCORE_GATEWAY(cls) -> "InterfaceVpcEndpointAwsService":
39753
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "BEDROCK_AGENTCORE_GATEWAY"))
39754
+
38127
39755
  @jsii.python.classproperty
38128
39756
  @jsii.member(jsii_name="BEDROCK_DATA_AUTOMATION")
38129
39757
  def BEDROCK_DATA_AUTOMATION(cls) -> "InterfaceVpcEndpointAwsService":
@@ -42446,6 +44074,262 @@ class LocalGatewayRouteTableVirtualInterfaceGroupAssociationReference:
42446
44074
  )
42447
44075
 
42448
44076
 
44077
+ @jsii.data_type(
44078
+ jsii_type="aws-cdk-lib.aws_ec2.LocalGatewayVirtualInterfaceGroupReference",
44079
+ jsii_struct_bases=[],
44080
+ name_mapping={
44081
+ "local_gateway_virtual_interface_group_arn": "localGatewayVirtualInterfaceGroupArn",
44082
+ "local_gateway_virtual_interface_group_id": "localGatewayVirtualInterfaceGroupId",
44083
+ },
44084
+ )
44085
+ class LocalGatewayVirtualInterfaceGroupReference:
44086
+ def __init__(
44087
+ self,
44088
+ *,
44089
+ local_gateway_virtual_interface_group_arn: builtins.str,
44090
+ local_gateway_virtual_interface_group_id: builtins.str,
44091
+ ) -> None:
44092
+ '''A reference to a LocalGatewayVirtualInterfaceGroup resource.
44093
+
44094
+ :param local_gateway_virtual_interface_group_arn: The ARN of the LocalGatewayVirtualInterfaceGroup resource.
44095
+ :param local_gateway_virtual_interface_group_id: The LocalGatewayVirtualInterfaceGroupId of the LocalGatewayVirtualInterfaceGroup resource.
44096
+
44097
+ :exampleMetadata: fixture=_generated
44098
+
44099
+ Example::
44100
+
44101
+ # The code below shows an example of how to instantiate this type.
44102
+ # The values are placeholders you should change.
44103
+ from aws_cdk import aws_ec2 as ec2
44104
+
44105
+ local_gateway_virtual_interface_group_reference = ec2.LocalGatewayVirtualInterfaceGroupReference(
44106
+ local_gateway_virtual_interface_group_arn="localGatewayVirtualInterfaceGroupArn",
44107
+ local_gateway_virtual_interface_group_id="localGatewayVirtualInterfaceGroupId"
44108
+ )
44109
+ '''
44110
+ if __debug__:
44111
+ type_hints = typing.get_type_hints(_typecheckingstub__c5749867b83865efb222663d0629d4ad2212132a3d659cf6e5b6eefb44fdc1b9)
44112
+ 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"])
44113
+ 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"])
44114
+ self._values: typing.Dict[builtins.str, typing.Any] = {
44115
+ "local_gateway_virtual_interface_group_arn": local_gateway_virtual_interface_group_arn,
44116
+ "local_gateway_virtual_interface_group_id": local_gateway_virtual_interface_group_id,
44117
+ }
44118
+
44119
+ @builtins.property
44120
+ def local_gateway_virtual_interface_group_arn(self) -> builtins.str:
44121
+ '''The ARN of the LocalGatewayVirtualInterfaceGroup resource.'''
44122
+ result = self._values.get("local_gateway_virtual_interface_group_arn")
44123
+ assert result is not None, "Required property 'local_gateway_virtual_interface_group_arn' is missing"
44124
+ return typing.cast(builtins.str, result)
44125
+
44126
+ @builtins.property
44127
+ def local_gateway_virtual_interface_group_id(self) -> builtins.str:
44128
+ '''The LocalGatewayVirtualInterfaceGroupId of the LocalGatewayVirtualInterfaceGroup resource.'''
44129
+ result = self._values.get("local_gateway_virtual_interface_group_id")
44130
+ assert result is not None, "Required property 'local_gateway_virtual_interface_group_id' is missing"
44131
+ return typing.cast(builtins.str, result)
44132
+
44133
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
44134
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
44135
+
44136
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
44137
+ return not (rhs == self)
44138
+
44139
+ def __repr__(self) -> str:
44140
+ return "LocalGatewayVirtualInterfaceGroupReference(%s)" % ", ".join(
44141
+ k + "=" + repr(v) for k, v in self._values.items()
44142
+ )
44143
+
44144
+
44145
+ @jsii.data_type(
44146
+ jsii_type="aws-cdk-lib.aws_ec2.LocalGatewayVirtualInterfaceReference",
44147
+ jsii_struct_bases=[],
44148
+ name_mapping={
44149
+ "local_gateway_virtual_interface_id": "localGatewayVirtualInterfaceId",
44150
+ },
44151
+ )
44152
+ class LocalGatewayVirtualInterfaceReference:
44153
+ def __init__(self, *, local_gateway_virtual_interface_id: builtins.str) -> None:
44154
+ '''A reference to a LocalGatewayVirtualInterface resource.
44155
+
44156
+ :param local_gateway_virtual_interface_id: The LocalGatewayVirtualInterfaceId of the LocalGatewayVirtualInterface resource.
44157
+
44158
+ :exampleMetadata: fixture=_generated
44159
+
44160
+ Example::
44161
+
44162
+ # The code below shows an example of how to instantiate this type.
44163
+ # The values are placeholders you should change.
44164
+ from aws_cdk import aws_ec2 as ec2
44165
+
44166
+ local_gateway_virtual_interface_reference = ec2.LocalGatewayVirtualInterfaceReference(
44167
+ local_gateway_virtual_interface_id="localGatewayVirtualInterfaceId"
44168
+ )
44169
+ '''
44170
+ if __debug__:
44171
+ type_hints = typing.get_type_hints(_typecheckingstub__370c12dc1c7162c4f581d58e74af3136efcbc6bf0ba1e90bcab50deb09c4733f)
44172
+ check_type(argname="argument local_gateway_virtual_interface_id", value=local_gateway_virtual_interface_id, expected_type=type_hints["local_gateway_virtual_interface_id"])
44173
+ self._values: typing.Dict[builtins.str, typing.Any] = {
44174
+ "local_gateway_virtual_interface_id": local_gateway_virtual_interface_id,
44175
+ }
44176
+
44177
+ @builtins.property
44178
+ def local_gateway_virtual_interface_id(self) -> builtins.str:
44179
+ '''The LocalGatewayVirtualInterfaceId of the LocalGatewayVirtualInterface resource.'''
44180
+ result = self._values.get("local_gateway_virtual_interface_id")
44181
+ assert result is not None, "Required property 'local_gateway_virtual_interface_id' is missing"
44182
+ return typing.cast(builtins.str, result)
44183
+
44184
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
44185
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
44186
+
44187
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
44188
+ return not (rhs == self)
44189
+
44190
+ def __repr__(self) -> str:
44191
+ return "LocalGatewayVirtualInterfaceReference(%s)" % ", ".join(
44192
+ k + "=" + repr(v) for k, v in self._values.items()
44193
+ )
44194
+
44195
+
44196
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.LocalStorage")
44197
+ class LocalStorage(enum.Enum):
44198
+ '''Local storage support requirements for EC2 instances.
44199
+
44200
+ Controls whether selected instance types must, may, or must not
44201
+ include directly attached local storage (instance store).
44202
+
44203
+ :exampleMetadata: infused
44204
+
44205
+ Example::
44206
+
44207
+ # infrastructure_role: iam.Role
44208
+ # instance_profile: iam.InstanceProfile
44209
+ # vpc: ec2.Vpc
44210
+
44211
+
44212
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
44213
+ infrastructure_role=infrastructure_role,
44214
+ ec2_instance_profile=instance_profile,
44215
+ subnets=vpc.private_subnets,
44216
+ instance_requirements=ec2.InstanceRequirementsConfig(
44217
+ # Required: CPU and memory constraints
44218
+ v_cpu_count_min=2,
44219
+ v_cpu_count_max=8,
44220
+ memory_min=Size.gibibytes(4),
44221
+ memory_max=Size.gibibytes(32),
44222
+
44223
+ # CPU preferences
44224
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
44225
+ instance_generations=[ec2.InstanceGeneration.CURRENT],
44226
+
44227
+ # Instance type filtering
44228
+ allowed_instance_types=["m5.*", "c5.*"],
44229
+
44230
+ # Performance characteristics
44231
+ burstable_performance=ec2.BurstablePerformance.EXCLUDED,
44232
+ bare_metal=ec2.BareMetal.EXCLUDED,
44233
+
44234
+ # Accelerator requirements (for ML/AI workloads)
44235
+ accelerator_types=[ec2.AcceleratorType.GPU],
44236
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
44237
+ accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
44238
+ accelerator_count_min=1,
44239
+
44240
+ # Storage requirements
44241
+ local_storage=ec2.LocalStorage.REQUIRED,
44242
+ local_storage_types=[ec2.LocalStorageType.SSD],
44243
+ total_local_storage_gBMin=100,
44244
+
44245
+ # Network requirements
44246
+ network_interface_count_min=2,
44247
+ network_bandwidth_gbps_min=10,
44248
+
44249
+ # Cost optimization
44250
+ on_demand_max_price_percentage_over_lowest_price=10
44251
+ )
44252
+ )
44253
+ '''
44254
+
44255
+ INCLUDED = "INCLUDED"
44256
+ '''Instance types with local storage are allowed, but types without local storage may also be selected.'''
44257
+ REQUIRED = "REQUIRED"
44258
+ '''Only instance types with local storage are allowed.
44259
+
44260
+ Types without local storage will be excluded.
44261
+ '''
44262
+ EXCLUDED = "EXCLUDED"
44263
+ '''Instance types with local storage are disallowed.
44264
+
44265
+ Only types without local storage may be selected.
44266
+ '''
44267
+
44268
+
44269
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.LocalStorageType")
44270
+ class LocalStorageType(enum.Enum):
44271
+ '''Types of local storage available for EC2 instances.
44272
+
44273
+ Specifies the physical medium used for local (instance store) storage.
44274
+
44275
+ :exampleMetadata: infused
44276
+
44277
+ Example::
44278
+
44279
+ # infrastructure_role: iam.Role
44280
+ # instance_profile: iam.InstanceProfile
44281
+ # vpc: ec2.Vpc
44282
+
44283
+
44284
+ mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
44285
+ infrastructure_role=infrastructure_role,
44286
+ ec2_instance_profile=instance_profile,
44287
+ subnets=vpc.private_subnets,
44288
+ instance_requirements=ec2.InstanceRequirementsConfig(
44289
+ # Required: CPU and memory constraints
44290
+ v_cpu_count_min=2,
44291
+ v_cpu_count_max=8,
44292
+ memory_min=Size.gibibytes(4),
44293
+ memory_max=Size.gibibytes(32),
44294
+
44295
+ # CPU preferences
44296
+ cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
44297
+ instance_generations=[ec2.InstanceGeneration.CURRENT],
44298
+
44299
+ # Instance type filtering
44300
+ allowed_instance_types=["m5.*", "c5.*"],
44301
+
44302
+ # Performance characteristics
44303
+ burstable_performance=ec2.BurstablePerformance.EXCLUDED,
44304
+ bare_metal=ec2.BareMetal.EXCLUDED,
44305
+
44306
+ # Accelerator requirements (for ML/AI workloads)
44307
+ accelerator_types=[ec2.AcceleratorType.GPU],
44308
+ accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
44309
+ accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
44310
+ accelerator_count_min=1,
44311
+
44312
+ # Storage requirements
44313
+ local_storage=ec2.LocalStorage.REQUIRED,
44314
+ local_storage_types=[ec2.LocalStorageType.SSD],
44315
+ total_local_storage_gBMin=100,
44316
+
44317
+ # Network requirements
44318
+ network_interface_count_min=2,
44319
+ network_bandwidth_gbps_min=10,
44320
+
44321
+ # Cost optimization
44322
+ on_demand_max_price_percentage_over_lowest_price=10
44323
+ )
44324
+ )
44325
+ '''
44326
+
44327
+ HDD = "HDD"
44328
+ '''Hard disk drive storage.'''
44329
+ SSD = "SSD"
44330
+ '''Solid state drive storage.'''
44331
+
44332
+
42449
44333
  @jsii.data_type(
42450
44334
  jsii_type="aws-cdk-lib.aws_ec2.LocationPackageOptions",
42451
44335
  jsii_struct_bases=[],
@@ -52982,6 +54866,7 @@ class Vpc(
52982
54866
  client_login_banner: typing.Optional[builtins.str] = None,
52983
54867
  client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
52984
54868
  description: typing.Optional[builtins.str] = None,
54869
+ disconnect_on_session_timeout: typing.Optional[builtins.bool] = None,
52985
54870
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
52986
54871
  logging: typing.Optional[builtins.bool] = None,
52987
54872
  log_group: typing.Optional[_ILogGroup_3c4fa718] = None,
@@ -53006,6 +54891,7 @@ class Vpc(
53006
54891
  :param client_login_banner: Customizable text that will be displayed in a banner on AWS provided clients when a VPN session is established. UTF-8 encoded characters only. Maximum of 1400 characters. Default: - no banner is presented to the client
53007
54892
  :param client_route_enforcement_options: Options for Client Route Enforcement. Client Route Enforcement is a feature of Client VPN that helps enforce administrator defined routes on devices connected through the VPN. This feature helps improve your security posture by ensuring that network traffic originating from a connected client is not inadvertently sent outside the VPN tunnel. Default: undefined - AWS Client VPN default setting is disable client route enforcement
53008
54893
  :param description: A brief description of the Client VPN endpoint. Default: - no description
54894
+ :param disconnect_on_session_timeout: Indicates whether the client VPN session is disconnected after the maximum ``sessionTimeout`` is reached. If ``true``, users are prompted to reconnect client VPN. If ``false``, client VPN attempts to reconnect automatically. Default: undefined - AWS Client VPN default is true
53009
54895
  :param dns_servers: Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. Default: - use the DNS address configured on the device
53010
54896
  :param logging: Whether to enable connections logging. Default: true
53011
54897
  :param log_group: A CloudWatch Logs log group for connection logging. Default: - a new group is created
@@ -53031,6 +54917,7 @@ class Vpc(
53031
54917
  client_login_banner=client_login_banner,
53032
54918
  client_route_enforcement_options=client_route_enforcement_options,
53033
54919
  description=description,
54920
+ disconnect_on_session_timeout=disconnect_on_session_timeout,
53034
54921
  dns_servers=dns_servers,
53035
54922
  logging=logging,
53036
54923
  log_group=log_group,
@@ -61947,10 +63834,10 @@ class CfnEC2Fleet(
61947
63834
 
61948
63835
  :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
63836
  :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.
63837
+ :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
63838
  :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
63839
  :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
63840
+ :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
63841
  :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
63842
 
61956
63843
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ebsblockdevice.html
@@ -62040,7 +63927,7 @@ class CfnEC2Fleet(
62040
63927
 
62041
63928
  The following are the supported values for each volume type:
62042
63929
 
62043
- - ``gp3`` : 3,000 - 16,000 IOPS
63930
+ - ``gp3`` : 3,000 - 80,000 IOPS
62044
63931
  - ``io1`` : 100 - 64,000 IOPS
62045
63932
  - ``io2`` : 100 - 256,000 IOPS
62046
63933
 
@@ -62081,7 +63968,8 @@ class CfnEC2Fleet(
62081
63968
 
62082
63969
  The following are the supported sizes for each volume type:
62083
63970
 
62084
- - ``gp2`` and ``gp3`` : 1 - 16,384 GiB
63971
+ - ``gp2`` : 1 - 16,384 GiB
63972
+ - ``gp3`` : 1 - 65,536 GiB
62085
63973
  - ``io1`` : 4 - 16,384 GiB
62086
63974
  - ``io2`` : 4 - 65,536 GiB
62087
63975
  - ``st1`` and ``sc1`` : 125 - 16,384 GiB
@@ -73746,12 +75634,12 @@ class CfnLaunchTemplate(
73746
75634
 
73747
75635
  :param delete_on_termination: Indicates whether the EBS volume is deleted on instance termination.
73748
75636
  :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.
75637
+ :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
75638
  :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
75639
  :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.
75640
+ :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
75641
  :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
75642
+ :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
75643
  :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
75644
 
73757
75645
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ebs.html
@@ -73838,7 +75726,7 @@ class CfnLaunchTemplate(
73838
75726
 
73839
75727
  The following are the supported values for each volume type:
73840
75728
 
73841
- - ``gp3`` : 3,000 - 16,000 IOPS
75729
+ - ``gp3`` : 3,000 - 80,000 IOPS
73842
75730
  - ``io1`` : 100 - 64,000 IOPS
73843
75731
  - ``io2`` : 100 - 256,000 IOPS
73844
75732
 
@@ -73871,9 +75759,9 @@ class CfnLaunchTemplate(
73871
75759
 
73872
75760
  @builtins.property
73873
75761
  def throughput(self) -> typing.Optional[jsii.Number]:
73874
- '''The throughput to provision for a ``gp3`` volume, with a maximum of 1,000 MiB/s.
75762
+ '''The throughput to provision for a ``gp3`` volume, with a maximum of 2,000 MiB/s.
73875
75763
 
73876
- Valid Range: Minimum value of 125. Maximum value of 1000.
75764
+ Valid Range: Minimum value of 125. Maximum value of 2,000.
73877
75765
 
73878
75766
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ebs.html#cfn-ec2-launchtemplate-ebs-throughput
73879
75767
  '''
@@ -73911,7 +75799,8 @@ class CfnLaunchTemplate(
73911
75799
 
73912
75800
  You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type:
73913
75801
 
73914
- - ``gp2`` and ``gp3`` : 1 - 16,384 GiB
75802
+ - ``gp2`` : 1 - 16,384 GiB
75803
+ - ``gp3`` : 1 - 65,536 GiB
73915
75804
  - ``io1`` : 4 - 16,384 GiB
73916
75805
  - ``io2`` : 4 - 65,536 GiB
73917
75806
  - ``st1`` and ``sc1`` : 125 - 16,384 GiB
@@ -79021,6 +80910,555 @@ class CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation(
79021
80910
  jsii.set(self, "tagsRaw", value) # pyright: ignore[reportArgumentType]
79022
80911
 
79023
80912
 
80913
+ @jsii.implements(_IInspectable_c2943556, ILocalGatewayVirtualInterfaceRef, _ITaggableV2_4e6798f8)
80914
+ class CfnLocalGatewayVirtualInterface(
80915
+ _CfnResource_9df397a6,
80916
+ metaclass=jsii.JSIIMeta,
80917
+ jsii_type="aws-cdk-lib.aws_ec2.CfnLocalGatewayVirtualInterface",
80918
+ ):
80919
+ '''Describes a local gateway virtual interface.
80920
+
80921
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html
80922
+ :cloudformationResource: AWS::EC2::LocalGatewayVirtualInterface
80923
+ :exampleMetadata: fixture=_generated
80924
+
80925
+ Example::
80926
+
80927
+ # The code below shows an example of how to instantiate this type.
80928
+ # The values are placeholders you should change.
80929
+ from aws_cdk import aws_ec2 as ec2
80930
+
80931
+ cfn_local_gateway_virtual_interface = ec2.CfnLocalGatewayVirtualInterface(self, "MyCfnLocalGatewayVirtualInterface",
80932
+ local_address="localAddress",
80933
+ local_gateway_virtual_interface_group_id="localGatewayVirtualInterfaceGroupId",
80934
+ outpost_lag_id="outpostLagId",
80935
+ peer_address="peerAddress",
80936
+ vlan=123,
80937
+
80938
+ # the properties below are optional
80939
+ peer_bgp_asn=123,
80940
+ peer_bgp_asn_extended=123,
80941
+ tags=[CfnTag(
80942
+ key="key",
80943
+ value="value"
80944
+ )]
80945
+ )
80946
+ '''
80947
+
80948
+ def __init__(
80949
+ self,
80950
+ scope: _constructs_77d1e7e8.Construct,
80951
+ id: builtins.str,
80952
+ *,
80953
+ local_address: builtins.str,
80954
+ local_gateway_virtual_interface_group_id: builtins.str,
80955
+ outpost_lag_id: builtins.str,
80956
+ peer_address: builtins.str,
80957
+ vlan: jsii.Number,
80958
+ peer_bgp_asn: typing.Optional[jsii.Number] = None,
80959
+ peer_bgp_asn_extended: typing.Optional[jsii.Number] = None,
80960
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
80961
+ ) -> None:
80962
+ '''
80963
+ :param scope: Scope in which this resource is defined.
80964
+ :param id: Construct identifier for this resource (unique in its scope).
80965
+ :param local_address: The local address.
80966
+ :param local_gateway_virtual_interface_group_id: The ID of the local gateway virtual interface group.
80967
+ :param outpost_lag_id: The Outpost LAG ID.
80968
+ :param peer_address: The peer address.
80969
+ :param vlan: The ID of the VLAN.
80970
+ :param peer_bgp_asn: The peer BGP ASN.
80971
+ :param peer_bgp_asn_extended: The extended 32-bit ASN of the BGP peer for use with larger ASN values.
80972
+ :param tags: The tags assigned to the virtual interface.
80973
+ '''
80974
+ if __debug__:
80975
+ type_hints = typing.get_type_hints(_typecheckingstub__2aa88d11229e60744af7610169f28b3d5625cb154fd34b95efb791e8bfccfc63)
80976
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
80977
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
80978
+ props = CfnLocalGatewayVirtualInterfaceProps(
80979
+ local_address=local_address,
80980
+ local_gateway_virtual_interface_group_id=local_gateway_virtual_interface_group_id,
80981
+ outpost_lag_id=outpost_lag_id,
80982
+ peer_address=peer_address,
80983
+ vlan=vlan,
80984
+ peer_bgp_asn=peer_bgp_asn,
80985
+ peer_bgp_asn_extended=peer_bgp_asn_extended,
80986
+ tags=tags,
80987
+ )
80988
+
80989
+ jsii.create(self.__class__, self, [scope, id, props])
80990
+
80991
+ @jsii.member(jsii_name="fromLocalGatewayVirtualInterfaceId")
80992
+ @builtins.classmethod
80993
+ def from_local_gateway_virtual_interface_id(
80994
+ cls,
80995
+ scope: _constructs_77d1e7e8.Construct,
80996
+ id: builtins.str,
80997
+ local_gateway_virtual_interface_id: builtins.str,
80998
+ ) -> ILocalGatewayVirtualInterfaceRef:
80999
+ '''Creates a new ILocalGatewayVirtualInterfaceRef from a localGatewayVirtualInterfaceId.
81000
+
81001
+ :param scope: -
81002
+ :param id: -
81003
+ :param local_gateway_virtual_interface_id: -
81004
+ '''
81005
+ if __debug__:
81006
+ type_hints = typing.get_type_hints(_typecheckingstub__7e3e16f72affac0d04131f323309fd5617e7cabcdedcd19ac8ade915c112fa06)
81007
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
81008
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
81009
+ check_type(argname="argument local_gateway_virtual_interface_id", value=local_gateway_virtual_interface_id, expected_type=type_hints["local_gateway_virtual_interface_id"])
81010
+ return typing.cast(ILocalGatewayVirtualInterfaceRef, jsii.sinvoke(cls, "fromLocalGatewayVirtualInterfaceId", [scope, id, local_gateway_virtual_interface_id]))
81011
+
81012
+ @jsii.member(jsii_name="inspect")
81013
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
81014
+ '''Examines the CloudFormation resource and discloses attributes.
81015
+
81016
+ :param inspector: tree inspector to collect and process attributes.
81017
+ '''
81018
+ if __debug__:
81019
+ type_hints = typing.get_type_hints(_typecheckingstub__94977590a9f1d2767ea0830e9b759c542b741cd7dac530ebefe8f70c31670444)
81020
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
81021
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
81022
+
81023
+ @jsii.member(jsii_name="renderProperties")
81024
+ def _render_properties(
81025
+ self,
81026
+ props: typing.Mapping[builtins.str, typing.Any],
81027
+ ) -> typing.Mapping[builtins.str, typing.Any]:
81028
+ '''
81029
+ :param props: -
81030
+ '''
81031
+ if __debug__:
81032
+ type_hints = typing.get_type_hints(_typecheckingstub__095a3726e61c66bed12ad64205be51561583ad09436d79a570b9239072336539)
81033
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
81034
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
81035
+
81036
+ @jsii.python.classproperty
81037
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
81038
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
81039
+ '''The CloudFormation resource type name for this resource class.'''
81040
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
81041
+
81042
+ @builtins.property
81043
+ @jsii.member(jsii_name="attrConfigurationState")
81044
+ def attr_configuration_state(self) -> builtins.str:
81045
+ '''The current state of the local gateway virtual interface.
81046
+
81047
+ :cloudformationAttribute: ConfigurationState
81048
+ '''
81049
+ return typing.cast(builtins.str, jsii.get(self, "attrConfigurationState"))
81050
+
81051
+ @builtins.property
81052
+ @jsii.member(jsii_name="attrLocalBgpAsn")
81053
+ def attr_local_bgp_asn(self) -> jsii.Number:
81054
+ '''The Border Gateway Protocol (BGP) Autonomous System Number (ASN) of the local gateway.
81055
+
81056
+ :cloudformationAttribute: LocalBgpAsn
81057
+ '''
81058
+ return typing.cast(jsii.Number, jsii.get(self, "attrLocalBgpAsn"))
81059
+
81060
+ @builtins.property
81061
+ @jsii.member(jsii_name="attrLocalGatewayId")
81062
+ def attr_local_gateway_id(self) -> builtins.str:
81063
+ '''The ID of the local gateway.
81064
+
81065
+ :cloudformationAttribute: LocalGatewayId
81066
+ '''
81067
+ return typing.cast(builtins.str, jsii.get(self, "attrLocalGatewayId"))
81068
+
81069
+ @builtins.property
81070
+ @jsii.member(jsii_name="attrLocalGatewayVirtualInterfaceId")
81071
+ def attr_local_gateway_virtual_interface_id(self) -> builtins.str:
81072
+ '''The ID of the virtual interface.
81073
+
81074
+ :cloudformationAttribute: LocalGatewayVirtualInterfaceId
81075
+ '''
81076
+ return typing.cast(builtins.str, jsii.get(self, "attrLocalGatewayVirtualInterfaceId"))
81077
+
81078
+ @builtins.property
81079
+ @jsii.member(jsii_name="attrOwnerId")
81080
+ def attr_owner_id(self) -> builtins.str:
81081
+ '''The ID of the AWS account that owns the local gateway virtual interface.
81082
+
81083
+ :cloudformationAttribute: OwnerId
81084
+ '''
81085
+ return typing.cast(builtins.str, jsii.get(self, "attrOwnerId"))
81086
+
81087
+ @builtins.property
81088
+ @jsii.member(jsii_name="cdkTagManager")
81089
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
81090
+ '''Tag Manager which manages the tags for this resource.'''
81091
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
81092
+
81093
+ @builtins.property
81094
+ @jsii.member(jsii_name="cfnProperties")
81095
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
81096
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
81097
+
81098
+ @builtins.property
81099
+ @jsii.member(jsii_name="localGatewayVirtualInterfaceRef")
81100
+ def local_gateway_virtual_interface_ref(
81101
+ self,
81102
+ ) -> LocalGatewayVirtualInterfaceReference:
81103
+ '''A reference to a LocalGatewayVirtualInterface resource.'''
81104
+ return typing.cast(LocalGatewayVirtualInterfaceReference, jsii.get(self, "localGatewayVirtualInterfaceRef"))
81105
+
81106
+ @builtins.property
81107
+ @jsii.member(jsii_name="localAddress")
81108
+ def local_address(self) -> builtins.str:
81109
+ '''The local address.'''
81110
+ return typing.cast(builtins.str, jsii.get(self, "localAddress"))
81111
+
81112
+ @local_address.setter
81113
+ def local_address(self, value: builtins.str) -> None:
81114
+ if __debug__:
81115
+ type_hints = typing.get_type_hints(_typecheckingstub__aea0d3e37c3a8dd56ec78450277d740b869a461b084be05fe5b483cc3069cf1d)
81116
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81117
+ jsii.set(self, "localAddress", value) # pyright: ignore[reportArgumentType]
81118
+
81119
+ @builtins.property
81120
+ @jsii.member(jsii_name="localGatewayVirtualInterfaceGroupId")
81121
+ def local_gateway_virtual_interface_group_id(self) -> builtins.str:
81122
+ '''The ID of the local gateway virtual interface group.'''
81123
+ return typing.cast(builtins.str, jsii.get(self, "localGatewayVirtualInterfaceGroupId"))
81124
+
81125
+ @local_gateway_virtual_interface_group_id.setter
81126
+ def local_gateway_virtual_interface_group_id(self, value: builtins.str) -> None:
81127
+ if __debug__:
81128
+ type_hints = typing.get_type_hints(_typecheckingstub__6022f5909fe462f9f3785e9d5d0bfec37b4fbdc32098ff0ed5b117e2095af317)
81129
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81130
+ jsii.set(self, "localGatewayVirtualInterfaceGroupId", value) # pyright: ignore[reportArgumentType]
81131
+
81132
+ @builtins.property
81133
+ @jsii.member(jsii_name="outpostLagId")
81134
+ def outpost_lag_id(self) -> builtins.str:
81135
+ '''The Outpost LAG ID.'''
81136
+ return typing.cast(builtins.str, jsii.get(self, "outpostLagId"))
81137
+
81138
+ @outpost_lag_id.setter
81139
+ def outpost_lag_id(self, value: builtins.str) -> None:
81140
+ if __debug__:
81141
+ type_hints = typing.get_type_hints(_typecheckingstub__d9e0940225d24f5768baac171eb4d7a02583d63a1dbff31fafd812a6612cf377)
81142
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81143
+ jsii.set(self, "outpostLagId", value) # pyright: ignore[reportArgumentType]
81144
+
81145
+ @builtins.property
81146
+ @jsii.member(jsii_name="peerAddress")
81147
+ def peer_address(self) -> builtins.str:
81148
+ '''The peer address.'''
81149
+ return typing.cast(builtins.str, jsii.get(self, "peerAddress"))
81150
+
81151
+ @peer_address.setter
81152
+ def peer_address(self, value: builtins.str) -> None:
81153
+ if __debug__:
81154
+ type_hints = typing.get_type_hints(_typecheckingstub__c55a99d7a9d8ce108f6383103a39169fa8ff7dbefa5fa9da14d3fdc18b33f56d)
81155
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81156
+ jsii.set(self, "peerAddress", value) # pyright: ignore[reportArgumentType]
81157
+
81158
+ @builtins.property
81159
+ @jsii.member(jsii_name="vlan")
81160
+ def vlan(self) -> jsii.Number:
81161
+ '''The ID of the VLAN.'''
81162
+ return typing.cast(jsii.Number, jsii.get(self, "vlan"))
81163
+
81164
+ @vlan.setter
81165
+ def vlan(self, value: jsii.Number) -> None:
81166
+ if __debug__:
81167
+ type_hints = typing.get_type_hints(_typecheckingstub__876a548873295da57ca1d79ac22c64da6f6bb90a671ef5e7e35327fa50455921)
81168
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81169
+ jsii.set(self, "vlan", value) # pyright: ignore[reportArgumentType]
81170
+
81171
+ @builtins.property
81172
+ @jsii.member(jsii_name="peerBgpAsn")
81173
+ def peer_bgp_asn(self) -> typing.Optional[jsii.Number]:
81174
+ '''The peer BGP ASN.'''
81175
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "peerBgpAsn"))
81176
+
81177
+ @peer_bgp_asn.setter
81178
+ def peer_bgp_asn(self, value: typing.Optional[jsii.Number]) -> None:
81179
+ if __debug__:
81180
+ type_hints = typing.get_type_hints(_typecheckingstub__0c59092a20afba0573e2b1509528b6946b674912bc181e34599b6b4caf2d6fc6)
81181
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81182
+ jsii.set(self, "peerBgpAsn", value) # pyright: ignore[reportArgumentType]
81183
+
81184
+ @builtins.property
81185
+ @jsii.member(jsii_name="peerBgpAsnExtended")
81186
+ def peer_bgp_asn_extended(self) -> typing.Optional[jsii.Number]:
81187
+ '''The extended 32-bit ASN of the BGP peer for use with larger ASN values.'''
81188
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "peerBgpAsnExtended"))
81189
+
81190
+ @peer_bgp_asn_extended.setter
81191
+ def peer_bgp_asn_extended(self, value: typing.Optional[jsii.Number]) -> None:
81192
+ if __debug__:
81193
+ type_hints = typing.get_type_hints(_typecheckingstub__f3cce6d05d44bd0efd48f94e34176bb44563507d53cdce3a678259de4fe36b18)
81194
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81195
+ jsii.set(self, "peerBgpAsnExtended", value) # pyright: ignore[reportArgumentType]
81196
+
81197
+ @builtins.property
81198
+ @jsii.member(jsii_name="tags")
81199
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
81200
+ '''The tags assigned to the virtual interface.'''
81201
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
81202
+
81203
+ @tags.setter
81204
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
81205
+ if __debug__:
81206
+ type_hints = typing.get_type_hints(_typecheckingstub__eb087b9b572ca18afe9a40645f05ba591d2e3255ff50d614f2090fe641563ff1)
81207
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81208
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
81209
+
81210
+
81211
+ @jsii.implements(_IInspectable_c2943556, ILocalGatewayVirtualInterfaceGroupRef, _ITaggableV2_4e6798f8)
81212
+ class CfnLocalGatewayVirtualInterfaceGroup(
81213
+ _CfnResource_9df397a6,
81214
+ metaclass=jsii.JSIIMeta,
81215
+ jsii_type="aws-cdk-lib.aws_ec2.CfnLocalGatewayVirtualInterfaceGroup",
81216
+ ):
81217
+ '''Describes a local gateway virtual interface group.
81218
+
81219
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html
81220
+ :cloudformationResource: AWS::EC2::LocalGatewayVirtualInterfaceGroup
81221
+ :exampleMetadata: fixture=_generated
81222
+
81223
+ Example::
81224
+
81225
+ # The code below shows an example of how to instantiate this type.
81226
+ # The values are placeholders you should change.
81227
+ from aws_cdk import aws_ec2 as ec2
81228
+
81229
+ cfn_local_gateway_virtual_interface_group = ec2.CfnLocalGatewayVirtualInterfaceGroup(self, "MyCfnLocalGatewayVirtualInterfaceGroup",
81230
+ local_gateway_id="localGatewayId",
81231
+
81232
+ # the properties below are optional
81233
+ local_bgp_asn=123,
81234
+ local_bgp_asn_extended=123,
81235
+ tags=[CfnTag(
81236
+ key="key",
81237
+ value="value"
81238
+ )]
81239
+ )
81240
+ '''
81241
+
81242
+ def __init__(
81243
+ self,
81244
+ scope: _constructs_77d1e7e8.Construct,
81245
+ id: builtins.str,
81246
+ *,
81247
+ local_gateway_id: builtins.str,
81248
+ local_bgp_asn: typing.Optional[jsii.Number] = None,
81249
+ local_bgp_asn_extended: typing.Optional[jsii.Number] = None,
81250
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
81251
+ ) -> None:
81252
+ '''
81253
+ :param scope: Scope in which this resource is defined.
81254
+ :param id: Construct identifier for this resource (unique in its scope).
81255
+ :param local_gateway_id: The ID of the local gateway.
81256
+ :param local_bgp_asn: The Autonomous System Number(ASN) for the local Border Gateway Protocol (BGP).
81257
+ :param local_bgp_asn_extended: The extended 32-bit ASN for the local BGP configuration.
81258
+ :param tags: The tags assigned to the virtual interface group.
81259
+ '''
81260
+ if __debug__:
81261
+ type_hints = typing.get_type_hints(_typecheckingstub__f4428e70a4cdbb5cb8cdf0b9a30ee1c62e12bf1982546a8f6fceda85eb1710d8)
81262
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
81263
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
81264
+ props = CfnLocalGatewayVirtualInterfaceGroupProps(
81265
+ local_gateway_id=local_gateway_id,
81266
+ local_bgp_asn=local_bgp_asn,
81267
+ local_bgp_asn_extended=local_bgp_asn_extended,
81268
+ tags=tags,
81269
+ )
81270
+
81271
+ jsii.create(self.__class__, self, [scope, id, props])
81272
+
81273
+ @jsii.member(jsii_name="fromLocalGatewayVirtualInterfaceGroupArn")
81274
+ @builtins.classmethod
81275
+ def from_local_gateway_virtual_interface_group_arn(
81276
+ cls,
81277
+ scope: _constructs_77d1e7e8.Construct,
81278
+ id: builtins.str,
81279
+ arn: builtins.str,
81280
+ ) -> ILocalGatewayVirtualInterfaceGroupRef:
81281
+ '''Creates a new ILocalGatewayVirtualInterfaceGroupRef from an ARN.
81282
+
81283
+ :param scope: -
81284
+ :param id: -
81285
+ :param arn: -
81286
+ '''
81287
+ if __debug__:
81288
+ type_hints = typing.get_type_hints(_typecheckingstub__d5a9b6710adb36dfbe12ad180d73bda56451914c2f050b2f3087ad3bcbc2d6fa)
81289
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
81290
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
81291
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
81292
+ return typing.cast(ILocalGatewayVirtualInterfaceGroupRef, jsii.sinvoke(cls, "fromLocalGatewayVirtualInterfaceGroupArn", [scope, id, arn]))
81293
+
81294
+ @jsii.member(jsii_name="fromLocalGatewayVirtualInterfaceGroupId")
81295
+ @builtins.classmethod
81296
+ def from_local_gateway_virtual_interface_group_id(
81297
+ cls,
81298
+ scope: _constructs_77d1e7e8.Construct,
81299
+ id: builtins.str,
81300
+ local_gateway_virtual_interface_group_id: builtins.str,
81301
+ ) -> ILocalGatewayVirtualInterfaceGroupRef:
81302
+ '''Creates a new ILocalGatewayVirtualInterfaceGroupRef from a localGatewayVirtualInterfaceGroupId.
81303
+
81304
+ :param scope: -
81305
+ :param id: -
81306
+ :param local_gateway_virtual_interface_group_id: -
81307
+ '''
81308
+ if __debug__:
81309
+ type_hints = typing.get_type_hints(_typecheckingstub__6c41061042437440fce590eb8d2e84ca2e31260fbb48f45a79f28c068eb57cf4)
81310
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
81311
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
81312
+ 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"])
81313
+ return typing.cast(ILocalGatewayVirtualInterfaceGroupRef, jsii.sinvoke(cls, "fromLocalGatewayVirtualInterfaceGroupId", [scope, id, local_gateway_virtual_interface_group_id]))
81314
+
81315
+ @jsii.member(jsii_name="inspect")
81316
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
81317
+ '''Examines the CloudFormation resource and discloses attributes.
81318
+
81319
+ :param inspector: tree inspector to collect and process attributes.
81320
+ '''
81321
+ if __debug__:
81322
+ type_hints = typing.get_type_hints(_typecheckingstub__2cb275542481a92dcc0981a31e5b84f30303479387a077892f0ce93929c8683e)
81323
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
81324
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
81325
+
81326
+ @jsii.member(jsii_name="renderProperties")
81327
+ def _render_properties(
81328
+ self,
81329
+ props: typing.Mapping[builtins.str, typing.Any],
81330
+ ) -> typing.Mapping[builtins.str, typing.Any]:
81331
+ '''
81332
+ :param props: -
81333
+ '''
81334
+ if __debug__:
81335
+ type_hints = typing.get_type_hints(_typecheckingstub__18212f2fc4e751f496b0f978560864ecefabe558ebf8ffcccfafbd83fcc076f9)
81336
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
81337
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
81338
+
81339
+ @jsii.python.classproperty
81340
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
81341
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
81342
+ '''The CloudFormation resource type name for this resource class.'''
81343
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
81344
+
81345
+ @builtins.property
81346
+ @jsii.member(jsii_name="attrConfigurationState")
81347
+ def attr_configuration_state(self) -> builtins.str:
81348
+ '''The current state of the local gateway virtual interface group.
81349
+
81350
+ :cloudformationAttribute: ConfigurationState
81351
+ '''
81352
+ return typing.cast(builtins.str, jsii.get(self, "attrConfigurationState"))
81353
+
81354
+ @builtins.property
81355
+ @jsii.member(jsii_name="attrLocalGatewayVirtualInterfaceGroupArn")
81356
+ def attr_local_gateway_virtual_interface_group_arn(self) -> builtins.str:
81357
+ '''The Amazon Resource Number (ARN) of the local gateway virtual interface group.
81358
+
81359
+ :cloudformationAttribute: LocalGatewayVirtualInterfaceGroupArn
81360
+ '''
81361
+ return typing.cast(builtins.str, jsii.get(self, "attrLocalGatewayVirtualInterfaceGroupArn"))
81362
+
81363
+ @builtins.property
81364
+ @jsii.member(jsii_name="attrLocalGatewayVirtualInterfaceGroupId")
81365
+ def attr_local_gateway_virtual_interface_group_id(self) -> builtins.str:
81366
+ '''The ID of the virtual interface group.
81367
+
81368
+ :cloudformationAttribute: LocalGatewayVirtualInterfaceGroupId
81369
+ '''
81370
+ return typing.cast(builtins.str, jsii.get(self, "attrLocalGatewayVirtualInterfaceGroupId"))
81371
+
81372
+ @builtins.property
81373
+ @jsii.member(jsii_name="attrLocalGatewayVirtualInterfaceIds")
81374
+ def attr_local_gateway_virtual_interface_ids(self) -> typing.List[builtins.str]:
81375
+ '''The IDs of the virtual interfaces.
81376
+
81377
+ :cloudformationAttribute: LocalGatewayVirtualInterfaceIds
81378
+ '''
81379
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "attrLocalGatewayVirtualInterfaceIds"))
81380
+
81381
+ @builtins.property
81382
+ @jsii.member(jsii_name="attrOwnerId")
81383
+ def attr_owner_id(self) -> builtins.str:
81384
+ '''The ID of the AWS account that owns the local gateway virtual interface group.
81385
+
81386
+ :cloudformationAttribute: OwnerId
81387
+ '''
81388
+ return typing.cast(builtins.str, jsii.get(self, "attrOwnerId"))
81389
+
81390
+ @builtins.property
81391
+ @jsii.member(jsii_name="cdkTagManager")
81392
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
81393
+ '''Tag Manager which manages the tags for this resource.'''
81394
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
81395
+
81396
+ @builtins.property
81397
+ @jsii.member(jsii_name="cfnProperties")
81398
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
81399
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
81400
+
81401
+ @builtins.property
81402
+ @jsii.member(jsii_name="localGatewayVirtualInterfaceGroupRef")
81403
+ def local_gateway_virtual_interface_group_ref(
81404
+ self,
81405
+ ) -> LocalGatewayVirtualInterfaceGroupReference:
81406
+ '''A reference to a LocalGatewayVirtualInterfaceGroup resource.'''
81407
+ return typing.cast(LocalGatewayVirtualInterfaceGroupReference, jsii.get(self, "localGatewayVirtualInterfaceGroupRef"))
81408
+
81409
+ @builtins.property
81410
+ @jsii.member(jsii_name="localGatewayId")
81411
+ def local_gateway_id(self) -> builtins.str:
81412
+ '''The ID of the local gateway.'''
81413
+ return typing.cast(builtins.str, jsii.get(self, "localGatewayId"))
81414
+
81415
+ @local_gateway_id.setter
81416
+ def local_gateway_id(self, value: builtins.str) -> None:
81417
+ if __debug__:
81418
+ type_hints = typing.get_type_hints(_typecheckingstub__72980886c0b232d5cbf6c82b702ca8e8bad15827fe4b8c5a6125cccfd17a038f)
81419
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81420
+ jsii.set(self, "localGatewayId", value) # pyright: ignore[reportArgumentType]
81421
+
81422
+ @builtins.property
81423
+ @jsii.member(jsii_name="localBgpAsn")
81424
+ def local_bgp_asn(self) -> typing.Optional[jsii.Number]:
81425
+ '''The Autonomous System Number(ASN) for the local Border Gateway Protocol (BGP).'''
81426
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "localBgpAsn"))
81427
+
81428
+ @local_bgp_asn.setter
81429
+ def local_bgp_asn(self, value: typing.Optional[jsii.Number]) -> None:
81430
+ if __debug__:
81431
+ type_hints = typing.get_type_hints(_typecheckingstub__e17efd4cdc854aef38d95618d445b062d3dff94405b26cd2e5bf702d043d63c5)
81432
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81433
+ jsii.set(self, "localBgpAsn", value) # pyright: ignore[reportArgumentType]
81434
+
81435
+ @builtins.property
81436
+ @jsii.member(jsii_name="localBgpAsnExtended")
81437
+ def local_bgp_asn_extended(self) -> typing.Optional[jsii.Number]:
81438
+ '''The extended 32-bit ASN for the local BGP configuration.'''
81439
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "localBgpAsnExtended"))
81440
+
81441
+ @local_bgp_asn_extended.setter
81442
+ def local_bgp_asn_extended(self, value: typing.Optional[jsii.Number]) -> None:
81443
+ if __debug__:
81444
+ type_hints = typing.get_type_hints(_typecheckingstub__451e90a51f0d03f4296d1a4075273832941693edd09aeac29656d7364ee7c634)
81445
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81446
+ jsii.set(self, "localBgpAsnExtended", value) # pyright: ignore[reportArgumentType]
81447
+
81448
+ @builtins.property
81449
+ @jsii.member(jsii_name="tags")
81450
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
81451
+ '''The tags assigned to the virtual interface group.'''
81452
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
81453
+
81454
+ @tags.setter
81455
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
81456
+ if __debug__:
81457
+ type_hints = typing.get_type_hints(_typecheckingstub__c5e51302d318cef13096e5600090018d23258317ba4cb12507e944c98443851e)
81458
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
81459
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
81460
+
81461
+
79024
81462
  @jsii.implements(_IInspectable_c2943556, INatGatewayRef, _ITaggable_36806126)
79025
81463
  class CfnNatGateway(
79026
81464
  _CfnResource_9df397a6,
@@ -90975,9 +93413,9 @@ class CfnSpotFleet(
90975
93413
 
90976
93414
  :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
93415
  :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.
93416
+ :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
93417
  :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
93418
+ :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
93419
  :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
93420
 
90983
93421
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-ebsblockdevice.html
@@ -91060,7 +93498,7 @@ class CfnSpotFleet(
91060
93498
 
91061
93499
  The following are the supported values for each volume type:
91062
93500
 
91063
- - ``gp3`` : 3,000 - 16,000 IOPS
93501
+ - ``gp3`` : 3,000 - 80,000 IOPS
91064
93502
  - ``io1`` : 100 - 64,000 IOPS
91065
93503
  - ``io2`` : 100 - 256,000 IOPS
91066
93504
 
@@ -91090,7 +93528,8 @@ class CfnSpotFleet(
91090
93528
 
91091
93529
  The following are the supported sizes for each volume type:
91092
93530
 
91093
- - ``gp2`` and ``gp3`` : 1 - 16,384 GiB
93531
+ - ``gp2`` : 1 - 16,384 GiB
93532
+ - ``gp3`` : 1 - 65,536 GiB
91094
93533
  - ``io1`` : 4 - 16,384 GiB
91095
93534
  - ``io2`` : 4 - 65,536 GiB
91096
93535
  - ``st1`` and ``sc1`` : 125 - 16,384 GiB
@@ -108548,11 +110987,11 @@ class CfnVolume(
108548
110987
  :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
110988
  :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
110989
  :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.
110990
+ :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
110991
  :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
110992
  :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
110993
  :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
110994
+ :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
110995
  :param snapshot_id: The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.
108557
110996
  :param tags: The tags to apply to the volume during creation.
108558
110997
  :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.
@@ -116873,6 +119312,7 @@ class ClientVpnEndpoint(
116873
119312
  client_login_banner: typing.Optional[builtins.str] = None,
116874
119313
  client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
116875
119314
  description: typing.Optional[builtins.str] = None,
119315
+ disconnect_on_session_timeout: typing.Optional[builtins.bool] = None,
116876
119316
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
116877
119317
  logging: typing.Optional[builtins.bool] = None,
116878
119318
  log_group: typing.Optional[_ILogGroup_3c4fa718] = None,
@@ -116898,6 +119338,7 @@ class ClientVpnEndpoint(
116898
119338
  :param client_login_banner: Customizable text that will be displayed in a banner on AWS provided clients when a VPN session is established. UTF-8 encoded characters only. Maximum of 1400 characters. Default: - no banner is presented to the client
116899
119339
  :param client_route_enforcement_options: Options for Client Route Enforcement. Client Route Enforcement is a feature of Client VPN that helps enforce administrator defined routes on devices connected through the VPN. This feature helps improve your security posture by ensuring that network traffic originating from a connected client is not inadvertently sent outside the VPN tunnel. Default: undefined - AWS Client VPN default setting is disable client route enforcement
116900
119340
  :param description: A brief description of the Client VPN endpoint. Default: - no description
119341
+ :param disconnect_on_session_timeout: Indicates whether the client VPN session is disconnected after the maximum ``sessionTimeout`` is reached. If ``true``, users are prompted to reconnect client VPN. If ``false``, client VPN attempts to reconnect automatically. Default: undefined - AWS Client VPN default is true
116901
119342
  :param dns_servers: Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. Default: - use the DNS address configured on the device
116902
119343
  :param logging: Whether to enable connections logging. Default: true
116903
119344
  :param log_group: A CloudWatch Logs log group for connection logging. Default: - a new group is created
@@ -116925,6 +119366,7 @@ class ClientVpnEndpoint(
116925
119366
  client_login_banner=client_login_banner,
116926
119367
  client_route_enforcement_options=client_route_enforcement_options,
116927
119368
  description=description,
119369
+ disconnect_on_session_timeout=disconnect_on_session_timeout,
116928
119370
  dns_servers=dns_servers,
116929
119371
  logging=logging,
116930
119372
  log_group=log_group,
@@ -117561,6 +120003,9 @@ class PublicSubnet(
117561
120003
 
117562
120004
 
117563
120005
  __all__ = [
120006
+ "AcceleratorManufacturer",
120007
+ "AcceleratorName",
120008
+ "AcceleratorType",
117564
120009
  "AclCidr",
117565
120010
  "AclCidrConfig",
117566
120011
  "AclIcmp",
@@ -117598,10 +120043,12 @@ __all__ = [
117598
120043
  "ApplyCloudFormationInitOptions",
117599
120044
  "AttachInitOptions",
117600
120045
  "AwsIpamProps",
120046
+ "BareMetal",
117601
120047
  "BastionHostLinux",
117602
120048
  "BastionHostLinuxProps",
117603
120049
  "BlockDevice",
117604
120050
  "BlockDeviceVolume",
120051
+ "BurstablePerformance",
117605
120052
  "CapacityReservationFleetReference",
117606
120053
  "CapacityReservationReference",
117607
120054
  "CarrierGatewayReference",
@@ -117673,6 +120120,10 @@ __all__ = [
117673
120120
  "CfnLocalGatewayRouteTableVPCAssociationProps",
117674
120121
  "CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation",
117675
120122
  "CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationProps",
120123
+ "CfnLocalGatewayVirtualInterface",
120124
+ "CfnLocalGatewayVirtualInterfaceGroup",
120125
+ "CfnLocalGatewayVirtualInterfaceGroupProps",
120126
+ "CfnLocalGatewayVirtualInterfaceProps",
117676
120127
  "CfnNatGateway",
117677
120128
  "CfnNatGatewayProps",
117678
120129
  "CfnNetworkAcl",
@@ -117837,6 +120288,7 @@ __all__ = [
117837
120288
  "Connections",
117838
120289
  "ConnectionsProps",
117839
120290
  "CpuCredits",
120291
+ "CpuManufacturer",
117840
120292
  "CreateIpv6CidrBlocksRequest",
117841
120293
  "CustomerGatewayReference",
117842
120294
  "DHCPOptionsReference",
@@ -117924,6 +120376,8 @@ __all__ = [
117924
120376
  "ILocalGatewayRouteTableRef",
117925
120377
  "ILocalGatewayRouteTableVPCAssociationRef",
117926
120378
  "ILocalGatewayRouteTableVirtualInterfaceGroupAssociationRef",
120379
+ "ILocalGatewayVirtualInterfaceGroupRef",
120380
+ "ILocalGatewayVirtualInterfaceRef",
117927
120381
  "IMachineImage",
117928
120382
  "INatGatewayRef",
117929
120383
  "INetworkAcl",
@@ -118041,11 +120495,13 @@ __all__ = [
118041
120495
  "InstanceArchitecture",
118042
120496
  "InstanceClass",
118043
120497
  "InstanceConnectEndpointReference",
120498
+ "InstanceGeneration",
118044
120499
  "InstanceInitiatedShutdownBehavior",
118045
120500
  "InstanceProps",
118046
120501
  "InstanceReference",
118047
120502
  "InstanceRequireImdsv2Aspect",
118048
120503
  "InstanceRequireImdsv2AspectProps",
120504
+ "InstanceRequirementsConfig",
118049
120505
  "InstanceSize",
118050
120506
  "InstanceType",
118051
120507
  "InterfaceVpcEndpoint",
@@ -118081,6 +120537,10 @@ __all__ = [
118081
120537
  "LocalGatewayRouteTableReference",
118082
120538
  "LocalGatewayRouteTableVPCAssociationReference",
118083
120539
  "LocalGatewayRouteTableVirtualInterfaceGroupAssociationReference",
120540
+ "LocalGatewayVirtualInterfaceGroupReference",
120541
+ "LocalGatewayVirtualInterfaceReference",
120542
+ "LocalStorage",
120543
+ "LocalStorageType",
118084
120544
  "LocationPackageOptions",
118085
120545
  "LogFormat",
118086
120546
  "LookupMachineImage",
@@ -118991,6 +121451,30 @@ def _typecheckingstub__b9a8cd9288a52b6663080797430bf0981183639ee7ad7887a7ff932d0
118991
121451
  """Type checking stubs"""
118992
121452
  pass
118993
121453
 
121454
+ def _typecheckingstub__f7ce4c591b68ccf10989a9f20fd3c6f1fc55f0f986e5272574d1a8263ccb9638(
121455
+ *,
121456
+ local_gateway_id: builtins.str,
121457
+ local_bgp_asn: typing.Optional[jsii.Number] = None,
121458
+ local_bgp_asn_extended: typing.Optional[jsii.Number] = None,
121459
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
121460
+ ) -> None:
121461
+ """Type checking stubs"""
121462
+ pass
121463
+
121464
+ def _typecheckingstub__f937f1e5478df1249afd18165f33effb63a12f7ed00b1831a2fbee04cab4c28a(
121465
+ *,
121466
+ local_address: builtins.str,
121467
+ local_gateway_virtual_interface_group_id: builtins.str,
121468
+ outpost_lag_id: builtins.str,
121469
+ peer_address: builtins.str,
121470
+ vlan: jsii.Number,
121471
+ peer_bgp_asn: typing.Optional[jsii.Number] = None,
121472
+ peer_bgp_asn_extended: typing.Optional[jsii.Number] = None,
121473
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
121474
+ ) -> None:
121475
+ """Type checking stubs"""
121476
+ pass
121477
+
118994
121478
  def _typecheckingstub__1aba83edf7a8e3f14e1d4f9ca76c7049f7f7c569d2ffb43bcad65b330ee9a581(
118995
121479
  *,
118996
121480
  allocation_id: typing.Optional[builtins.str] = None,
@@ -119860,6 +122344,7 @@ def _typecheckingstub__73f8593e2e6199f8ae542cff4cbe02f0be09fd9043b8072cbb652d5b0
119860
122344
  client_login_banner: typing.Optional[builtins.str] = None,
119861
122345
  client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
119862
122346
  description: typing.Optional[builtins.str] = None,
122347
+ disconnect_on_session_timeout: typing.Optional[builtins.bool] = None,
119863
122348
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
119864
122349
  logging: typing.Optional[builtins.bool] = None,
119865
122350
  log_group: typing.Optional[_ILogGroup_3c4fa718] = None,
@@ -119886,6 +122371,7 @@ def _typecheckingstub__8e89ba9082e1bc80500c526e8522c5a90e2a91bd17d985f5932611e0b
119886
122371
  client_login_banner: typing.Optional[builtins.str] = None,
119887
122372
  client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
119888
122373
  description: typing.Optional[builtins.str] = None,
122374
+ disconnect_on_session_timeout: typing.Optional[builtins.bool] = None,
119889
122375
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
119890
122376
  logging: typing.Optional[builtins.bool] = None,
119891
122377
  log_group: typing.Optional[_ILogGroup_3c4fa718] = None,
@@ -120400,6 +122886,7 @@ def _typecheckingstub__19cdaa7bec0f733a863944b2be6c76392b1e518714158a913370b8de7
120400
122886
  client_login_banner: typing.Optional[builtins.str] = None,
120401
122887
  client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
120402
122888
  description: typing.Optional[builtins.str] = None,
122889
+ disconnect_on_session_timeout: typing.Optional[builtins.bool] = None,
120403
122890
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
120404
122891
  logging: typing.Optional[builtins.bool] = None,
120405
122892
  log_group: typing.Optional[_ILogGroup_3c4fa718] = None,
@@ -120948,6 +123435,45 @@ def _typecheckingstub__a9326e8778e870d6503548ff3c5ed500440af6b908992d24dc8f76fa8
120948
123435
  """Type checking stubs"""
120949
123436
  pass
120950
123437
 
123438
+ def _typecheckingstub__ec2256eb42c017c1221986108df1dba524eae16d4aaf51d7503ce5b1f919f3cd(
123439
+ *,
123440
+ memory_min: _Size_7b441c34,
123441
+ v_cpu_count_min: jsii.Number,
123442
+ accelerator_count_max: typing.Optional[jsii.Number] = None,
123443
+ accelerator_count_min: typing.Optional[jsii.Number] = None,
123444
+ accelerator_manufacturers: typing.Optional[typing.Sequence[AcceleratorManufacturer]] = None,
123445
+ accelerator_names: typing.Optional[typing.Sequence[AcceleratorName]] = None,
123446
+ accelerator_total_memory_max: typing.Optional[_Size_7b441c34] = None,
123447
+ accelerator_total_memory_min: typing.Optional[_Size_7b441c34] = None,
123448
+ accelerator_types: typing.Optional[typing.Sequence[AcceleratorType]] = None,
123449
+ allowed_instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
123450
+ bare_metal: typing.Optional[BareMetal] = None,
123451
+ baseline_ebs_bandwidth_mbps_max: typing.Optional[jsii.Number] = None,
123452
+ baseline_ebs_bandwidth_mbps_min: typing.Optional[jsii.Number] = None,
123453
+ burstable_performance: typing.Optional[BurstablePerformance] = None,
123454
+ cpu_manufacturers: typing.Optional[typing.Sequence[CpuManufacturer]] = None,
123455
+ excluded_instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
123456
+ instance_generations: typing.Optional[typing.Sequence[InstanceGeneration]] = None,
123457
+ local_storage: typing.Optional[LocalStorage] = None,
123458
+ local_storage_types: typing.Optional[typing.Sequence[LocalStorageType]] = None,
123459
+ max_spot_price_as_percentage_of_optimal_on_demand_price: typing.Optional[jsii.Number] = None,
123460
+ memory_max: typing.Optional[_Size_7b441c34] = None,
123461
+ memory_per_v_cpu_max: typing.Optional[_Size_7b441c34] = None,
123462
+ memory_per_v_cpu_min: typing.Optional[_Size_7b441c34] = None,
123463
+ network_bandwidth_gbps_max: typing.Optional[jsii.Number] = None,
123464
+ network_bandwidth_gbps_min: typing.Optional[jsii.Number] = None,
123465
+ network_interface_count_max: typing.Optional[jsii.Number] = None,
123466
+ network_interface_count_min: typing.Optional[jsii.Number] = None,
123467
+ on_demand_max_price_percentage_over_lowest_price: typing.Optional[jsii.Number] = None,
123468
+ require_hibernate_support: typing.Optional[builtins.bool] = None,
123469
+ spot_max_price_percentage_over_lowest_price: typing.Optional[jsii.Number] = None,
123470
+ total_local_storage_gb_max: typing.Optional[jsii.Number] = None,
123471
+ total_local_storage_gb_min: typing.Optional[jsii.Number] = None,
123472
+ v_cpu_count_max: typing.Optional[jsii.Number] = None,
123473
+ ) -> None:
123474
+ """Type checking stubs"""
123475
+ pass
123476
+
120951
123477
  def _typecheckingstub__f9e12e553c32475e068e0d7318afcf27197468eae438a6b5020d7d6a0231705f(
120952
123478
  instance_type_identifier: builtins.str,
120953
123479
  ) -> None:
@@ -121199,6 +123725,21 @@ def _typecheckingstub__cd535e63329c308e9914cf9956b0964a6259b4c4557b9d3c8637793be
121199
123725
  """Type checking stubs"""
121200
123726
  pass
121201
123727
 
123728
+ def _typecheckingstub__c5749867b83865efb222663d0629d4ad2212132a3d659cf6e5b6eefb44fdc1b9(
123729
+ *,
123730
+ local_gateway_virtual_interface_group_arn: builtins.str,
123731
+ local_gateway_virtual_interface_group_id: builtins.str,
123732
+ ) -> None:
123733
+ """Type checking stubs"""
123734
+ pass
123735
+
123736
+ def _typecheckingstub__370c12dc1c7162c4f581d58e74af3136efcbc6bf0ba1e90bcab50deb09c4733f(
123737
+ *,
123738
+ local_gateway_virtual_interface_id: builtins.str,
123739
+ ) -> None:
123740
+ """Type checking stubs"""
123741
+ pass
123742
+
121202
123743
  def _typecheckingstub__adb9aead901a9e42e17ecf53f0a66db93e64d4cc2e633a62de1a847f4c40aa01(
121203
123744
  *,
121204
123745
  key: typing.Optional[builtins.str] = None,
@@ -122358,6 +124899,7 @@ def _typecheckingstub__04f8b7e933af74b695401b45c9c6b308e4684ecde3cb9a2a1e358a336
122358
124899
  client_login_banner: typing.Optional[builtins.str] = None,
122359
124900
  client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
122360
124901
  description: typing.Optional[builtins.str] = None,
124902
+ disconnect_on_session_timeout: typing.Optional[builtins.bool] = None,
122361
124903
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
122362
124904
  logging: typing.Optional[builtins.bool] = None,
122363
124905
  log_group: typing.Optional[_ILogGroup_3c4fa718] = None,
@@ -126248,6 +128790,154 @@ def _typecheckingstub__3480fc1fb89ce602f4bc2bf15c99da71be91c04a233e81dcafb2795f1
126248
128790
  """Type checking stubs"""
126249
128791
  pass
126250
128792
 
128793
+ def _typecheckingstub__2aa88d11229e60744af7610169f28b3d5625cb154fd34b95efb791e8bfccfc63(
128794
+ scope: _constructs_77d1e7e8.Construct,
128795
+ id: builtins.str,
128796
+ *,
128797
+ local_address: builtins.str,
128798
+ local_gateway_virtual_interface_group_id: builtins.str,
128799
+ outpost_lag_id: builtins.str,
128800
+ peer_address: builtins.str,
128801
+ vlan: jsii.Number,
128802
+ peer_bgp_asn: typing.Optional[jsii.Number] = None,
128803
+ peer_bgp_asn_extended: typing.Optional[jsii.Number] = None,
128804
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
128805
+ ) -> None:
128806
+ """Type checking stubs"""
128807
+ pass
128808
+
128809
+ def _typecheckingstub__7e3e16f72affac0d04131f323309fd5617e7cabcdedcd19ac8ade915c112fa06(
128810
+ scope: _constructs_77d1e7e8.Construct,
128811
+ id: builtins.str,
128812
+ local_gateway_virtual_interface_id: builtins.str,
128813
+ ) -> None:
128814
+ """Type checking stubs"""
128815
+ pass
128816
+
128817
+ def _typecheckingstub__94977590a9f1d2767ea0830e9b759c542b741cd7dac530ebefe8f70c31670444(
128818
+ inspector: _TreeInspector_488e0dd5,
128819
+ ) -> None:
128820
+ """Type checking stubs"""
128821
+ pass
128822
+
128823
+ def _typecheckingstub__095a3726e61c66bed12ad64205be51561583ad09436d79a570b9239072336539(
128824
+ props: typing.Mapping[builtins.str, typing.Any],
128825
+ ) -> None:
128826
+ """Type checking stubs"""
128827
+ pass
128828
+
128829
+ def _typecheckingstub__aea0d3e37c3a8dd56ec78450277d740b869a461b084be05fe5b483cc3069cf1d(
128830
+ value: builtins.str,
128831
+ ) -> None:
128832
+ """Type checking stubs"""
128833
+ pass
128834
+
128835
+ def _typecheckingstub__6022f5909fe462f9f3785e9d5d0bfec37b4fbdc32098ff0ed5b117e2095af317(
128836
+ value: builtins.str,
128837
+ ) -> None:
128838
+ """Type checking stubs"""
128839
+ pass
128840
+
128841
+ def _typecheckingstub__d9e0940225d24f5768baac171eb4d7a02583d63a1dbff31fafd812a6612cf377(
128842
+ value: builtins.str,
128843
+ ) -> None:
128844
+ """Type checking stubs"""
128845
+ pass
128846
+
128847
+ def _typecheckingstub__c55a99d7a9d8ce108f6383103a39169fa8ff7dbefa5fa9da14d3fdc18b33f56d(
128848
+ value: builtins.str,
128849
+ ) -> None:
128850
+ """Type checking stubs"""
128851
+ pass
128852
+
128853
+ def _typecheckingstub__876a548873295da57ca1d79ac22c64da6f6bb90a671ef5e7e35327fa50455921(
128854
+ value: jsii.Number,
128855
+ ) -> None:
128856
+ """Type checking stubs"""
128857
+ pass
128858
+
128859
+ def _typecheckingstub__0c59092a20afba0573e2b1509528b6946b674912bc181e34599b6b4caf2d6fc6(
128860
+ value: typing.Optional[jsii.Number],
128861
+ ) -> None:
128862
+ """Type checking stubs"""
128863
+ pass
128864
+
128865
+ def _typecheckingstub__f3cce6d05d44bd0efd48f94e34176bb44563507d53cdce3a678259de4fe36b18(
128866
+ value: typing.Optional[jsii.Number],
128867
+ ) -> None:
128868
+ """Type checking stubs"""
128869
+ pass
128870
+
128871
+ def _typecheckingstub__eb087b9b572ca18afe9a40645f05ba591d2e3255ff50d614f2090fe641563ff1(
128872
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
128873
+ ) -> None:
128874
+ """Type checking stubs"""
128875
+ pass
128876
+
128877
+ def _typecheckingstub__f4428e70a4cdbb5cb8cdf0b9a30ee1c62e12bf1982546a8f6fceda85eb1710d8(
128878
+ scope: _constructs_77d1e7e8.Construct,
128879
+ id: builtins.str,
128880
+ *,
128881
+ local_gateway_id: builtins.str,
128882
+ local_bgp_asn: typing.Optional[jsii.Number] = None,
128883
+ local_bgp_asn_extended: typing.Optional[jsii.Number] = None,
128884
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
128885
+ ) -> None:
128886
+ """Type checking stubs"""
128887
+ pass
128888
+
128889
+ def _typecheckingstub__d5a9b6710adb36dfbe12ad180d73bda56451914c2f050b2f3087ad3bcbc2d6fa(
128890
+ scope: _constructs_77d1e7e8.Construct,
128891
+ id: builtins.str,
128892
+ arn: builtins.str,
128893
+ ) -> None:
128894
+ """Type checking stubs"""
128895
+ pass
128896
+
128897
+ def _typecheckingstub__6c41061042437440fce590eb8d2e84ca2e31260fbb48f45a79f28c068eb57cf4(
128898
+ scope: _constructs_77d1e7e8.Construct,
128899
+ id: builtins.str,
128900
+ local_gateway_virtual_interface_group_id: builtins.str,
128901
+ ) -> None:
128902
+ """Type checking stubs"""
128903
+ pass
128904
+
128905
+ def _typecheckingstub__2cb275542481a92dcc0981a31e5b84f30303479387a077892f0ce93929c8683e(
128906
+ inspector: _TreeInspector_488e0dd5,
128907
+ ) -> None:
128908
+ """Type checking stubs"""
128909
+ pass
128910
+
128911
+ def _typecheckingstub__18212f2fc4e751f496b0f978560864ecefabe558ebf8ffcccfafbd83fcc076f9(
128912
+ props: typing.Mapping[builtins.str, typing.Any],
128913
+ ) -> None:
128914
+ """Type checking stubs"""
128915
+ pass
128916
+
128917
+ def _typecheckingstub__72980886c0b232d5cbf6c82b702ca8e8bad15827fe4b8c5a6125cccfd17a038f(
128918
+ value: builtins.str,
128919
+ ) -> None:
128920
+ """Type checking stubs"""
128921
+ pass
128922
+
128923
+ def _typecheckingstub__e17efd4cdc854aef38d95618d445b062d3dff94405b26cd2e5bf702d043d63c5(
128924
+ value: typing.Optional[jsii.Number],
128925
+ ) -> None:
128926
+ """Type checking stubs"""
128927
+ pass
128928
+
128929
+ def _typecheckingstub__451e90a51f0d03f4296d1a4075273832941693edd09aeac29656d7364ee7c634(
128930
+ value: typing.Optional[jsii.Number],
128931
+ ) -> None:
128932
+ """Type checking stubs"""
128933
+ pass
128934
+
128935
+ def _typecheckingstub__c5e51302d318cef13096e5600090018d23258317ba4cb12507e944c98443851e(
128936
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
128937
+ ) -> None:
128938
+ """Type checking stubs"""
128939
+ pass
128940
+
126251
128941
  def _typecheckingstub__4d23f1a46df0174ce142c0ff05ac9cb901ecac30141c8b466b44569b409414aa(
126252
128942
  scope: _constructs_77d1e7e8.Construct,
126253
128943
  id: builtins.str,
@@ -132839,6 +135529,7 @@ def _typecheckingstub__9a2422e1dfabadbd7f572317ed37670a87714b6f36fe9da2a01f1e26e
132839
135529
  client_login_banner: typing.Optional[builtins.str] = None,
132840
135530
  client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
132841
135531
  description: typing.Optional[builtins.str] = None,
135532
+ disconnect_on_session_timeout: typing.Optional[builtins.bool] = None,
132842
135533
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
132843
135534
  logging: typing.Optional[builtins.bool] = None,
132844
135535
  log_group: typing.Optional[_ILogGroup_3c4fa718] = None,