aws-cdk-lib 2.201.0__py3-none-any.whl → 2.203.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 (69) hide show
  1. aws_cdk/__init__.py +70 -71
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.201.0.jsii.tgz → aws-cdk-lib@2.203.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_accessanalyzer/__init__.py +310 -4
  5. aws_cdk/aws_aiops/__init__.py +964 -0
  6. aws_cdk/aws_amplify/__init__.py +127 -0
  7. aws_cdk/aws_arczonalshift/__init__.py +8 -8
  8. aws_cdk/aws_athena/__init__.py +12 -11
  9. aws_cdk/aws_b2bi/__init__.py +782 -3
  10. aws_cdk/aws_backup/__init__.py +22 -0
  11. aws_cdk/aws_batch/__init__.py +53 -1
  12. aws_cdk/aws_bedrock/__init__.py +123 -9
  13. aws_cdk/aws_cleanrooms/__init__.py +157 -154
  14. aws_cdk/aws_cloudformation/__init__.py +28 -28
  15. aws_cdk/aws_cloudfront/__init__.py +92 -57
  16. aws_cdk/aws_cloudfront/experimental/__init__.py +42 -3
  17. aws_cdk/aws_cloudwatch/__init__.py +228 -2
  18. aws_cdk/aws_connect/__init__.py +120 -8
  19. aws_cdk/aws_connectcampaignsv2/__init__.py +25 -4
  20. aws_cdk/aws_customerprofiles/__init__.py +150 -30
  21. aws_cdk/aws_datazone/__init__.py +23 -4
  22. aws_cdk/aws_deadline/__init__.py +4 -4
  23. aws_cdk/aws_dsql/__init__.py +148 -0
  24. aws_cdk/aws_ec2/__init__.py +321 -19
  25. aws_cdk/aws_ecr/__init__.py +3 -3
  26. aws_cdk/aws_ecs/__init__.py +48 -13
  27. aws_cdk/aws_efs/__init__.py +17 -6
  28. aws_cdk/aws_eks/__init__.py +180 -158
  29. aws_cdk/aws_elasticloadbalancingv2/__init__.py +4 -2
  30. aws_cdk/aws_emrserverless/__init__.py +118 -0
  31. aws_cdk/aws_fsx/__init__.py +891 -0
  32. aws_cdk/aws_glue/__init__.py +58 -24
  33. aws_cdk/aws_iam/__init__.py +11 -11
  34. aws_cdk/aws_inspectorv2/__init__.py +442 -3
  35. aws_cdk/aws_kendra/__init__.py +10 -5
  36. aws_cdk/aws_kms/__init__.py +24 -12
  37. aws_cdk/aws_lambda/__init__.py +938 -36
  38. aws_cdk/aws_lambda_event_sources/__init__.py +638 -1
  39. aws_cdk/aws_lambda_nodejs/__init__.py +37 -3
  40. aws_cdk/aws_lex/__init__.py +703 -0
  41. aws_cdk/aws_logs/__init__.py +144 -0
  42. aws_cdk/aws_mediatailor/__init__.py +399 -0
  43. aws_cdk/aws_mpa/__init__.py +1475 -0
  44. aws_cdk/aws_msk/__init__.py +21 -2
  45. aws_cdk/aws_mwaa/__init__.py +45 -2
  46. aws_cdk/aws_networkfirewall/__init__.py +4 -2
  47. aws_cdk/aws_networkmanager/__init__.py +51 -3
  48. aws_cdk/aws_opsworkscm/__init__.py +44 -2
  49. aws_cdk/aws_rds/__init__.py +175 -42
  50. aws_cdk/aws_redshiftserverless/__init__.py +632 -0
  51. aws_cdk/aws_route53resolver/__init__.py +58 -10
  52. aws_cdk/aws_s3/__init__.py +19 -1
  53. aws_cdk/aws_s3tables/__init__.py +230 -0
  54. aws_cdk/aws_sagemaker/__init__.py +14 -10
  55. aws_cdk/aws_securityhub/__init__.py +2887 -56
  56. aws_cdk/aws_synthetics/__init__.py +21 -0
  57. aws_cdk/aws_vpclattice/__init__.py +6 -4
  58. aws_cdk/aws_wafv2/__init__.py +849 -18
  59. aws_cdk/aws_workspacesinstances/__init__.py +3243 -0
  60. aws_cdk/cloud_assembly_schema/__init__.py +200 -4
  61. aws_cdk/cx_api/__init__.py +29 -14
  62. aws_cdk/pipelines/__init__.py +178 -41
  63. aws_cdk/triggers/__init__.py +41 -4
  64. {aws_cdk_lib-2.201.0.dist-info → aws_cdk_lib-2.203.0.dist-info}/METADATA +3 -3
  65. {aws_cdk_lib-2.201.0.dist-info → aws_cdk_lib-2.203.0.dist-info}/RECORD +69 -66
  66. {aws_cdk_lib-2.201.0.dist-info → aws_cdk_lib-2.203.0.dist-info}/LICENSE +0 -0
  67. {aws_cdk_lib-2.201.0.dist-info → aws_cdk_lib-2.203.0.dist-info}/NOTICE +0 -0
  68. {aws_cdk_lib-2.201.0.dist-info → aws_cdk_lib-2.203.0.dist-info}/WHEEL +0 -0
  69. {aws_cdk_lib-2.201.0.dist-info → aws_cdk_lib-2.203.0.dist-info}/top_level.txt +0 -0
@@ -1396,6 +1396,19 @@ endpoint.add_route("Route",
1396
1396
 
1397
1397
  Use the `connections` object of the endpoint to allow traffic to other security groups.
1398
1398
 
1399
+ To enable [client route enforcement](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-cre.html), configure the `clientRouteEnforcementOptions.enforced` prop to `true`:
1400
+
1401
+ ```python
1402
+ endpoint = vpc.add_client_vpn_endpoint("Endpoint",
1403
+ cidr="10.100.0.0/16",
1404
+ server_certificate_arn="arn:aws:acm:us-east-1:123456789012:certificate/server-certificate-id",
1405
+ client_certificate_arn="arn:aws:acm:us-east-1:123456789012:certificate/client-certificate-id",
1406
+ client_route_enforcement_options=ec2.ClientRouteEnforcementOptions(
1407
+ enforced=True
1408
+ )
1409
+ )
1410
+ ```
1411
+
1399
1412
  ## Instances
1400
1413
 
1401
1414
  You can use the `Instance` class to start up a single EC2 instance. For production setups, we recommend
@@ -16213,7 +16226,7 @@ class CfnEIPProps:
16213
16226
  )
16214
16227
 
16215
16228
 
16216
- @jsii.implements(_IInspectable_c2943556)
16229
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
16217
16230
  class CfnEgressOnlyInternetGateway(
16218
16231
  _CfnResource_9df397a6,
16219
16232
  metaclass=jsii.JSIIMeta,
@@ -16236,7 +16249,13 @@ class CfnEgressOnlyInternetGateway(
16236
16249
  from aws_cdk import aws_ec2 as ec2
16237
16250
 
16238
16251
  cfn_egress_only_internet_gateway = ec2.CfnEgressOnlyInternetGateway(self, "MyCfnEgressOnlyInternetGateway",
16239
- vpc_id="vpcId"
16252
+ vpc_id="vpcId",
16253
+
16254
+ # the properties below are optional
16255
+ tags=[CfnTag(
16256
+ key="key",
16257
+ value="value"
16258
+ )]
16240
16259
  )
16241
16260
  '''
16242
16261
 
@@ -16246,17 +16265,19 @@ class CfnEgressOnlyInternetGateway(
16246
16265
  id: builtins.str,
16247
16266
  *,
16248
16267
  vpc_id: builtins.str,
16268
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
16249
16269
  ) -> None:
16250
16270
  '''
16251
16271
  :param scope: Scope in which this resource is defined.
16252
16272
  :param id: Construct identifier for this resource (unique in its scope).
16253
16273
  :param vpc_id: The ID of the VPC for which to create the egress-only internet gateway.
16274
+ :param tags: The tags assigned to the egress-only internet gateway.
16254
16275
  '''
16255
16276
  if __debug__:
16256
16277
  type_hints = typing.get_type_hints(_typecheckingstub__84a7ddca98bd1c24713f12588ec54b51cdc19c99c2209e07c964172011c4d7ab)
16257
16278
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
16258
16279
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
16259
- props = CfnEgressOnlyInternetGatewayProps(vpc_id=vpc_id)
16280
+ props = CfnEgressOnlyInternetGatewayProps(vpc_id=vpc_id, tags=tags)
16260
16281
 
16261
16282
  jsii.create(self.__class__, self, [scope, id, props])
16262
16283
 
@@ -16299,6 +16320,12 @@ class CfnEgressOnlyInternetGateway(
16299
16320
  '''
16300
16321
  return typing.cast(builtins.str, jsii.get(self, "attrId"))
16301
16322
 
16323
+ @builtins.property
16324
+ @jsii.member(jsii_name="cdkTagManager")
16325
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
16326
+ '''Tag Manager which manages the tags for this resource.'''
16327
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
16328
+
16302
16329
  @builtins.property
16303
16330
  @jsii.member(jsii_name="cfnProperties")
16304
16331
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
@@ -16317,17 +16344,36 @@ class CfnEgressOnlyInternetGateway(
16317
16344
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
16318
16345
  jsii.set(self, "vpcId", value) # pyright: ignore[reportArgumentType]
16319
16346
 
16347
+ @builtins.property
16348
+ @jsii.member(jsii_name="tags")
16349
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
16350
+ '''The tags assigned to the egress-only internet gateway.'''
16351
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
16352
+
16353
+ @tags.setter
16354
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
16355
+ if __debug__:
16356
+ type_hints = typing.get_type_hints(_typecheckingstub__923846a8ba3d02f36c9267e2c903018ed279860265ad8a488da0a81153c5ff44)
16357
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
16358
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
16359
+
16320
16360
 
16321
16361
  @jsii.data_type(
16322
16362
  jsii_type="aws-cdk-lib.aws_ec2.CfnEgressOnlyInternetGatewayProps",
16323
16363
  jsii_struct_bases=[],
16324
- name_mapping={"vpc_id": "vpcId"},
16364
+ name_mapping={"vpc_id": "vpcId", "tags": "tags"},
16325
16365
  )
16326
16366
  class CfnEgressOnlyInternetGatewayProps:
16327
- def __init__(self, *, vpc_id: builtins.str) -> None:
16367
+ def __init__(
16368
+ self,
16369
+ *,
16370
+ vpc_id: builtins.str,
16371
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
16372
+ ) -> None:
16328
16373
  '''Properties for defining a ``CfnEgressOnlyInternetGateway``.
16329
16374
 
16330
16375
  :param vpc_id: The ID of the VPC for which to create the egress-only internet gateway.
16376
+ :param tags: The tags assigned to the egress-only internet gateway.
16331
16377
 
16332
16378
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html
16333
16379
  :exampleMetadata: fixture=_generated
@@ -16339,15 +16385,24 @@ class CfnEgressOnlyInternetGatewayProps:
16339
16385
  from aws_cdk import aws_ec2 as ec2
16340
16386
 
16341
16387
  cfn_egress_only_internet_gateway_props = ec2.CfnEgressOnlyInternetGatewayProps(
16342
- vpc_id="vpcId"
16388
+ vpc_id="vpcId",
16389
+
16390
+ # the properties below are optional
16391
+ tags=[CfnTag(
16392
+ key="key",
16393
+ value="value"
16394
+ )]
16343
16395
  )
16344
16396
  '''
16345
16397
  if __debug__:
16346
16398
  type_hints = typing.get_type_hints(_typecheckingstub__b693b2d49003d73758f4c0003564a93353b18fc97434556a2e988e47f367fb84)
16347
16399
  check_type(argname="argument vpc_id", value=vpc_id, expected_type=type_hints["vpc_id"])
16400
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
16348
16401
  self._values: typing.Dict[builtins.str, typing.Any] = {
16349
16402
  "vpc_id": vpc_id,
16350
16403
  }
16404
+ if tags is not None:
16405
+ self._values["tags"] = tags
16351
16406
 
16352
16407
  @builtins.property
16353
16408
  def vpc_id(self) -> builtins.str:
@@ -16359,6 +16414,15 @@ class CfnEgressOnlyInternetGatewayProps:
16359
16414
  assert result is not None, "Required property 'vpc_id' is missing"
16360
16415
  return typing.cast(builtins.str, result)
16361
16416
 
16417
+ @builtins.property
16418
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
16419
+ '''The tags assigned to the egress-only internet gateway.
16420
+
16421
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html#cfn-ec2-egressonlyinternetgateway-tags
16422
+ '''
16423
+ result = self._values.get("tags")
16424
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
16425
+
16362
16426
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
16363
16427
  return isinstance(rhs, self.__class__) and rhs._values == self._values
16364
16428
 
@@ -40953,9 +41017,7 @@ class CfnNetworkInterfacePermission(
40953
41017
  metaclass=jsii.JSIIMeta,
40954
41018
  jsii_type="aws-cdk-lib.aws_ec2.CfnNetworkInterfacePermission",
40955
41019
  ):
40956
- '''Specifies a permission for an Amazon EC2 network interface.
40957
-
40958
- For example, you can grant an AWS authorized partner account permission to attach the specified network interface to an instance in their account.
41020
+ '''Specifies a permission for the network interface, For example, you can grant an AWS -authorized account permission to attach the network interface to an instance in their account.
40959
41021
 
40960
41022
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html
40961
41023
  :cloudformationResource: AWS::EC2::NetworkInterfacePermission
@@ -52550,7 +52612,7 @@ class CfnSubnet(
52550
52612
 
52551
52613
  Example::
52552
52614
 
52553
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
52615
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
52554
52616
  # vpc: ec2.Vpc
52555
52617
 
52556
52618
 
@@ -52575,11 +52637,11 @@ class CfnSubnet(
52575
52637
  subnetcount = subnetcount + 1
52576
52638
 
52577
52639
  cluster = eks.Cluster(self, "hello-eks",
52578
- version=eks.KubernetesVersion.V1_32,
52640
+ version=eks.KubernetesVersion.V1_33,
52579
52641
  vpc=vpc,
52580
52642
  ip_family=eks.IpFamily.IP_V6,
52581
52643
  vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)],
52582
- kubectl_layer=KubectlV32Layer(self, "kubectl")
52644
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
52583
52645
  )
52584
52646
  '''
52585
52647
 
@@ -52705,6 +52767,14 @@ class CfnSubnet(
52705
52767
  '''
52706
52768
  return typing.cast(builtins.str, jsii.get(self, "attrAvailabilityZoneId"))
52707
52769
 
52770
+ @builtins.property
52771
+ @jsii.member(jsii_name="attrBlockPublicAccessStates")
52772
+ def attr_block_public_access_states(self) -> _IResolvable_da3f097b:
52773
+ '''
52774
+ :cloudformationAttribute: BlockPublicAccessStates
52775
+ '''
52776
+ return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrBlockPublicAccessStates"))
52777
+
52708
52778
  @builtins.property
52709
52779
  @jsii.member(jsii_name="attrCidrBlock")
52710
52780
  def attr_cidr_block(self) -> builtins.str:
@@ -53017,6 +53087,65 @@ class CfnSubnet(
53017
53087
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
53018
53088
  jsii.set(self, "tagsRaw", value) # pyright: ignore[reportArgumentType]
53019
53089
 
53090
+ @jsii.data_type(
53091
+ jsii_type="aws-cdk-lib.aws_ec2.CfnSubnet.BlockPublicAccessStatesProperty",
53092
+ jsii_struct_bases=[],
53093
+ name_mapping={"internet_gateway_block_mode": "internetGatewayBlockMode"},
53094
+ )
53095
+ class BlockPublicAccessStatesProperty:
53096
+ def __init__(
53097
+ self,
53098
+ *,
53099
+ internet_gateway_block_mode: typing.Optional[builtins.str] = None,
53100
+ ) -> None:
53101
+ '''The state of VPC Block Public Access (BPA).
53102
+
53103
+ :param internet_gateway_block_mode: The mode of VPC BPA. - ``off`` : VPC BPA is not enabled and traffic is allowed to and from internet gateways and egress-only internet gateways in this Region. - ``block-bidirectional`` : Block all traffic to and from internet gateways and egress-only internet gateways in this Region (except for excluded VPCs and subnets). - ``block-ingress`` : Block all internet traffic to the VPCs in this Region (except for VPCs or subnets which are excluded). Only traffic to and from NAT gateways and egress-only internet gateways is allowed because these gateways only allow outbound connections to be established.
53104
+
53105
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-blockpublicaccessstates.html
53106
+ :exampleMetadata: fixture=_generated
53107
+
53108
+ Example::
53109
+
53110
+ # The code below shows an example of how to instantiate this type.
53111
+ # The values are placeholders you should change.
53112
+ from aws_cdk import aws_ec2 as ec2
53113
+
53114
+ block_public_access_states_property = ec2.CfnSubnet.BlockPublicAccessStatesProperty(
53115
+ internet_gateway_block_mode="internetGatewayBlockMode"
53116
+ )
53117
+ '''
53118
+ if __debug__:
53119
+ type_hints = typing.get_type_hints(_typecheckingstub__39b852e2beaad9da72706596053a58f7c1190828d458e590af07c5701812220d)
53120
+ check_type(argname="argument internet_gateway_block_mode", value=internet_gateway_block_mode, expected_type=type_hints["internet_gateway_block_mode"])
53121
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
53122
+ if internet_gateway_block_mode is not None:
53123
+ self._values["internet_gateway_block_mode"] = internet_gateway_block_mode
53124
+
53125
+ @builtins.property
53126
+ def internet_gateway_block_mode(self) -> typing.Optional[builtins.str]:
53127
+ '''The mode of VPC BPA.
53128
+
53129
+ - ``off`` : VPC BPA is not enabled and traffic is allowed to and from internet gateways and egress-only internet gateways in this Region.
53130
+ - ``block-bidirectional`` : Block all traffic to and from internet gateways and egress-only internet gateways in this Region (except for excluded VPCs and subnets).
53131
+ - ``block-ingress`` : Block all internet traffic to the VPCs in this Region (except for VPCs or subnets which are excluded). Only traffic to and from NAT gateways and egress-only internet gateways is allowed because these gateways only allow outbound connections to be established.
53132
+
53133
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-blockpublicaccessstates.html#cfn-ec2-subnet-blockpublicaccessstates-internetgatewayblockmode
53134
+ '''
53135
+ result = self._values.get("internet_gateway_block_mode")
53136
+ return typing.cast(typing.Optional[builtins.str], result)
53137
+
53138
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
53139
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
53140
+
53141
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
53142
+ return not (rhs == self)
53143
+
53144
+ def __repr__(self) -> str:
53145
+ return "BlockPublicAccessStatesProperty(%s)" % ", ".join(
53146
+ k + "=" + repr(v) for k, v in self._values.items()
53147
+ )
53148
+
53020
53149
  @jsii.data_type(
53021
53150
  jsii_type="aws-cdk-lib.aws_ec2.CfnSubnet.PrivateDnsNameOptionsOnLaunchProperty",
53022
53151
  jsii_struct_bases=[],
@@ -54239,7 +54368,8 @@ class CfnTrafficMirrorFilter(
54239
54368
  @builtins.property
54240
54369
  @jsii.member(jsii_name="attrId")
54241
54370
  def attr_id(self) -> builtins.str:
54242
- '''
54371
+ '''The ID of a traffic mirror filter.
54372
+
54243
54373
  :cloudformationAttribute: Id
54244
54374
  '''
54245
54375
  return typing.cast(builtins.str, jsii.get(self, "attrId"))
@@ -54531,6 +54661,15 @@ class CfnTrafficMirrorFilterRule(
54531
54661
  '''
54532
54662
  return typing.cast(builtins.str, jsii.get(self, "attrId"))
54533
54663
 
54664
+ @builtins.property
54665
+ @jsii.member(jsii_name="attrTrafficMirrorFilterRuleId")
54666
+ def attr_traffic_mirror_filter_rule_id(self) -> builtins.str:
54667
+ '''The ID of the Traffic Mirror Filter rule.
54668
+
54669
+ :cloudformationAttribute: TrafficMirrorFilterRuleId
54670
+ '''
54671
+ return typing.cast(builtins.str, jsii.get(self, "attrTrafficMirrorFilterRuleId"))
54672
+
54534
54673
  @builtins.property
54535
54674
  @jsii.member(jsii_name="cdkTagManager")
54536
54675
  def cdk_tag_manager(self) -> _TagManager_0a598cb3:
@@ -60874,7 +61013,7 @@ class CfnVPCCidrBlock(
60874
61013
 
60875
61014
  Example::
60876
61015
 
60877
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
61016
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
60878
61017
  # vpc: ec2.Vpc
60879
61018
 
60880
61019
 
@@ -60899,11 +61038,11 @@ class CfnVPCCidrBlock(
60899
61038
  subnetcount = subnetcount + 1
60900
61039
 
60901
61040
  cluster = eks.Cluster(self, "hello-eks",
60902
- version=eks.KubernetesVersion.V1_32,
61041
+ version=eks.KubernetesVersion.V1_33,
60903
61042
  vpc=vpc,
60904
61043
  ip_family=eks.IpFamily.IP_V6,
60905
61044
  vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)],
60906
- kubectl_layer=KubectlV32Layer(self, "kubectl")
61045
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
60907
61046
  )
60908
61047
  '''
60909
61048
 
@@ -61213,7 +61352,7 @@ class CfnVPCCidrBlockProps:
61213
61352
 
61214
61353
  Example::
61215
61354
 
61216
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
61355
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
61217
61356
  # vpc: ec2.Vpc
61218
61357
 
61219
61358
 
@@ -61238,11 +61377,11 @@ class CfnVPCCidrBlockProps:
61238
61377
  subnetcount = subnetcount + 1
61239
61378
 
61240
61379
  cluster = eks.Cluster(self, "hello-eks",
61241
- version=eks.KubernetesVersion.V1_32,
61380
+ version=eks.KubernetesVersion.V1_33,
61242
61381
  vpc=vpc,
61243
61382
  ip_family=eks.IpFamily.IP_V6,
61244
61383
  vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)],
61245
- kubectl_layer=KubectlV32Layer(self, "kubectl")
61384
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
61246
61385
  )
61247
61386
  '''
61248
61387
  if __debug__:
@@ -71379,6 +71518,59 @@ class CfnVolumeProps:
71379
71518
  )
71380
71519
 
71381
71520
 
71521
+ @jsii.data_type(
71522
+ jsii_type="aws-cdk-lib.aws_ec2.ClientRouteEnforcementOptions",
71523
+ jsii_struct_bases=[],
71524
+ name_mapping={"enforced": "enforced"},
71525
+ )
71526
+ class ClientRouteEnforcementOptions:
71527
+ def __init__(self, *, enforced: builtins.bool) -> None:
71528
+ '''Options for Client Route Enforcement.
71529
+
71530
+ :param enforced: Enable or disable Client Route Enforcement. The state can either be true (enabled) or false (disabled).
71531
+
71532
+ :exampleMetadata: fixture=client-vpn infused
71533
+
71534
+ Example::
71535
+
71536
+ endpoint = vpc.add_client_vpn_endpoint("Endpoint",
71537
+ cidr="10.100.0.0/16",
71538
+ server_certificate_arn="arn:aws:acm:us-east-1:123456789012:certificate/server-certificate-id",
71539
+ client_certificate_arn="arn:aws:acm:us-east-1:123456789012:certificate/client-certificate-id",
71540
+ client_route_enforcement_options=ec2.ClientRouteEnforcementOptions(
71541
+ enforced=True
71542
+ )
71543
+ )
71544
+ '''
71545
+ if __debug__:
71546
+ type_hints = typing.get_type_hints(_typecheckingstub__ff75a2d8f5c6dd9dde18d6e1933265e0d20a4b21489fde8d4735778facaad902)
71547
+ check_type(argname="argument enforced", value=enforced, expected_type=type_hints["enforced"])
71548
+ self._values: typing.Dict[builtins.str, typing.Any] = {
71549
+ "enforced": enforced,
71550
+ }
71551
+
71552
+ @builtins.property
71553
+ def enforced(self) -> builtins.bool:
71554
+ '''Enable or disable Client Route Enforcement.
71555
+
71556
+ The state can either be true (enabled) or false (disabled).
71557
+ '''
71558
+ result = self._values.get("enforced")
71559
+ assert result is not None, "Required property 'enforced' is missing"
71560
+ return typing.cast(builtins.bool, result)
71561
+
71562
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
71563
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
71564
+
71565
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
71566
+ return not (rhs == self)
71567
+
71568
+ def __repr__(self) -> str:
71569
+ return "ClientRouteEnforcementOptions(%s)" % ", ".join(
71570
+ k + "=" + repr(v) for k, v in self._values.items()
71571
+ )
71572
+
71573
+
71382
71574
  class ClientVpnAuthorizationRule(
71383
71575
  _Resource_45bc6135,
71384
71576
  metaclass=jsii.JSIIMeta,
@@ -71713,6 +71905,7 @@ class ClientVpnEndpointAttributes:
71713
71905
  "client_certificate_arn": "clientCertificateArn",
71714
71906
  "client_connection_handler": "clientConnectionHandler",
71715
71907
  "client_login_banner": "clientLoginBanner",
71908
+ "client_route_enforcement_options": "clientRouteEnforcementOptions",
71716
71909
  "description": "description",
71717
71910
  "dns_servers": "dnsServers",
71718
71911
  "logging": "logging",
@@ -71738,6 +71931,7 @@ class ClientVpnEndpointOptions:
71738
71931
  client_certificate_arn: typing.Optional[builtins.str] = None,
71739
71932
  client_connection_handler: typing.Optional["IClientVpnConnectionHandler"] = None,
71740
71933
  client_login_banner: typing.Optional[builtins.str] = None,
71934
+ client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
71741
71935
  description: typing.Optional[builtins.str] = None,
71742
71936
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
71743
71937
  logging: typing.Optional[builtins.bool] = None,
@@ -71760,6 +71954,7 @@ class ClientVpnEndpointOptions:
71760
71954
  :param client_certificate_arn: The ARN of the client certificate for mutual authentication. The certificate must be signed by a certificate authority (CA) and it must be provisioned in AWS Certificate Manager (ACM). Default: - use user-based authentication
71761
71955
  :param client_connection_handler: The AWS Lambda function used for connection authorization. The name of the Lambda function must begin with the ``AWSClientVPN-`` prefix Default: - no connection handler
71762
71956
  :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
71957
+ :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
71763
71958
  :param description: A brief description of the Client VPN endpoint. Default: - no description
71764
71959
  :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
71765
71960
  :param logging: Whether to enable connections logging. Default: true
@@ -71790,6 +71985,8 @@ class ClientVpnEndpointOptions:
71790
71985
  group_id="group-id"
71791
71986
  )
71792
71987
  '''
71988
+ if isinstance(client_route_enforcement_options, dict):
71989
+ client_route_enforcement_options = ClientRouteEnforcementOptions(**client_route_enforcement_options)
71793
71990
  if isinstance(vpc_subnets, dict):
71794
71991
  vpc_subnets = SubnetSelection(**vpc_subnets)
71795
71992
  if __debug__:
@@ -71800,6 +71997,7 @@ class ClientVpnEndpointOptions:
71800
71997
  check_type(argname="argument client_certificate_arn", value=client_certificate_arn, expected_type=type_hints["client_certificate_arn"])
71801
71998
  check_type(argname="argument client_connection_handler", value=client_connection_handler, expected_type=type_hints["client_connection_handler"])
71802
71999
  check_type(argname="argument client_login_banner", value=client_login_banner, expected_type=type_hints["client_login_banner"])
72000
+ check_type(argname="argument client_route_enforcement_options", value=client_route_enforcement_options, expected_type=type_hints["client_route_enforcement_options"])
71803
72001
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
71804
72002
  check_type(argname="argument dns_servers", value=dns_servers, expected_type=type_hints["dns_servers"])
71805
72003
  check_type(argname="argument logging", value=logging, expected_type=type_hints["logging"])
@@ -71825,6 +72023,8 @@ class ClientVpnEndpointOptions:
71825
72023
  self._values["client_connection_handler"] = client_connection_handler
71826
72024
  if client_login_banner is not None:
71827
72025
  self._values["client_login_banner"] = client_login_banner
72026
+ if client_route_enforcement_options is not None:
72027
+ self._values["client_route_enforcement_options"] = client_route_enforcement_options
71828
72028
  if description is not None:
71829
72029
  self._values["description"] = description
71830
72030
  if dns_servers is not None:
@@ -71922,6 +72122,22 @@ class ClientVpnEndpointOptions:
71922
72122
  result = self._values.get("client_login_banner")
71923
72123
  return typing.cast(typing.Optional[builtins.str], result)
71924
72124
 
72125
+ @builtins.property
72126
+ def client_route_enforcement_options(
72127
+ self,
72128
+ ) -> typing.Optional[ClientRouteEnforcementOptions]:
72129
+ '''Options for Client Route Enforcement.
72130
+
72131
+ Client Route Enforcement is a feature of Client VPN that helps enforce administrator defined routes on devices connected through the VPN.
72132
+ 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.
72133
+
72134
+ :default: undefined - AWS Client VPN default setting is disable client route enforcement
72135
+
72136
+ :see: https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-cre.html
72137
+ '''
72138
+ result = self._values.get("client_route_enforcement_options")
72139
+ return typing.cast(typing.Optional[ClientRouteEnforcementOptions], result)
72140
+
71925
72141
  @builtins.property
71926
72142
  def description(self) -> typing.Optional[builtins.str]:
71927
72143
  '''A brief description of the Client VPN endpoint.
@@ -72069,6 +72285,7 @@ class ClientVpnEndpointOptions:
72069
72285
  "client_certificate_arn": "clientCertificateArn",
72070
72286
  "client_connection_handler": "clientConnectionHandler",
72071
72287
  "client_login_banner": "clientLoginBanner",
72288
+ "client_route_enforcement_options": "clientRouteEnforcementOptions",
72072
72289
  "description": "description",
72073
72290
  "dns_servers": "dnsServers",
72074
72291
  "logging": "logging",
@@ -72095,6 +72312,7 @@ class ClientVpnEndpointProps(ClientVpnEndpointOptions):
72095
72312
  client_certificate_arn: typing.Optional[builtins.str] = None,
72096
72313
  client_connection_handler: typing.Optional["IClientVpnConnectionHandler"] = None,
72097
72314
  client_login_banner: typing.Optional[builtins.str] = None,
72315
+ client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
72098
72316
  description: typing.Optional[builtins.str] = None,
72099
72317
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
72100
72318
  logging: typing.Optional[builtins.bool] = None,
@@ -72118,6 +72336,7 @@ class ClientVpnEndpointProps(ClientVpnEndpointOptions):
72118
72336
  :param client_certificate_arn: The ARN of the client certificate for mutual authentication. The certificate must be signed by a certificate authority (CA) and it must be provisioned in AWS Certificate Manager (ACM). Default: - use user-based authentication
72119
72337
  :param client_connection_handler: The AWS Lambda function used for connection authorization. The name of the Lambda function must begin with the ``AWSClientVPN-`` prefix Default: - no connection handler
72120
72338
  :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
72339
+ :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
72121
72340
  :param description: A brief description of the Client VPN endpoint. Default: - no description
72122
72341
  :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
72123
72342
  :param logging: Whether to enable connections logging. Default: true
@@ -72161,6 +72380,9 @@ class ClientVpnEndpointProps(ClientVpnEndpointOptions):
72161
72380
  client_certificate_arn="clientCertificateArn",
72162
72381
  client_connection_handler=client_vpn_connection_handler,
72163
72382
  client_login_banner="clientLoginBanner",
72383
+ client_route_enforcement_options=ec2.ClientRouteEnforcementOptions(
72384
+ enforced=False
72385
+ ),
72164
72386
  description="description",
72165
72387
  dns_servers=["dnsServers"],
72166
72388
  logging=False,
@@ -72183,6 +72405,8 @@ class ClientVpnEndpointProps(ClientVpnEndpointOptions):
72183
72405
  )
72184
72406
  )
72185
72407
  '''
72408
+ if isinstance(client_route_enforcement_options, dict):
72409
+ client_route_enforcement_options = ClientRouteEnforcementOptions(**client_route_enforcement_options)
72186
72410
  if isinstance(vpc_subnets, dict):
72187
72411
  vpc_subnets = SubnetSelection(**vpc_subnets)
72188
72412
  if __debug__:
@@ -72193,6 +72417,7 @@ class ClientVpnEndpointProps(ClientVpnEndpointOptions):
72193
72417
  check_type(argname="argument client_certificate_arn", value=client_certificate_arn, expected_type=type_hints["client_certificate_arn"])
72194
72418
  check_type(argname="argument client_connection_handler", value=client_connection_handler, expected_type=type_hints["client_connection_handler"])
72195
72419
  check_type(argname="argument client_login_banner", value=client_login_banner, expected_type=type_hints["client_login_banner"])
72420
+ check_type(argname="argument client_route_enforcement_options", value=client_route_enforcement_options, expected_type=type_hints["client_route_enforcement_options"])
72196
72421
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
72197
72422
  check_type(argname="argument dns_servers", value=dns_servers, expected_type=type_hints["dns_servers"])
72198
72423
  check_type(argname="argument logging", value=logging, expected_type=type_hints["logging"])
@@ -72220,6 +72445,8 @@ class ClientVpnEndpointProps(ClientVpnEndpointOptions):
72220
72445
  self._values["client_connection_handler"] = client_connection_handler
72221
72446
  if client_login_banner is not None:
72222
72447
  self._values["client_login_banner"] = client_login_banner
72448
+ if client_route_enforcement_options is not None:
72449
+ self._values["client_route_enforcement_options"] = client_route_enforcement_options
72223
72450
  if description is not None:
72224
72451
  self._values["description"] = description
72225
72452
  if dns_servers is not None:
@@ -72317,6 +72544,22 @@ class ClientVpnEndpointProps(ClientVpnEndpointOptions):
72317
72544
  result = self._values.get("client_login_banner")
72318
72545
  return typing.cast(typing.Optional[builtins.str], result)
72319
72546
 
72547
+ @builtins.property
72548
+ def client_route_enforcement_options(
72549
+ self,
72550
+ ) -> typing.Optional[ClientRouteEnforcementOptions]:
72551
+ '''Options for Client Route Enforcement.
72552
+
72553
+ Client Route Enforcement is a feature of Client VPN that helps enforce administrator defined routes on devices connected through the VPN.
72554
+ 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.
72555
+
72556
+ :default: undefined - AWS Client VPN default setting is disable client route enforcement
72557
+
72558
+ :see: https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-cre.html
72559
+ '''
72560
+ result = self._values.get("client_route_enforcement_options")
72561
+ return typing.cast(typing.Optional[ClientRouteEnforcementOptions], result)
72562
+
72320
72563
  @builtins.property
72321
72564
  def description(self) -> typing.Optional[builtins.str]:
72322
72565
  '''A brief description of the Client VPN endpoint.
@@ -76970,6 +77213,7 @@ class IVpc(_IResource_c80c4260, typing_extensions.Protocol):
76970
77213
  client_certificate_arn: typing.Optional[builtins.str] = None,
76971
77214
  client_connection_handler: typing.Optional[IClientVpnConnectionHandler] = None,
76972
77215
  client_login_banner: typing.Optional[builtins.str] = None,
77216
+ client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
76973
77217
  description: typing.Optional[builtins.str] = None,
76974
77218
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
76975
77219
  logging: typing.Optional[builtins.bool] = None,
@@ -76993,6 +77237,7 @@ class IVpc(_IResource_c80c4260, typing_extensions.Protocol):
76993
77237
  :param client_certificate_arn: The ARN of the client certificate for mutual authentication. The certificate must be signed by a certificate authority (CA) and it must be provisioned in AWS Certificate Manager (ACM). Default: - use user-based authentication
76994
77238
  :param client_connection_handler: The AWS Lambda function used for connection authorization. The name of the Lambda function must begin with the ``AWSClientVPN-`` prefix Default: - no connection handler
76995
77239
  :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
77240
+ :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
76996
77241
  :param description: A brief description of the Client VPN endpoint. Default: - no description
76997
77242
  :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
76998
77243
  :param logging: Whether to enable connections logging. Default: true
@@ -77216,6 +77461,7 @@ class _IVpcProxy(
77216
77461
  client_certificate_arn: typing.Optional[builtins.str] = None,
77217
77462
  client_connection_handler: typing.Optional[IClientVpnConnectionHandler] = None,
77218
77463
  client_login_banner: typing.Optional[builtins.str] = None,
77464
+ client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
77219
77465
  description: typing.Optional[builtins.str] = None,
77220
77466
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
77221
77467
  logging: typing.Optional[builtins.bool] = None,
@@ -77239,6 +77485,7 @@ class _IVpcProxy(
77239
77485
  :param client_certificate_arn: The ARN of the client certificate for mutual authentication. The certificate must be signed by a certificate authority (CA) and it must be provisioned in AWS Certificate Manager (ACM). Default: - use user-based authentication
77240
77486
  :param client_connection_handler: The AWS Lambda function used for connection authorization. The name of the Lambda function must begin with the ``AWSClientVPN-`` prefix Default: - no connection handler
77241
77487
  :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
77488
+ :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
77242
77489
  :param description: A brief description of the Client VPN endpoint. Default: - no description
77243
77490
  :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
77244
77491
  :param logging: Whether to enable connections logging. Default: true
@@ -77263,6 +77510,7 @@ class _IVpcProxy(
77263
77510
  client_certificate_arn=client_certificate_arn,
77264
77511
  client_connection_handler=client_connection_handler,
77265
77512
  client_login_banner=client_login_banner,
77513
+ client_route_enforcement_options=client_route_enforcement_options,
77266
77514
  description=description,
77267
77515
  dns_servers=dns_servers,
77268
77516
  logging=logging,
@@ -83880,6 +84128,16 @@ class InterfaceVpcEndpointAwsService(
83880
84128
  '''
83881
84129
  return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "SES"))
83882
84130
 
84131
+ @jsii.python.classproperty
84132
+ @jsii.member(jsii_name="SHIELD")
84133
+ def SHIELD(cls) -> "InterfaceVpcEndpointAwsService":
84134
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "SHIELD"))
84135
+
84136
+ @jsii.python.classproperty
84137
+ @jsii.member(jsii_name="SHIELD_FIPS")
84138
+ def SHIELD_FIPS(cls) -> "InterfaceVpcEndpointAwsService":
84139
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "SHIELD_FIPS"))
84140
+
83883
84141
  @jsii.python.classproperty
83884
84142
  @jsii.member(jsii_name="SIMSPACE_WEAVER")
83885
84143
  def SIMSPACE_WEAVER(cls) -> "InterfaceVpcEndpointAwsService":
@@ -83900,6 +84158,11 @@ class InterfaceVpcEndpointAwsService(
83900
84158
  def SQS(cls) -> "InterfaceVpcEndpointAwsService":
83901
84159
  return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "SQS"))
83902
84160
 
84161
+ @jsii.python.classproperty
84162
+ @jsii.member(jsii_name="SQS_FIPS")
84163
+ def SQS_FIPS(cls) -> "InterfaceVpcEndpointAwsService":
84164
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "SQS_FIPS"))
84165
+
83903
84166
  @jsii.python.classproperty
83904
84167
  @jsii.member(jsii_name="SSM")
83905
84168
  def SSM(cls) -> "InterfaceVpcEndpointAwsService":
@@ -83950,6 +84213,11 @@ class InterfaceVpcEndpointAwsService(
83950
84213
  def STS(cls) -> "InterfaceVpcEndpointAwsService":
83951
84214
  return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "STS"))
83952
84215
 
84216
+ @jsii.python.classproperty
84217
+ @jsii.member(jsii_name="STS_FIPS")
84218
+ def STS_FIPS(cls) -> "InterfaceVpcEndpointAwsService":
84219
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "STS_FIPS"))
84220
+
83953
84221
  @jsii.python.classproperty
83954
84222
  @jsii.member(jsii_name="SUPPLY_CHAIN")
83955
84223
  def SUPPLY_CHAIN(cls) -> "InterfaceVpcEndpointAwsService":
@@ -94922,6 +95190,7 @@ class Vpc(
94922
95190
  client_certificate_arn: typing.Optional[builtins.str] = None,
94923
95191
  client_connection_handler: typing.Optional[IClientVpnConnectionHandler] = None,
94924
95192
  client_login_banner: typing.Optional[builtins.str] = None,
95193
+ client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
94925
95194
  description: typing.Optional[builtins.str] = None,
94926
95195
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
94927
95196
  logging: typing.Optional[builtins.bool] = None,
@@ -94945,6 +95214,7 @@ class Vpc(
94945
95214
  :param client_certificate_arn: The ARN of the client certificate for mutual authentication. The certificate must be signed by a certificate authority (CA) and it must be provisioned in AWS Certificate Manager (ACM). Default: - use user-based authentication
94946
95215
  :param client_connection_handler: The AWS Lambda function used for connection authorization. The name of the Lambda function must begin with the ``AWSClientVPN-`` prefix Default: - no connection handler
94947
95216
  :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
95217
+ :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
94948
95218
  :param description: A brief description of the Client VPN endpoint. Default: - no description
94949
95219
  :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
94950
95220
  :param logging: Whether to enable connections logging. Default: true
@@ -94969,6 +95239,7 @@ class Vpc(
94969
95239
  client_certificate_arn=client_certificate_arn,
94970
95240
  client_connection_handler=client_connection_handler,
94971
95241
  client_login_banner=client_login_banner,
95242
+ client_route_enforcement_options=client_route_enforcement_options,
94972
95243
  description=description,
94973
95244
  dns_servers=dns_servers,
94974
95245
  logging=logging,
@@ -103472,6 +103743,7 @@ class ClientVpnEndpoint(
103472
103743
  client_certificate_arn: typing.Optional[builtins.str] = None,
103473
103744
  client_connection_handler: typing.Optional[IClientVpnConnectionHandler] = None,
103474
103745
  client_login_banner: typing.Optional[builtins.str] = None,
103746
+ client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
103475
103747
  description: typing.Optional[builtins.str] = None,
103476
103748
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
103477
103749
  logging: typing.Optional[builtins.bool] = None,
@@ -103496,6 +103768,7 @@ class ClientVpnEndpoint(
103496
103768
  :param client_certificate_arn: The ARN of the client certificate for mutual authentication. The certificate must be signed by a certificate authority (CA) and it must be provisioned in AWS Certificate Manager (ACM). Default: - use user-based authentication
103497
103769
  :param client_connection_handler: The AWS Lambda function used for connection authorization. The name of the Lambda function must begin with the ``AWSClientVPN-`` prefix Default: - no connection handler
103498
103770
  :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
103771
+ :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
103499
103772
  :param description: A brief description of the Client VPN endpoint. Default: - no description
103500
103773
  :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
103501
103774
  :param logging: Whether to enable connections logging. Default: true
@@ -103522,6 +103795,7 @@ class ClientVpnEndpoint(
103522
103795
  client_certificate_arn=client_certificate_arn,
103523
103796
  client_connection_handler=client_connection_handler,
103524
103797
  client_login_banner=client_login_banner,
103798
+ client_route_enforcement_options=client_route_enforcement_options,
103525
103799
  description=description,
103526
103800
  dns_servers=dns_servers,
103527
103801
  logging=logging,
@@ -104007,6 +104281,7 @@ __all__ = [
104007
104281
  "CfnVolumeAttachment",
104008
104282
  "CfnVolumeAttachmentProps",
104009
104283
  "CfnVolumeProps",
104284
+ "ClientRouteEnforcementOptions",
104010
104285
  "ClientVpnAuthorizationRule",
104011
104286
  "ClientVpnAuthorizationRuleOptions",
104012
104287
  "ClientVpnAuthorizationRuleProps",
@@ -105971,6 +106246,7 @@ def _typecheckingstub__84a7ddca98bd1c24713f12588ec54b51cdc19c99c2209e07c96417201
105971
106246
  id: builtins.str,
105972
106247
  *,
105973
106248
  vpc_id: builtins.str,
106249
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
105974
106250
  ) -> None:
105975
106251
  """Type checking stubs"""
105976
106252
  pass
@@ -105993,9 +106269,16 @@ def _typecheckingstub__dd41a3676da418b0ac30e8c6707af491b5f32416672bf517e640f6132
105993
106269
  """Type checking stubs"""
105994
106270
  pass
105995
106271
 
106272
+ def _typecheckingstub__923846a8ba3d02f36c9267e2c903018ed279860265ad8a488da0a81153c5ff44(
106273
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
106274
+ ) -> None:
106275
+ """Type checking stubs"""
106276
+ pass
106277
+
105996
106278
  def _typecheckingstub__b693b2d49003d73758f4c0003564a93353b18fc97434556a2e988e47f367fb84(
105997
106279
  *,
105998
106280
  vpc_id: builtins.str,
106281
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
105999
106282
  ) -> None:
106000
106283
  """Type checking stubs"""
106001
106284
  pass
@@ -110934,6 +111217,13 @@ def _typecheckingstub__b297663d31b5bbe92a3f56911eb6c57abab4c122a855b348cb1da68bc
110934
111217
  """Type checking stubs"""
110935
111218
  pass
110936
111219
 
111220
+ def _typecheckingstub__39b852e2beaad9da72706596053a58f7c1190828d458e590af07c5701812220d(
111221
+ *,
111222
+ internet_gateway_block_mode: typing.Optional[builtins.str] = None,
111223
+ ) -> None:
111224
+ """Type checking stubs"""
111225
+ pass
111226
+
110937
111227
  def _typecheckingstub__9ead2dbf33a2462f22ec4fe1b542f6a0fc766e914575dd0c8da36b35e6a471a0(
110938
111228
  *,
110939
111229
  enable_resource_name_dns_aaaa_record: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
@@ -114166,6 +114456,13 @@ def _typecheckingstub__df1f84bfc2d41a9f2d283d6a706150686c01c8f45a742c92af54cbee7
114166
114456
  """Type checking stubs"""
114167
114457
  pass
114168
114458
 
114459
+ def _typecheckingstub__ff75a2d8f5c6dd9dde18d6e1933265e0d20a4b21489fde8d4735778facaad902(
114460
+ *,
114461
+ enforced: builtins.bool,
114462
+ ) -> None:
114463
+ """Type checking stubs"""
114464
+ pass
114465
+
114169
114466
  def _typecheckingstub__6f8556471b9878ffc0a31155bd24890dd137dc2f25f5faa23ec8adbfb35154db(
114170
114467
  scope: _constructs_77d1e7e8.Construct,
114171
114468
  id: builtins.str,
@@ -114213,6 +114510,7 @@ def _typecheckingstub__73f8593e2e6199f8ae542cff4cbe02f0be09fd9043b8072cbb652d5b0
114213
114510
  client_certificate_arn: typing.Optional[builtins.str] = None,
114214
114511
  client_connection_handler: typing.Optional[IClientVpnConnectionHandler] = None,
114215
114512
  client_login_banner: typing.Optional[builtins.str] = None,
114513
+ client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
114216
114514
  description: typing.Optional[builtins.str] = None,
114217
114515
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
114218
114516
  logging: typing.Optional[builtins.bool] = None,
@@ -114238,6 +114536,7 @@ def _typecheckingstub__8e89ba9082e1bc80500c526e8522c5a90e2a91bd17d985f5932611e0b
114238
114536
  client_certificate_arn: typing.Optional[builtins.str] = None,
114239
114537
  client_connection_handler: typing.Optional[IClientVpnConnectionHandler] = None,
114240
114538
  client_login_banner: typing.Optional[builtins.str] = None,
114539
+ client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
114241
114540
  description: typing.Optional[builtins.str] = None,
114242
114541
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
114243
114542
  logging: typing.Optional[builtins.bool] = None,
@@ -114671,6 +114970,7 @@ def _typecheckingstub__19cdaa7bec0f733a863944b2be6c76392b1e518714158a913370b8de7
114671
114970
  client_certificate_arn: typing.Optional[builtins.str] = None,
114672
114971
  client_connection_handler: typing.Optional[IClientVpnConnectionHandler] = None,
114673
114972
  client_login_banner: typing.Optional[builtins.str] = None,
114973
+ client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
114674
114974
  description: typing.Optional[builtins.str] = None,
114675
114975
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
114676
114976
  logging: typing.Optional[builtins.bool] = None,
@@ -116554,6 +116854,7 @@ def _typecheckingstub__04f8b7e933af74b695401b45c9c6b308e4684ecde3cb9a2a1e358a336
116554
116854
  client_certificate_arn: typing.Optional[builtins.str] = None,
116555
116855
  client_connection_handler: typing.Optional[IClientVpnConnectionHandler] = None,
116556
116856
  client_login_banner: typing.Optional[builtins.str] = None,
116857
+ client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
116557
116858
  description: typing.Optional[builtins.str] = None,
116558
116859
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
116559
116860
  logging: typing.Optional[builtins.bool] = None,
@@ -117425,6 +117726,7 @@ def _typecheckingstub__9a2422e1dfabadbd7f572317ed37670a87714b6f36fe9da2a01f1e26e
117425
117726
  client_certificate_arn: typing.Optional[builtins.str] = None,
117426
117727
  client_connection_handler: typing.Optional[IClientVpnConnectionHandler] = None,
117427
117728
  client_login_banner: typing.Optional[builtins.str] = None,
117729
+ client_route_enforcement_options: typing.Optional[typing.Union[ClientRouteEnforcementOptions, typing.Dict[builtins.str, typing.Any]]] = None,
117428
117730
  description: typing.Optional[builtins.str] = None,
117429
117731
  dns_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
117430
117732
  logging: typing.Optional[builtins.bool] = None,