aws-cdk-lib 2.171.1__py3-none-any.whl → 2.173.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 (78) hide show
  1. aws_cdk/__init__.py +528 -161
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.171.1.jsii.tgz → aws-cdk-lib@2.173.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amazonmq/__init__.py +40 -40
  5. aws_cdk/aws_apigateway/__init__.py +1357 -120
  6. aws_cdk/aws_applicationautoscaling/__init__.py +141 -66
  7. aws_cdk/aws_appsync/__init__.py +163 -139
  8. aws_cdk/aws_autoscaling/__init__.py +96 -30
  9. aws_cdk/aws_bedrock/__init__.py +80 -44
  10. aws_cdk/aws_chatbot/__init__.py +803 -2
  11. aws_cdk/aws_cleanrooms/__init__.py +4 -6
  12. aws_cdk/aws_cloudformation/__init__.py +240 -159
  13. aws_cdk/aws_cloudfront/__init__.py +15 -7
  14. aws_cdk/aws_cloudtrail/__init__.py +802 -13
  15. aws_cdk/aws_cloudwatch/__init__.py +51 -14
  16. aws_cdk/aws_codebuild/__init__.py +39 -0
  17. aws_cdk/aws_codepipeline/__init__.py +4 -4
  18. aws_cdk/aws_cognito/__init__.py +1032 -43
  19. aws_cdk/aws_config/__init__.py +13 -10
  20. aws_cdk/aws_connect/__init__.py +454 -23
  21. aws_cdk/aws_connectcampaignsv2/__init__.py +187 -176
  22. aws_cdk/aws_customerprofiles/__init__.py +3148 -0
  23. aws_cdk/aws_docdb/__init__.py +128 -0
  24. aws_cdk/aws_dynamodb/__init__.py +256 -0
  25. aws_cdk/aws_ec2/__init__.py +976 -27
  26. aws_cdk/aws_ecs/__init__.py +37 -20
  27. aws_cdk/aws_eks/__init__.py +771 -0
  28. aws_cdk/aws_elasticache/__init__.py +22 -22
  29. aws_cdk/aws_elasticloadbalancingv2/__init__.py +441 -177
  30. aws_cdk/aws_events/__init__.py +550 -30
  31. aws_cdk/aws_fsx/__init__.py +134 -10
  32. aws_cdk/aws_imagebuilder/__init__.py +8 -8
  33. aws_cdk/aws_invoicing/__init__.py +651 -0
  34. aws_cdk/aws_iot/__init__.py +70 -26
  35. aws_cdk/aws_iotfleetwise/__init__.py +1033 -382
  36. aws_cdk/aws_iotsitewise/__init__.py +158 -0
  37. aws_cdk/aws_ivs/__init__.py +43 -31
  38. aws_cdk/aws_kendra/__init__.py +4 -0
  39. aws_cdk/aws_lakeformation/__init__.py +2 -1
  40. aws_cdk/aws_lambda/__init__.py +272 -164
  41. aws_cdk/aws_lambda_event_sources/__init__.py +2 -1
  42. aws_cdk/aws_lambda_nodejs/__init__.py +11 -11
  43. aws_cdk/aws_logs/__init__.py +532 -0
  44. aws_cdk/aws_m2/__init__.py +289 -0
  45. aws_cdk/aws_mediaconnect/__init__.py +24 -14
  46. aws_cdk/aws_medialive/__init__.py +2359 -5
  47. aws_cdk/aws_mediapackage/__init__.py +3 -9
  48. aws_cdk/aws_mediapackagev2/__init__.py +19 -17
  49. aws_cdk/aws_memorydb/__init__.py +664 -4
  50. aws_cdk/aws_mwaa/__init__.py +6 -6
  51. aws_cdk/aws_opensearchserverless/__init__.py +249 -1
  52. aws_cdk/aws_pipes/__init__.py +14 -30
  53. aws_cdk/aws_qbusiness/__init__.py +2021 -67
  54. aws_cdk/aws_quicksight/__init__.py +8270 -10
  55. aws_cdk/aws_rbin/__init__.py +53 -34
  56. aws_cdk/aws_rds/__init__.py +170 -8
  57. aws_cdk/aws_resourcegroups/__init__.py +362 -4
  58. aws_cdk/aws_route53/__init__.py +1177 -10
  59. aws_cdk/aws_route53_targets/__init__.py +297 -91
  60. aws_cdk/aws_route53resolver/__init__.py +19 -8
  61. aws_cdk/aws_s3/__init__.py +4 -4
  62. aws_cdk/aws_s3express/__init__.py +421 -9
  63. aws_cdk/aws_sagemaker/__init__.py +905 -119
  64. aws_cdk/aws_secretsmanager/__init__.py +20 -6
  65. aws_cdk/aws_securityhub/__init__.py +64 -32
  66. aws_cdk/aws_servicediscovery/__init__.py +43 -0
  67. aws_cdk/aws_ses/__init__.py +188 -41
  68. aws_cdk/aws_stepfunctions_tasks/__init__.py +190 -35
  69. aws_cdk/aws_synthetics/__init__.py +7 -5
  70. aws_cdk/aws_vpclattice/__init__.py +1479 -122
  71. aws_cdk/aws_wisdom/__init__.py +8509 -1502
  72. aws_cdk/aws_workspacesweb/__init__.py +1081 -0
  73. {aws_cdk_lib-2.171.1.dist-info → aws_cdk_lib-2.173.0.dist-info}/METADATA +1 -1
  74. {aws_cdk_lib-2.171.1.dist-info → aws_cdk_lib-2.173.0.dist-info}/RECORD +78 -77
  75. {aws_cdk_lib-2.171.1.dist-info → aws_cdk_lib-2.173.0.dist-info}/LICENSE +0 -0
  76. {aws_cdk_lib-2.171.1.dist-info → aws_cdk_lib-2.173.0.dist-info}/NOTICE +0 -0
  77. {aws_cdk_lib-2.171.1.dist-info → aws_cdk_lib-2.173.0.dist-info}/WHEEL +0 -0
  78. {aws_cdk_lib-2.171.1.dist-info → aws_cdk_lib-2.173.0.dist-info}/top_level.txt +0 -0
@@ -390,7 +390,24 @@ lb = elbv2.NetworkLoadBalancer(self, "LB",
390
390
  )
391
391
  ```
392
392
 
393
- You cannot add UDP or TCP_UDP listeners to a dualstack Network Load Balancer.
393
+ You can configure whether to use an IPv6 prefix from each subnet for source NAT by setting `enablePrefixForIpv6SourceNat` to `true`.
394
+ This must be enabled if you want to create a dualstack Network Load Balancer with a listener that uses UDP protocol.
395
+
396
+ ```python
397
+ # vpc: ec2.Vpc
398
+
399
+
400
+ lb = elbv2.NetworkLoadBalancer(self, "LB",
401
+ vpc=vpc,
402
+ ip_address_type=elbv2.IpAddressType.DUAL_STACK,
403
+ enable_prefix_for_ipv6_source_nat=True
404
+ )
405
+
406
+ listener = lb.add_listener("Listener",
407
+ port=1229,
408
+ protocol=elbv2.Protocol.UDP
409
+ )
410
+ ```
394
411
 
395
412
  ### Network Load Balancer attributes
396
413
 
@@ -598,6 +615,47 @@ target_group = elbv2.ApplicationTargetGroup(self, "TargetGroup",
598
615
  )
599
616
  ```
600
617
 
618
+ ### IP Address Type for Target Groups
619
+
620
+ You can set the IP address type for the target group by setting the `ipAddressType` property for both Application and Network target groups.
621
+
622
+ If you set the `ipAddressType` property to `IPV6`, the VPC for the target group must have an associated IPv6 CIDR block.
623
+
624
+ For more information, see IP address type for [Network Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#target-group-ip-address-type) and [Application Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-ip-address-type).
625
+
626
+ ```python
627
+ # vpc: ec2.Vpc
628
+
629
+
630
+ ipv4_application_target_group = elbv2.ApplicationTargetGroup(self, "IPv4ApplicationTargetGroup",
631
+ vpc=vpc,
632
+ port=80,
633
+ target_type=elbv2.TargetType.INSTANCE,
634
+ ip_address_type=elbv2.TargetGroupIpAddressType.IPV4
635
+ )
636
+
637
+ ipv6_application_target_group = elbv2.ApplicationTargetGroup(self, "Ipv6ApplicationTargetGroup",
638
+ vpc=vpc,
639
+ port=80,
640
+ target_type=elbv2.TargetType.INSTANCE,
641
+ ip_address_type=elbv2.TargetGroupIpAddressType.IPV6
642
+ )
643
+
644
+ ipv4_network_target_group = elbv2.NetworkTargetGroup(self, "IPv4NetworkTargetGroup",
645
+ vpc=vpc,
646
+ port=80,
647
+ target_type=elbv2.TargetType.INSTANCE,
648
+ ip_address_type=elbv2.TargetGroupIpAddressType.IPV4
649
+ )
650
+
651
+ ipv6_network_target_group = elbv2.NetworkTargetGroup(self, "Ipv6NetworkTargetGroup",
652
+ vpc=vpc,
653
+ port=80,
654
+ target_type=elbv2.TargetType.INSTANCE,
655
+ ip_address_type=elbv2.TargetGroupIpAddressType.IPV6
656
+ )
657
+ ```
658
+
601
659
  ## Using Lambda Targets
602
660
 
603
661
  To use a Lambda Function as a target, use the integration class in the
@@ -3332,6 +3390,7 @@ class BaseNetworkListenerProps:
3332
3390
  "cross_zone_enabled": "crossZoneEnabled",
3333
3391
  "deregistration_delay": "deregistrationDelay",
3334
3392
  "health_check": "healthCheck",
3393
+ "ip_address_type": "ipAddressType",
3335
3394
  "target_group_name": "targetGroupName",
3336
3395
  "target_type": "targetType",
3337
3396
  "vpc": "vpc",
@@ -3344,6 +3403,7 @@ class BaseTargetGroupProps:
3344
3403
  cross_zone_enabled: typing.Optional[builtins.bool] = None,
3345
3404
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
3346
3405
  health_check: typing.Optional[typing.Union["HealthCheck", typing.Dict[builtins.str, typing.Any]]] = None,
3406
+ ip_address_type: typing.Optional["TargetGroupIpAddressType"] = None,
3347
3407
  target_group_name: typing.Optional[builtins.str] = None,
3348
3408
  target_type: typing.Optional["TargetType"] = None,
3349
3409
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -3353,6 +3413,7 @@ class BaseTargetGroupProps:
3353
3413
  :param cross_zone_enabled: Indicates whether cross zone load balancing is enabled. Default: - use load balancer configuration
3354
3414
  :param deregistration_delay: The amount of time for Elastic Load Balancing to wait before deregistering a target. The range is 0-3600 seconds. Default: 300
3355
3415
  :param health_check: Health check configuration. Default: - The default value for each property in this configuration varies depending on the target.
3416
+ :param ip_address_type: The type of IP addresses of the targets registered with the target group. Default: undefined - ELB defaults to IPv4
3356
3417
  :param target_group_name: The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. Default: - Automatically generated.
3357
3418
  :param target_type: The type of targets registered to this TargetGroup, either IP or Instance. All targets registered into the group must be of this type. If you register targets to the TargetGroup in the CDK app, the TargetType is determined automatically. Default: - Determined automatically.
3358
3419
  :param vpc: The virtual private cloud (VPC). only if ``TargetType`` is ``Ip`` or ``InstanceId`` Default: - undefined
@@ -3384,6 +3445,7 @@ class BaseTargetGroupProps:
3384
3445
  timeout=cdk.Duration.minutes(30),
3385
3446
  unhealthy_threshold_count=123
3386
3447
  ),
3448
+ ip_address_type=elbv2.TargetGroupIpAddressType.IPV4,
3387
3449
  target_group_name="targetGroupName",
3388
3450
  target_type=elbv2.TargetType.INSTANCE,
3389
3451
  vpc=vpc
@@ -3396,6 +3458,7 @@ class BaseTargetGroupProps:
3396
3458
  check_type(argname="argument cross_zone_enabled", value=cross_zone_enabled, expected_type=type_hints["cross_zone_enabled"])
3397
3459
  check_type(argname="argument deregistration_delay", value=deregistration_delay, expected_type=type_hints["deregistration_delay"])
3398
3460
  check_type(argname="argument health_check", value=health_check, expected_type=type_hints["health_check"])
3461
+ check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
3399
3462
  check_type(argname="argument target_group_name", value=target_group_name, expected_type=type_hints["target_group_name"])
3400
3463
  check_type(argname="argument target_type", value=target_type, expected_type=type_hints["target_type"])
3401
3464
  check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
@@ -3406,6 +3469,8 @@ class BaseTargetGroupProps:
3406
3469
  self._values["deregistration_delay"] = deregistration_delay
3407
3470
  if health_check is not None:
3408
3471
  self._values["health_check"] = health_check
3472
+ if ip_address_type is not None:
3473
+ self._values["ip_address_type"] = ip_address_type
3409
3474
  if target_group_name is not None:
3410
3475
  self._values["target_group_name"] = target_group_name
3411
3476
  if target_type is not None:
@@ -3446,6 +3511,15 @@ class BaseTargetGroupProps:
3446
3511
  result = self._values.get("health_check")
3447
3512
  return typing.cast(typing.Optional["HealthCheck"], result)
3448
3513
 
3514
+ @builtins.property
3515
+ def ip_address_type(self) -> typing.Optional["TargetGroupIpAddressType"]:
3516
+ '''The type of IP addresses of the targets registered with the target group.
3517
+
3518
+ :default: undefined - ELB defaults to IPv4
3519
+ '''
3520
+ result = self._values.get("ip_address_type")
3521
+ return typing.cast(typing.Optional["TargetGroupIpAddressType"], result)
3522
+
3449
3523
  @builtins.property
3450
3524
  def target_group_name(self) -> typing.Optional[builtins.str]:
3451
3525
  '''The name of the target group.
@@ -3592,6 +3666,7 @@ class CfnListener(
3592
3666
  value="value"
3593
3667
  )],
3594
3668
  mutual_authentication=elbv2.CfnListener.MutualAuthenticationProperty(
3669
+ advertise_trust_store_ca_names="advertiseTrustStoreCaNames",
3595
3670
  ignore_client_certificate_expiry=False,
3596
3671
  mode="mode",
3597
3672
  trust_store_arn="trustStoreArn"
@@ -4778,7 +4853,7 @@ class CfnListener(
4778
4853
  ) -> None:
4779
4854
  '''Information about a listener attribute.
4780
4855
 
4781
- :param key: The name of the attribute. The following attribute is supported by Network Load Balancers, and Gateway Load Balancers. - ``tcp.idle_timeout.seconds`` - The tcp idle timeout value, in seconds. The valid range is 60-6000 seconds. The default is 350 seconds.
4856
+ :param key: The name of the attribute. The following attribute is supported by Network Load Balancers, and Gateway Load Balancers. - ``tcp.idle_timeout.seconds`` - The tcp idle timeout value, in seconds. The valid range is 60-6000 seconds. The default is 350 seconds. The following attributes are only supported by Application Load Balancers. - ``routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Serial-Number* HTTP request header. - ``routing.http.request.x_amzn_mtls_clientcert_issuer.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Issuer* HTTP request header. - ``routing.http.request.x_amzn_mtls_clientcert_subject.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Subject* HTTP request header. - ``routing.http.request.x_amzn_mtls_clientcert_validity.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Validity* HTTP request header. - ``routing.http.request.x_amzn_mtls_clientcert_leaf.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Leaf* HTTP request header. - ``routing.http.request.x_amzn_mtls_clientcert.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert* HTTP request header. - ``routing.http.request.x_amzn_tls_version.header_name`` - Enables you to modify the header name of the *X-Amzn-Tls-Version* HTTP request header. - ``routing.http.request.x_amzn_tls_cipher_suite.header_name`` - Enables you to modify the header name of the *X-Amzn-Tls-Cipher-Suite* HTTP request header. - ``routing.http.response.server.enabled`` - Enables you to allow or remove the HTTP response server header. - ``routing.http.response.strict_transport_security.header_value`` - Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. - ``routing.http.response.access_control_allow_origin.header_value`` - Specifies which origins are allowed to access the server. - ``routing.http.response.access_control_allow_methods.header_value`` - Returns which HTTP methods are allowed when accessing the server from a different origin. - ``routing.http.response.access_control_allow_headers.header_value`` - Specifies which headers can be used during the request. - ``routing.http.response.access_control_allow_credentials.header_value`` - Indicates whether the browser should include credentials such as cookies or authentication when making requests. - ``routing.http.response.access_control_expose_headers.header_value`` - Returns which headers the browser can expose to the requesting client. - ``routing.http.response.access_control_max_age.header_value`` - Specifies how long the results of a preflight request can be cached, in seconds. - ``routing.http.response.content_security_policy.header_value`` - Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. - ``routing.http.response.x_content_type_options.header_value`` - Indicates whether the MIME types advertised in the *Content-Type* headers should be followed and not be changed. - ``routing.http.response.x_frame_options.header_value`` - Indicates whether the browser is allowed to render a page in a *frame* , *iframe* , *embed* or *object* .
4782
4857
  :param value: The value of the attribute.
4783
4858
 
4784
4859
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-listenerattribute.html
@@ -4813,6 +4888,28 @@ class CfnListener(
4813
4888
 
4814
4889
  - ``tcp.idle_timeout.seconds`` - The tcp idle timeout value, in seconds. The valid range is 60-6000 seconds. The default is 350 seconds.
4815
4890
 
4891
+ The following attributes are only supported by Application Load Balancers.
4892
+
4893
+ - ``routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Serial-Number* HTTP request header.
4894
+ - ``routing.http.request.x_amzn_mtls_clientcert_issuer.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Issuer* HTTP request header.
4895
+ - ``routing.http.request.x_amzn_mtls_clientcert_subject.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Subject* HTTP request header.
4896
+ - ``routing.http.request.x_amzn_mtls_clientcert_validity.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Validity* HTTP request header.
4897
+ - ``routing.http.request.x_amzn_mtls_clientcert_leaf.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Leaf* HTTP request header.
4898
+ - ``routing.http.request.x_amzn_mtls_clientcert.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert* HTTP request header.
4899
+ - ``routing.http.request.x_amzn_tls_version.header_name`` - Enables you to modify the header name of the *X-Amzn-Tls-Version* HTTP request header.
4900
+ - ``routing.http.request.x_amzn_tls_cipher_suite.header_name`` - Enables you to modify the header name of the *X-Amzn-Tls-Cipher-Suite* HTTP request header.
4901
+ - ``routing.http.response.server.enabled`` - Enables you to allow or remove the HTTP response server header.
4902
+ - ``routing.http.response.strict_transport_security.header_value`` - Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS.
4903
+ - ``routing.http.response.access_control_allow_origin.header_value`` - Specifies which origins are allowed to access the server.
4904
+ - ``routing.http.response.access_control_allow_methods.header_value`` - Returns which HTTP methods are allowed when accessing the server from a different origin.
4905
+ - ``routing.http.response.access_control_allow_headers.header_value`` - Specifies which headers can be used during the request.
4906
+ - ``routing.http.response.access_control_allow_credentials.header_value`` - Indicates whether the browser should include credentials such as cookies or authentication when making requests.
4907
+ - ``routing.http.response.access_control_expose_headers.header_value`` - Returns which headers the browser can expose to the requesting client.
4908
+ - ``routing.http.response.access_control_max_age.header_value`` - Specifies how long the results of a preflight request can be cached, in seconds.
4909
+ - ``routing.http.response.content_security_policy.header_value`` - Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats.
4910
+ - ``routing.http.response.x_content_type_options.header_value`` - Indicates whether the MIME types advertised in the *Content-Type* headers should be followed and not be changed.
4911
+ - ``routing.http.response.x_frame_options.header_value`` - Indicates whether the browser is allowed to render a page in a *frame* , *iframe* , *embed* or *object* .
4912
+
4816
4913
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-listenerattribute.html#cfn-elasticloadbalancingv2-listener-listenerattribute-key
4817
4914
  '''
4818
4915
  result = self._values.get("key")
@@ -4842,6 +4939,7 @@ class CfnListener(
4842
4939
  jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.CfnListener.MutualAuthenticationProperty",
4843
4940
  jsii_struct_bases=[],
4844
4941
  name_mapping={
4942
+ "advertise_trust_store_ca_names": "advertiseTrustStoreCaNames",
4845
4943
  "ignore_client_certificate_expiry": "ignoreClientCertificateExpiry",
4846
4944
  "mode": "mode",
4847
4945
  "trust_store_arn": "trustStoreArn",
@@ -4851,12 +4949,14 @@ class CfnListener(
4851
4949
  def __init__(
4852
4950
  self,
4853
4951
  *,
4952
+ advertise_trust_store_ca_names: typing.Optional[builtins.str] = None,
4854
4953
  ignore_client_certificate_expiry: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4855
4954
  mode: typing.Optional[builtins.str] = None,
4856
4955
  trust_store_arn: typing.Optional[builtins.str] = None,
4857
4956
  ) -> None:
4858
4957
  '''Specifies the configuration information for mutual authentication.
4859
4958
 
4959
+ :param advertise_trust_store_ca_names:
4860
4960
  :param ignore_client_certificate_expiry: Indicates whether expired client certificates are ignored.
4861
4961
  :param mode: The client certificate handling method. Options are ``off`` , ``passthrough`` or ``verify`` . The default value is ``off`` .
4862
4962
  :param trust_store_arn: The Amazon Resource Name (ARN) of the trust store.
@@ -4871,6 +4971,7 @@ class CfnListener(
4871
4971
  from aws_cdk import aws_elasticloadbalancingv2 as elbv2
4872
4972
 
4873
4973
  mutual_authentication_property = elbv2.CfnListener.MutualAuthenticationProperty(
4974
+ advertise_trust_store_ca_names="advertiseTrustStoreCaNames",
4874
4975
  ignore_client_certificate_expiry=False,
4875
4976
  mode="mode",
4876
4977
  trust_store_arn="trustStoreArn"
@@ -4878,10 +4979,13 @@ class CfnListener(
4878
4979
  '''
4879
4980
  if __debug__:
4880
4981
  type_hints = typing.get_type_hints(_typecheckingstub__07605e87f763c352d3e6705d69aa07723ad3c005493c1fdef02b175f49d53ee0)
4982
+ check_type(argname="argument advertise_trust_store_ca_names", value=advertise_trust_store_ca_names, expected_type=type_hints["advertise_trust_store_ca_names"])
4881
4983
  check_type(argname="argument ignore_client_certificate_expiry", value=ignore_client_certificate_expiry, expected_type=type_hints["ignore_client_certificate_expiry"])
4882
4984
  check_type(argname="argument mode", value=mode, expected_type=type_hints["mode"])
4883
4985
  check_type(argname="argument trust_store_arn", value=trust_store_arn, expected_type=type_hints["trust_store_arn"])
4884
4986
  self._values: typing.Dict[builtins.str, typing.Any] = {}
4987
+ if advertise_trust_store_ca_names is not None:
4988
+ self._values["advertise_trust_store_ca_names"] = advertise_trust_store_ca_names
4885
4989
  if ignore_client_certificate_expiry is not None:
4886
4990
  self._values["ignore_client_certificate_expiry"] = ignore_client_certificate_expiry
4887
4991
  if mode is not None:
@@ -4889,6 +4993,14 @@ class CfnListener(
4889
4993
  if trust_store_arn is not None:
4890
4994
  self._values["trust_store_arn"] = trust_store_arn
4891
4995
 
4996
+ @builtins.property
4997
+ def advertise_trust_store_ca_names(self) -> typing.Optional[builtins.str]:
4998
+ '''
4999
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-mutualauthentication.html#cfn-elasticloadbalancingv2-listener-mutualauthentication-advertisetruststorecanames
5000
+ '''
5001
+ result = self._values.get("advertise_trust_store_ca_names")
5002
+ return typing.cast(typing.Optional[builtins.str], result)
5003
+
4892
5004
  @builtins.property
4893
5005
  def ignore_client_certificate_expiry(
4894
5006
  self,
@@ -5629,6 +5741,7 @@ class CfnListenerProps:
5629
5741
  value="value"
5630
5742
  )],
5631
5743
  mutual_authentication=elbv2.CfnListener.MutualAuthenticationProperty(
5744
+ advertise_trust_store_ca_names="advertiseTrustStoreCaNames",
5632
5745
  ignore_client_certificate_expiry=False,
5633
5746
  mode="mode",
5634
5747
  trust_store_arn="trustStoreArn"
@@ -8174,6 +8287,9 @@ class CfnLoadBalancer(
8174
8287
  key="key",
8175
8288
  value="value"
8176
8289
  )],
8290
+ minimum_load_balancer_capacity=elbv2.CfnLoadBalancer.MinimumLoadBalancerCapacityProperty(
8291
+ capacity_units=123
8292
+ ),
8177
8293
  name="name",
8178
8294
  scheme="scheme",
8179
8295
  security_groups=["securityGroups"],
@@ -8204,6 +8320,7 @@ class CfnLoadBalancer(
8204
8320
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.str] = None,
8205
8321
  ip_address_type: typing.Optional[builtins.str] = None,
8206
8322
  load_balancer_attributes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnLoadBalancer.LoadBalancerAttributeProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
8323
+ minimum_load_balancer_capacity: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnLoadBalancer.MinimumLoadBalancerCapacityProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
8207
8324
  name: typing.Optional[builtins.str] = None,
8208
8325
  scheme: typing.Optional[builtins.str] = None,
8209
8326
  security_groups: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -8219,6 +8336,7 @@ class CfnLoadBalancer(
8219
8336
  :param enforce_security_group_inbound_rules_on_private_link_traffic: Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through AWS PrivateLink .
8220
8337
  :param ip_address_type: The IP address type. Internal load balancers must use ``ipv4`` . [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses).
8221
8338
  :param load_balancer_attributes: The load balancer attributes.
8339
+ :param minimum_load_balancer_capacity: The minimum capacity for a load balancer.
8222
8340
  :param name: The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-". If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name.
8223
8341
  :param scheme: The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. The default is an Internet-facing load balancer. You can't specify a scheme for a Gateway Load Balancer.
8224
8342
  :param security_groups: [Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer.
@@ -8236,6 +8354,7 @@ class CfnLoadBalancer(
8236
8354
  enforce_security_group_inbound_rules_on_private_link_traffic=enforce_security_group_inbound_rules_on_private_link_traffic,
8237
8355
  ip_address_type=ip_address_type,
8238
8356
  load_balancer_attributes=load_balancer_attributes,
8357
+ minimum_load_balancer_capacity=minimum_load_balancer_capacity,
8239
8358
  name=name,
8240
8359
  scheme=scheme,
8241
8360
  security_groups=security_groups,
@@ -8418,6 +8537,24 @@ class CfnLoadBalancer(
8418
8537
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
8419
8538
  jsii.set(self, "loadBalancerAttributes", value) # pyright: ignore[reportArgumentType]
8420
8539
 
8540
+ @builtins.property
8541
+ @jsii.member(jsii_name="minimumLoadBalancerCapacity")
8542
+ def minimum_load_balancer_capacity(
8543
+ self,
8544
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLoadBalancer.MinimumLoadBalancerCapacityProperty"]]:
8545
+ '''The minimum capacity for a load balancer.'''
8546
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLoadBalancer.MinimumLoadBalancerCapacityProperty"]], jsii.get(self, "minimumLoadBalancerCapacity"))
8547
+
8548
+ @minimum_load_balancer_capacity.setter
8549
+ def minimum_load_balancer_capacity(
8550
+ self,
8551
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLoadBalancer.MinimumLoadBalancerCapacityProperty"]],
8552
+ ) -> None:
8553
+ if __debug__:
8554
+ type_hints = typing.get_type_hints(_typecheckingstub__102164e78a5cf61e67908e476a27971c19e5604c38d90ddca6b4b346581d0209)
8555
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
8556
+ jsii.set(self, "minimumLoadBalancerCapacity", value) # pyright: ignore[reportArgumentType]
8557
+
8421
8558
  @builtins.property
8422
8559
  @jsii.member(jsii_name="name")
8423
8560
  def name(self) -> typing.Optional[builtins.str]:
@@ -8531,7 +8668,7 @@ class CfnLoadBalancer(
8531
8668
  ) -> None:
8532
8669
  '''Specifies an attribute for an Application Load Balancer, a Network Load Balancer, or a Gateway Load Balancer.
8533
8670
 
8534
- :param key: The name of the attribute. The following attributes are supported by all load balancers: - ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false`` . The default is ``false`` . - ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false`` . The default for Network Load Balancers and Gateway Load Balancers is ``false`` . The default for Application Load Balancers is ``true`` , and can't be changed. The following attributes are supported by both Application Load Balancers and Network Load Balancers: - ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false`` . The default is ``false`` . - ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket. - ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs. - ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway. The following attributes are supported by only Application Load Balancers: - ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds. - ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds. - ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false`` . The default is ``false`` . - ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket. - ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs. - ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor`` , ``defensive`` , and ``strictest`` . The default is ``defensive`` . - ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer ( ``true`` ) or routed to targets ( ``false`` ). The default is ``false`` . - ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false`` . The default is ``false`` . - ``routing.http.x_amzn_tls_version_and_cipher_suite.enabled`` - Indicates whether the two headers ( ``x-amzn-tls-version`` and ``x-amzn-tls-cipher-suite`` ), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The ``x-amzn-tls-version`` header has information about the TLS protocol version negotiated with the client, and the ``x-amzn-tls-cipher-suite`` header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are ``true`` and ``false`` . The default is ``false`` . - ``routing.http.xff_client_port.enabled`` - Indicates whether the ``X-Forwarded-For`` header should preserve the source port that the client used to connect to the load balancer. The possible values are ``true`` and ``false`` . The default is ``false`` . - ``routing.http.xff_header_processing.mode`` - Enables you to modify, preserve, or remove the ``X-Forwarded-For`` header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are ``append`` , ``preserve`` , and ``remove`` . The default is ``append`` . - If the value is ``append`` , the Application Load Balancer adds the client IP address (of the last hop) to the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets. - If the value is ``preserve`` the Application Load Balancer preserves the ``X-Forwarded-For`` header in the HTTP request, and sends it to targets without any change. - If the value is ``remove`` , the Application Load Balancer removes the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets. - ``routing.http2.enabled`` - Indicates whether HTTP/2 is enabled. The possible values are ``true`` and ``false`` . The default is ``true`` . Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. - ``waf.fail_open.enabled`` - Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. The possible values are ``true`` and ``false`` . The default is ``false`` . The following attributes are supported by only Network Load Balancers: - ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity. - ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false`` . The default is ``false`` .
8671
+ :param key: The name of the attribute. The following attributes are supported by all load balancers: - ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false`` . The default is ``false`` . - ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false`` . The default for Network Load Balancers and Gateway Load Balancers is ``false`` . The default for Application Load Balancers is ``true`` , and can't be changed. The following attributes are supported by both Application Load Balancers and Network Load Balancers: - ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false`` . The default is ``false`` . - ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket. - ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs. - ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway. - ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false`` . The default is ``false`` . The following attributes are supported by only Application Load Balancers: - ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds. - ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds. - ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false`` . The default is ``false`` . - ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket. - ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs. - ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor`` , ``defensive`` , and ``strictest`` . The default is ``defensive`` . - ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer ( ``true`` ) or routed to targets ( ``false`` ). The default is ``false`` . - ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false`` . The default is ``false`` . - ``routing.http.x_amzn_tls_version_and_cipher_suite.enabled`` - Indicates whether the two headers ( ``x-amzn-tls-version`` and ``x-amzn-tls-cipher-suite`` ), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The ``x-amzn-tls-version`` header has information about the TLS protocol version negotiated with the client, and the ``x-amzn-tls-cipher-suite`` header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are ``true`` and ``false`` . The default is ``false`` . - ``routing.http.xff_client_port.enabled`` - Indicates whether the ``X-Forwarded-For`` header should preserve the source port that the client used to connect to the load balancer. The possible values are ``true`` and ``false`` . The default is ``false`` . - ``routing.http.xff_header_processing.mode`` - Enables you to modify, preserve, or remove the ``X-Forwarded-For`` header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are ``append`` , ``preserve`` , and ``remove`` . The default is ``append`` . - If the value is ``append`` , the Application Load Balancer adds the client IP address (of the last hop) to the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets. - If the value is ``preserve`` the Application Load Balancer preserves the ``X-Forwarded-For`` header in the HTTP request, and sends it to targets without any change. - If the value is ``remove`` , the Application Load Balancer removes the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets. - ``routing.http2.enabled`` - Indicates whether HTTP/2 is enabled. The possible values are ``true`` and ``false`` . The default is ``true`` . Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. - ``waf.fail_open.enabled`` - Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. The possible values are ``true`` and ``false`` . The default is ``false`` . The following attributes are supported by only Network Load Balancers: - ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity.
8535
8672
  :param value: The value of the attribute.
8536
8673
 
8537
8674
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html
@@ -8573,6 +8710,7 @@ class CfnLoadBalancer(
8573
8710
  - ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.
8574
8711
  - ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs.
8575
8712
  - ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.
8713
+ - ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false`` . The default is ``false`` .
8576
8714
 
8577
8715
  The following attributes are supported by only Application Load Balancers:
8578
8716
 
@@ -8596,7 +8734,6 @@ class CfnLoadBalancer(
8596
8734
  The following attributes are supported by only Network Load Balancers:
8597
8735
 
8598
8736
  - ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity.
8599
- - ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false`` . The default is ``false`` .
8600
8737
 
8601
8738
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html#cfn-elasticloadbalancingv2-loadbalancer-loadbalancerattribute-key
8602
8739
  '''
@@ -8623,6 +8760,58 @@ class CfnLoadBalancer(
8623
8760
  k + "=" + repr(v) for k, v in self._values.items()
8624
8761
  )
8625
8762
 
8763
+ @jsii.data_type(
8764
+ jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.CfnLoadBalancer.MinimumLoadBalancerCapacityProperty",
8765
+ jsii_struct_bases=[],
8766
+ name_mapping={"capacity_units": "capacityUnits"},
8767
+ )
8768
+ class MinimumLoadBalancerCapacityProperty:
8769
+ def __init__(self, *, capacity_units: jsii.Number) -> None:
8770
+ '''The minimum capacity for a load balancer.
8771
+
8772
+ :param capacity_units: The number of capacity units.
8773
+
8774
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-minimumloadbalancercapacity.html
8775
+ :exampleMetadata: fixture=_generated
8776
+
8777
+ Example::
8778
+
8779
+ # The code below shows an example of how to instantiate this type.
8780
+ # The values are placeholders you should change.
8781
+ from aws_cdk import aws_elasticloadbalancingv2 as elbv2
8782
+
8783
+ minimum_load_balancer_capacity_property = elbv2.CfnLoadBalancer.MinimumLoadBalancerCapacityProperty(
8784
+ capacity_units=123
8785
+ )
8786
+ '''
8787
+ if __debug__:
8788
+ type_hints = typing.get_type_hints(_typecheckingstub__bd0d2d4a891c02fabab09ae876b5f738a440bf3402f1db5dc28e3cdd47b733bc)
8789
+ check_type(argname="argument capacity_units", value=capacity_units, expected_type=type_hints["capacity_units"])
8790
+ self._values: typing.Dict[builtins.str, typing.Any] = {
8791
+ "capacity_units": capacity_units,
8792
+ }
8793
+
8794
+ @builtins.property
8795
+ def capacity_units(self) -> jsii.Number:
8796
+ '''The number of capacity units.
8797
+
8798
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-minimumloadbalancercapacity.html#cfn-elasticloadbalancingv2-loadbalancer-minimumloadbalancercapacity-capacityunits
8799
+ '''
8800
+ result = self._values.get("capacity_units")
8801
+ assert result is not None, "Required property 'capacity_units' is missing"
8802
+ return typing.cast(jsii.Number, result)
8803
+
8804
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
8805
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
8806
+
8807
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
8808
+ return not (rhs == self)
8809
+
8810
+ def __repr__(self) -> str:
8811
+ return "MinimumLoadBalancerCapacityProperty(%s)" % ", ".join(
8812
+ k + "=" + repr(v) for k, v in self._values.items()
8813
+ )
8814
+
8626
8815
  @jsii.data_type(
8627
8816
  jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.CfnLoadBalancer.SubnetMappingProperty",
8628
8817
  jsii_struct_bases=[],
@@ -8758,6 +8947,7 @@ class CfnLoadBalancer(
8758
8947
  "enforce_security_group_inbound_rules_on_private_link_traffic": "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic",
8759
8948
  "ip_address_type": "ipAddressType",
8760
8949
  "load_balancer_attributes": "loadBalancerAttributes",
8950
+ "minimum_load_balancer_capacity": "minimumLoadBalancerCapacity",
8761
8951
  "name": "name",
8762
8952
  "scheme": "scheme",
8763
8953
  "security_groups": "securityGroups",
@@ -8775,6 +8965,7 @@ class CfnLoadBalancerProps:
8775
8965
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.str] = None,
8776
8966
  ip_address_type: typing.Optional[builtins.str] = None,
8777
8967
  load_balancer_attributes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLoadBalancer.LoadBalancerAttributeProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
8968
+ minimum_load_balancer_capacity: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLoadBalancer.MinimumLoadBalancerCapacityProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8778
8969
  name: typing.Optional[builtins.str] = None,
8779
8970
  scheme: typing.Optional[builtins.str] = None,
8780
8971
  security_groups: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -8789,6 +8980,7 @@ class CfnLoadBalancerProps:
8789
8980
  :param enforce_security_group_inbound_rules_on_private_link_traffic: Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through AWS PrivateLink .
8790
8981
  :param ip_address_type: The IP address type. Internal load balancers must use ``ipv4`` . [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses).
8791
8982
  :param load_balancer_attributes: The load balancer attributes.
8983
+ :param minimum_load_balancer_capacity: The minimum capacity for a load balancer.
8792
8984
  :param name: The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-". If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name.
8793
8985
  :param scheme: The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. The default is an Internet-facing load balancer. You can't specify a scheme for a Gateway Load Balancer.
8794
8986
  :param security_groups: [Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer.
@@ -8814,6 +9006,9 @@ class CfnLoadBalancerProps:
8814
9006
  key="key",
8815
9007
  value="value"
8816
9008
  )],
9009
+ minimum_load_balancer_capacity=elbv2.CfnLoadBalancer.MinimumLoadBalancerCapacityProperty(
9010
+ capacity_units=123
9011
+ ),
8817
9012
  name="name",
8818
9013
  scheme="scheme",
8819
9014
  security_groups=["securityGroups"],
@@ -8840,6 +9035,7 @@ class CfnLoadBalancerProps:
8840
9035
  check_type(argname="argument enforce_security_group_inbound_rules_on_private_link_traffic", value=enforce_security_group_inbound_rules_on_private_link_traffic, expected_type=type_hints["enforce_security_group_inbound_rules_on_private_link_traffic"])
8841
9036
  check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
8842
9037
  check_type(argname="argument load_balancer_attributes", value=load_balancer_attributes, expected_type=type_hints["load_balancer_attributes"])
9038
+ check_type(argname="argument minimum_load_balancer_capacity", value=minimum_load_balancer_capacity, expected_type=type_hints["minimum_load_balancer_capacity"])
8843
9039
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
8844
9040
  check_type(argname="argument scheme", value=scheme, expected_type=type_hints["scheme"])
8845
9041
  check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
@@ -8856,6 +9052,8 @@ class CfnLoadBalancerProps:
8856
9052
  self._values["ip_address_type"] = ip_address_type
8857
9053
  if load_balancer_attributes is not None:
8858
9054
  self._values["load_balancer_attributes"] = load_balancer_attributes
9055
+ if minimum_load_balancer_capacity is not None:
9056
+ self._values["minimum_load_balancer_capacity"] = minimum_load_balancer_capacity
8859
9057
  if name is not None:
8860
9058
  self._values["name"] = name
8861
9059
  if scheme is not None:
@@ -8919,6 +9117,17 @@ class CfnLoadBalancerProps:
8919
9117
  result = self._values.get("load_balancer_attributes")
8920
9118
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnLoadBalancer.LoadBalancerAttributeProperty]]]], result)
8921
9119
 
9120
+ @builtins.property
9121
+ def minimum_load_balancer_capacity(
9122
+ self,
9123
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnLoadBalancer.MinimumLoadBalancerCapacityProperty]]:
9124
+ '''The minimum capacity for a load balancer.
9125
+
9126
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-minimumloadbalancercapacity
9127
+ '''
9128
+ result = self._values.get("minimum_load_balancer_capacity")
9129
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnLoadBalancer.MinimumLoadBalancerCapacityProperty]], result)
9130
+
8922
9131
  @builtins.property
8923
9132
  def name(self) -> typing.Optional[builtins.str]:
8924
9133
  '''The name of the load balancer.
@@ -11284,15 +11493,15 @@ class HealthCheck:
11284
11493
  '''Properties for configuring a health check.
11285
11494
 
11286
11495
  :param enabled: Indicates whether health checks are enabled. If the target type is lambda, health checks are disabled by default but can be enabled. If the target type is instance or ip, health checks are always enabled and cannot be disabled. Default: - Determined automatically.
11287
- :param healthy_grpc_codes: GRPC code to use when checking for a successful response from a target. You can specify values between 0 and 99. You can specify multiple values (for example, "0,1") or a range of values (for example, "0-5"). Default: - 12
11496
+ :param healthy_grpc_codes: GRPC code to use when checking for a successful response from a target. You can specify values between 0 and 99. You can specify multiple values (for example, "0,1") or a range of values (for example, "0-5"). Default: 12
11288
11497
  :param healthy_http_codes: HTTP code to use when checking for a successful response from a target. For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200. You can specify multiple values (for example, "200,202") or a range of values (for example, "200-299").
11289
- :param healthy_threshold_count: The number of consecutive health checks successes required before considering an unhealthy target healthy. For Application Load Balancers, the default is 5. For Network Load Balancers, the default is 3. Default: 5 for ALBs, 3 for NLBs
11290
- :param interval: The approximate number of seconds between health checks for an individual target. Must be 5 to 300 seconds Default: 10 seconds if protocol is ``GENEVE``, 35 seconds if target type is ``lambda``, else 30 seconds
11498
+ :param healthy_threshold_count: The number of consecutive health checks successes required before considering an unhealthy target healthy. For Application Load Balancers, the default is 5. For Network Load Balancers, the default is 3. Default: - 5 for ALBs, 3 for NLBs
11499
+ :param interval: The approximate number of seconds between health checks for an individual target. Must be 5 to 300 seconds Default: - 10 seconds if protocol is ``GENEVE``, 35 seconds if target type is ``lambda``, else 30 seconds
11291
11500
  :param path: The ping path destination where Elastic Load Balancing sends health check requests. Default: /
11292
11501
  :param port: The port that the load balancer uses when performing health checks on the targets. Default: 'traffic-port'
11293
- :param protocol: The protocol the load balancer uses when performing health checks on targets. The TCP protocol is supported for health checks only if the protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The TLS, UDP, and TCP_UDP protocols are not supported for health checks. Default: HTTP for ALBs, TCP for NLBs
11294
- :param timeout: The amount of time, in seconds, during which no response from a target means a failed health check. Must be 2 to 120 seconds. Default: 6 seconds if the protocol is HTTP, 5 seconds if protocol is ``GENEVE``, 30 seconds if target type is ``lambda``, 10 seconds for TCP, TLS, or HTTPS
11295
- :param unhealthy_threshold_count: The number of consecutive health check failures required before considering a target unhealthy. For Application Load Balancers, the default is 2. For Network Load Balancers, this value must be the same as the healthy threshold count. Default: 2
11502
+ :param protocol: The protocol the load balancer uses when performing health checks on targets. The TCP protocol is supported for health checks only if the protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The TLS, UDP, and TCP_UDP protocols are not supported for health checks. Default: - HTTP for ALBs, TCP for NLBs
11503
+ :param timeout: The amount of time, in seconds, during which no response from a target means a failed health check. Must be 2 to 120 seconds. Default: - 6 seconds if the protocol is HTTP, 5 seconds if protocol is ``GENEVE``, 30 seconds if target type is ``lambda``, 10 seconds for TCP, TLS, or HTTPS
11504
+ :param unhealthy_threshold_count: The number of consecutive health check failures required before considering a target unhealthy. For Application Load Balancers, the default is 2. For Network Load Balancers, the range is between 2-10 and can be set accordingly. Default: 2
11296
11505
 
11297
11506
  :exampleMetadata: infused
11298
11507
 
@@ -11369,7 +11578,7 @@ class HealthCheck:
11369
11578
  You can specify values between 0 and 99. You can specify multiple values
11370
11579
  (for example, "0,1") or a range of values (for example, "0-5").
11371
11580
 
11372
- :default: - 12
11581
+ :default: 12
11373
11582
  '''
11374
11583
  result = self._values.get("healthy_grpc_codes")
11375
11584
  return typing.cast(typing.Optional[builtins.str], result)
@@ -11391,7 +11600,7 @@ class HealthCheck:
11391
11600
 
11392
11601
  For Application Load Balancers, the default is 5. For Network Load Balancers, the default is 3.
11393
11602
 
11394
- :default: 5 for ALBs, 3 for NLBs
11603
+ :default: - 5 for ALBs, 3 for NLBs
11395
11604
  '''
11396
11605
  result = self._values.get("healthy_threshold_count")
11397
11606
  return typing.cast(typing.Optional[jsii.Number], result)
@@ -11402,7 +11611,7 @@ class HealthCheck:
11402
11611
 
11403
11612
  Must be 5 to 300 seconds
11404
11613
 
11405
- :default: 10 seconds if protocol is ``GENEVE``, 35 seconds if target type is ``lambda``, else 30 seconds
11614
+ :default: - 10 seconds if protocol is ``GENEVE``, 35 seconds if target type is ``lambda``, else 30 seconds
11406
11615
  '''
11407
11616
  result = self._values.get("interval")
11408
11617
  return typing.cast(typing.Optional[_Duration_4839e8c3], result)
@@ -11432,7 +11641,7 @@ class HealthCheck:
11432
11641
  The TCP protocol is supported for health checks only if the protocol of the target group is TCP, TLS, UDP, or TCP_UDP.
11433
11642
  The TLS, UDP, and TCP_UDP protocols are not supported for health checks.
11434
11643
 
11435
- :default: HTTP for ALBs, TCP for NLBs
11644
+ :default: - HTTP for ALBs, TCP for NLBs
11436
11645
  '''
11437
11646
  result = self._values.get("protocol")
11438
11647
  return typing.cast(typing.Optional["Protocol"], result)
@@ -11443,7 +11652,7 @@ class HealthCheck:
11443
11652
 
11444
11653
  Must be 2 to 120 seconds.
11445
11654
 
11446
- :default: 6 seconds if the protocol is HTTP, 5 seconds if protocol is ``GENEVE``, 30 seconds if target type is ``lambda``, 10 seconds for TCP, TLS, or HTTPS
11655
+ :default: - 6 seconds if the protocol is HTTP, 5 seconds if protocol is ``GENEVE``, 30 seconds if target type is ``lambda``, 10 seconds for TCP, TLS, or HTTPS
11447
11656
  '''
11448
11657
  result = self._values.get("timeout")
11449
11658
  return typing.cast(typing.Optional[_Duration_4839e8c3], result)
@@ -11453,7 +11662,7 @@ class HealthCheck:
11453
11662
  '''The number of consecutive health check failures required before considering a target unhealthy.
11454
11663
 
11455
11664
  For Application Load Balancers, the default is 2. For Network Load
11456
- Balancers, this value must be the same as the healthy threshold count.
11665
+ Balancers, the range is between 2-10 and can be set accordingly.
11457
11666
 
11458
11667
  :default: 2
11459
11668
  '''
@@ -15273,9 +15482,15 @@ class IpAddressType(enum.Enum):
15273
15482
  # vpc: ec2.Vpc
15274
15483
 
15275
15484
 
15276
- lb = elbv2.ApplicationLoadBalancer(self, "LB",
15485
+ lb = elbv2.NetworkLoadBalancer(self, "LB",
15277
15486
  vpc=vpc,
15278
- ip_address_type=elbv2.IpAddressType.DUAL_STACK
15487
+ ip_address_type=elbv2.IpAddressType.DUAL_STACK,
15488
+ enable_prefix_for_ipv6_source_nat=True
15489
+ )
15490
+
15491
+ listener = lb.add_listener("Listener",
15492
+ port=1229,
15493
+ protocol=elbv2.Protocol.UDP
15279
15494
  )
15280
15495
  '''
15281
15496
 
@@ -16573,18 +16788,18 @@ class NetworkLoadBalancer(
16573
16788
 
16574
16789
  Example::
16575
16790
 
16576
- from aws_cdk.aws_apigatewayv2_integrations import HttpNlbIntegration
16791
+ # vpc: ec2.Vpc
16577
16792
 
16578
16793
 
16579
- vpc = ec2.Vpc(self, "VPC")
16580
- lb = elbv2.NetworkLoadBalancer(self, "lb", vpc=vpc)
16581
- listener = lb.add_listener("listener", port=80)
16582
- listener.add_targets("target",
16583
- port=80
16794
+ lb = elbv2.NetworkLoadBalancer(self, "LB",
16795
+ vpc=vpc,
16796
+ ip_address_type=elbv2.IpAddressType.DUAL_STACK,
16797
+ enable_prefix_for_ipv6_source_nat=True
16584
16798
  )
16585
16799
 
16586
- http_endpoint = apigwv2.HttpApi(self, "HttpProxyPrivateApi",
16587
- default_integration=HttpNlbIntegration("DefaultIntegration", listener)
16800
+ listener = lb.add_listener("Listener",
16801
+ port=1229,
16802
+ protocol=elbv2.Protocol.UDP
16588
16803
  )
16589
16804
  '''
16590
16805
 
@@ -16594,6 +16809,7 @@ class NetworkLoadBalancer(
16594
16809
  id: builtins.str,
16595
16810
  *,
16596
16811
  client_routing_policy: typing.Optional[ClientRoutingPolicy] = None,
16812
+ enable_prefix_for_ipv6_source_nat: typing.Optional[builtins.bool] = None,
16597
16813
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
16598
16814
  ip_address_type: typing.Optional[IpAddressType] = None,
16599
16815
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
@@ -16610,6 +16826,7 @@ class NetworkLoadBalancer(
16610
16826
  :param scope: -
16611
16827
  :param id: -
16612
16828
  :param client_routing_policy: The AZ affinity routing policy. Default: - AZ affinity is disabled.
16829
+ :param enable_prefix_for_ipv6_source_nat: Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be IpAddressType.DUALSTACK. Default: undefined - NLB default behavior is false
16613
16830
  :param enforce_security_group_inbound_rules_on_private_link_traffic: Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through AWS PrivateLink. Default: true
16614
16831
  :param ip_address_type: The type of IP addresses to use. If you want to add a UDP or TCP_UDP listener to the load balancer, you must choose IPv4. Default: IpAddressType.IPV4
16615
16832
  :param security_groups: Security groups to associate with this load balancer. Default: - No security groups associated with the load balancer.
@@ -16628,6 +16845,7 @@ class NetworkLoadBalancer(
16628
16845
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
16629
16846
  props = NetworkLoadBalancerProps(
16630
16847
  client_routing_policy=client_routing_policy,
16848
+ enable_prefix_for_ipv6_source_nat=enable_prefix_for_ipv6_source_nat,
16631
16849
  enforce_security_group_inbound_rules_on_private_link_traffic=enforce_security_group_inbound_rules_on_private_link_traffic,
16632
16850
  ip_address_type=ip_address_type,
16633
16851
  security_groups=security_groups,
@@ -17380,6 +17598,7 @@ class NetworkLoadBalancerLookupOptions(BaseLoadBalancerLookupOptions):
17380
17598
  "load_balancer_name": "loadBalancerName",
17381
17599
  "vpc_subnets": "vpcSubnets",
17382
17600
  "client_routing_policy": "clientRoutingPolicy",
17601
+ "enable_prefix_for_ipv6_source_nat": "enablePrefixForIpv6SourceNat",
17383
17602
  "enforce_security_group_inbound_rules_on_private_link_traffic": "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic",
17384
17603
  "ip_address_type": "ipAddressType",
17385
17604
  "security_groups": "securityGroups",
@@ -17398,6 +17617,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
17398
17617
  load_balancer_name: typing.Optional[builtins.str] = None,
17399
17618
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
17400
17619
  client_routing_policy: typing.Optional[ClientRoutingPolicy] = None,
17620
+ enable_prefix_for_ipv6_source_nat: typing.Optional[builtins.bool] = None,
17401
17621
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
17402
17622
  ip_address_type: typing.Optional[IpAddressType] = None,
17403
17623
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
@@ -17413,6 +17633,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
17413
17633
  :param load_balancer_name: Name of the load balancer. Default: - Automatically generated name.
17414
17634
  :param vpc_subnets: Which subnets place the load balancer in. Default: - the Vpc default strategy.
17415
17635
  :param client_routing_policy: The AZ affinity routing policy. Default: - AZ affinity is disabled.
17636
+ :param enable_prefix_for_ipv6_source_nat: Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be IpAddressType.DUALSTACK. Default: undefined - NLB default behavior is false
17416
17637
  :param enforce_security_group_inbound_rules_on_private_link_traffic: Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through AWS PrivateLink. Default: true
17417
17638
  :param ip_address_type: The type of IP addresses to use. If you want to add a UDP or TCP_UDP listener to the load balancer, you must choose IPv4. Default: IpAddressType.IPV4
17418
17639
  :param security_groups: Security groups to associate with this load balancer. Default: - No security groups associated with the load balancer.
@@ -17422,18 +17643,18 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
17422
17643
 
17423
17644
  Example::
17424
17645
 
17425
- from aws_cdk.aws_apigatewayv2_integrations import HttpNlbIntegration
17646
+ # vpc: ec2.Vpc
17426
17647
 
17427
17648
 
17428
- vpc = ec2.Vpc(self, "VPC")
17429
- lb = elbv2.NetworkLoadBalancer(self, "lb", vpc=vpc)
17430
- listener = lb.add_listener("listener", port=80)
17431
- listener.add_targets("target",
17432
- port=80
17649
+ lb = elbv2.NetworkLoadBalancer(self, "LB",
17650
+ vpc=vpc,
17651
+ ip_address_type=elbv2.IpAddressType.DUAL_STACK,
17652
+ enable_prefix_for_ipv6_source_nat=True
17433
17653
  )
17434
17654
 
17435
- http_endpoint = apigwv2.HttpApi(self, "HttpProxyPrivateApi",
17436
- default_integration=HttpNlbIntegration("DefaultIntegration", listener)
17655
+ listener = lb.add_listener("Listener",
17656
+ port=1229,
17657
+ protocol=elbv2.Protocol.UDP
17437
17658
  )
17438
17659
  '''
17439
17660
  if isinstance(vpc_subnets, dict):
@@ -17448,6 +17669,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
17448
17669
  check_type(argname="argument load_balancer_name", value=load_balancer_name, expected_type=type_hints["load_balancer_name"])
17449
17670
  check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
17450
17671
  check_type(argname="argument client_routing_policy", value=client_routing_policy, expected_type=type_hints["client_routing_policy"])
17672
+ check_type(argname="argument enable_prefix_for_ipv6_source_nat", value=enable_prefix_for_ipv6_source_nat, expected_type=type_hints["enable_prefix_for_ipv6_source_nat"])
17451
17673
  check_type(argname="argument enforce_security_group_inbound_rules_on_private_link_traffic", value=enforce_security_group_inbound_rules_on_private_link_traffic, expected_type=type_hints["enforce_security_group_inbound_rules_on_private_link_traffic"])
17452
17674
  check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
17453
17675
  check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
@@ -17469,6 +17691,8 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
17469
17691
  self._values["vpc_subnets"] = vpc_subnets
17470
17692
  if client_routing_policy is not None:
17471
17693
  self._values["client_routing_policy"] = client_routing_policy
17694
+ if enable_prefix_for_ipv6_source_nat is not None:
17695
+ self._values["enable_prefix_for_ipv6_source_nat"] = enable_prefix_for_ipv6_source_nat
17472
17696
  if enforce_security_group_inbound_rules_on_private_link_traffic is not None:
17473
17697
  self._values["enforce_security_group_inbound_rules_on_private_link_traffic"] = enforce_security_group_inbound_rules_on_private_link_traffic
17474
17698
  if ip_address_type is not None:
@@ -17555,6 +17779,17 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
17555
17779
  result = self._values.get("client_routing_policy")
17556
17780
  return typing.cast(typing.Optional[ClientRoutingPolicy], result)
17557
17781
 
17782
+ @builtins.property
17783
+ def enable_prefix_for_ipv6_source_nat(self) -> typing.Optional[builtins.bool]:
17784
+ '''Indicates whether to use an IPv6 prefix from each subnet for source NAT.
17785
+
17786
+ The IP address type must be IpAddressType.DUALSTACK.
17787
+
17788
+ :default: undefined - NLB default behavior is false
17789
+ '''
17790
+ result = self._values.get("enable_prefix_for_ipv6_source_nat")
17791
+ return typing.cast(typing.Optional[builtins.bool], result)
17792
+
17558
17793
  @builtins.property
17559
17794
  def enforce_security_group_inbound_rules_on_private_link_traffic(
17560
17795
  self,
@@ -17617,6 +17852,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
17617
17852
  "cross_zone_enabled": "crossZoneEnabled",
17618
17853
  "deregistration_delay": "deregistrationDelay",
17619
17854
  "health_check": "healthCheck",
17855
+ "ip_address_type": "ipAddressType",
17620
17856
  "target_group_name": "targetGroupName",
17621
17857
  "target_type": "targetType",
17622
17858
  "vpc": "vpc",
@@ -17635,6 +17871,7 @@ class NetworkTargetGroupProps(BaseTargetGroupProps):
17635
17871
  cross_zone_enabled: typing.Optional[builtins.bool] = None,
17636
17872
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
17637
17873
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
17874
+ ip_address_type: typing.Optional["TargetGroupIpAddressType"] = None,
17638
17875
  target_group_name: typing.Optional[builtins.str] = None,
17639
17876
  target_type: typing.Optional["TargetType"] = None,
17640
17877
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -17650,6 +17887,7 @@ class NetworkTargetGroupProps(BaseTargetGroupProps):
17650
17887
  :param cross_zone_enabled: Indicates whether cross zone load balancing is enabled. Default: - use load balancer configuration
17651
17888
  :param deregistration_delay: The amount of time for Elastic Load Balancing to wait before deregistering a target. The range is 0-3600 seconds. Default: 300
17652
17889
  :param health_check: Health check configuration. Default: - The default value for each property in this configuration varies depending on the target.
17890
+ :param ip_address_type: The type of IP addresses of the targets registered with the target group. Default: undefined - ELB defaults to IPv4
17653
17891
  :param target_group_name: The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. Default: - Automatically generated.
17654
17892
  :param target_type: The type of targets registered to this TargetGroup, either IP or Instance. All targets registered into the group must be of this type. If you register targets to the TargetGroup in the CDK app, the TargetType is determined automatically. Default: - Determined automatically.
17655
17893
  :param vpc: The virtual private cloud (VPC). only if ``TargetType`` is ``Ip`` or ``InstanceId`` Default: - undefined
@@ -17660,45 +17898,39 @@ class NetworkTargetGroupProps(BaseTargetGroupProps):
17660
17898
  :param proxy_protocol_v2: Indicates whether Proxy Protocol version 2 is enabled. Default: false
17661
17899
  :param targets: The targets to add to this target group. Can be ``Instance``, ``IPAddress``, or any self-registering load balancing target. If you use either ``Instance`` or ``IPAddress`` as targets, all target must be of the same type. Default: - No targets.
17662
17900
 
17663
- :exampleMetadata: fixture=_generated
17901
+ :exampleMetadata: infused
17664
17902
 
17665
17903
  Example::
17666
17904
 
17667
- # The code below shows an example of how to instantiate this type.
17668
- # The values are placeholders you should change.
17669
- import aws_cdk as cdk
17670
- from aws_cdk import aws_ec2 as ec2
17671
- from aws_cdk import aws_elasticloadbalancingv2 as elbv2
17672
-
17673
- # network_load_balancer_target: elbv2.INetworkLoadBalancerTarget
17674
17905
  # vpc: ec2.Vpc
17675
17906
 
17676
- network_target_group_props = elbv2.NetworkTargetGroupProps(
17677
- port=123,
17678
17907
 
17679
- # the properties below are optional
17680
- connection_termination=False,
17681
- cross_zone_enabled=False,
17682
- deregistration_delay=cdk.Duration.minutes(30),
17683
- health_check=elbv2.HealthCheck(
17684
- enabled=False,
17685
- healthy_grpc_codes="healthyGrpcCodes",
17686
- healthy_http_codes="healthyHttpCodes",
17687
- healthy_threshold_count=123,
17688
- interval=cdk.Duration.minutes(30),
17689
- path="path",
17690
- port="port",
17691
- protocol=elbv2.Protocol.HTTP,
17692
- timeout=cdk.Duration.minutes(30),
17693
- unhealthy_threshold_count=123
17694
- ),
17695
- preserve_client_ip=False,
17696
- protocol=elbv2.Protocol.HTTP,
17697
- proxy_protocol_v2=False,
17698
- target_group_name="targetGroupName",
17699
- targets=[network_load_balancer_target],
17908
+ ipv4_application_target_group = elbv2.ApplicationTargetGroup(self, "IPv4ApplicationTargetGroup",
17909
+ vpc=vpc,
17910
+ port=80,
17700
17911
  target_type=elbv2.TargetType.INSTANCE,
17701
- vpc=vpc
17912
+ ip_address_type=elbv2.TargetGroupIpAddressType.IPV4
17913
+ )
17914
+
17915
+ ipv6_application_target_group = elbv2.ApplicationTargetGroup(self, "Ipv6ApplicationTargetGroup",
17916
+ vpc=vpc,
17917
+ port=80,
17918
+ target_type=elbv2.TargetType.INSTANCE,
17919
+ ip_address_type=elbv2.TargetGroupIpAddressType.IPV6
17920
+ )
17921
+
17922
+ ipv4_network_target_group = elbv2.NetworkTargetGroup(self, "IPv4NetworkTargetGroup",
17923
+ vpc=vpc,
17924
+ port=80,
17925
+ target_type=elbv2.TargetType.INSTANCE,
17926
+ ip_address_type=elbv2.TargetGroupIpAddressType.IPV4
17927
+ )
17928
+
17929
+ ipv6_network_target_group = elbv2.NetworkTargetGroup(self, "Ipv6NetworkTargetGroup",
17930
+ vpc=vpc,
17931
+ port=80,
17932
+ target_type=elbv2.TargetType.INSTANCE,
17933
+ ip_address_type=elbv2.TargetGroupIpAddressType.IPV6
17702
17934
  )
17703
17935
  '''
17704
17936
  if isinstance(health_check, dict):
@@ -17708,6 +17940,7 @@ class NetworkTargetGroupProps(BaseTargetGroupProps):
17708
17940
  check_type(argname="argument cross_zone_enabled", value=cross_zone_enabled, expected_type=type_hints["cross_zone_enabled"])
17709
17941
  check_type(argname="argument deregistration_delay", value=deregistration_delay, expected_type=type_hints["deregistration_delay"])
17710
17942
  check_type(argname="argument health_check", value=health_check, expected_type=type_hints["health_check"])
17943
+ check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
17711
17944
  check_type(argname="argument target_group_name", value=target_group_name, expected_type=type_hints["target_group_name"])
17712
17945
  check_type(argname="argument target_type", value=target_type, expected_type=type_hints["target_type"])
17713
17946
  check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
@@ -17726,6 +17959,8 @@ class NetworkTargetGroupProps(BaseTargetGroupProps):
17726
17959
  self._values["deregistration_delay"] = deregistration_delay
17727
17960
  if health_check is not None:
17728
17961
  self._values["health_check"] = health_check
17962
+ if ip_address_type is not None:
17963
+ self._values["ip_address_type"] = ip_address_type
17729
17964
  if target_group_name is not None:
17730
17965
  self._values["target_group_name"] = target_group_name
17731
17966
  if target_type is not None:
@@ -17776,6 +18011,15 @@ class NetworkTargetGroupProps(BaseTargetGroupProps):
17776
18011
  result = self._values.get("health_check")
17777
18012
  return typing.cast(typing.Optional[HealthCheck], result)
17778
18013
 
18014
+ @builtins.property
18015
+ def ip_address_type(self) -> typing.Optional["TargetGroupIpAddressType"]:
18016
+ '''The type of IP addresses of the targets registered with the target group.
18017
+
18018
+ :default: undefined - ELB defaults to IPv4
18019
+ '''
18020
+ result = self._values.get("ip_address_type")
18021
+ return typing.cast(typing.Optional["TargetGroupIpAddressType"], result)
18022
+
17779
18023
  @builtins.property
17780
18024
  def target_group_name(self) -> typing.Optional[builtins.str]:
17781
18025
  '''The name of the target group.
@@ -17966,85 +18210,18 @@ class Protocol(enum.Enum):
17966
18210
 
17967
18211
  Example::
17968
18212
 
17969
- from aws_cdk.aws_certificatemanager import Certificate
17970
- from aws_cdk.aws_ec2 import InstanceType
17971
- from aws_cdk.aws_ecs import Cluster, ContainerImage
17972
- from aws_cdk.aws_elasticloadbalancingv2 import ApplicationProtocol, Protocol, SslPolicy
17973
- from aws_cdk.aws_route53 import PublicHostedZone
18213
+ # vpc: ec2.Vpc
17974
18214
 
17975
- vpc = ec2.Vpc(self, "Vpc", max_azs=1)
17976
18215
 
17977
- load_balanced_fargate_service = ecs_patterns.ApplicationMultipleTargetGroupsFargateService(self, "myService",
17978
- cluster=ecs.Cluster(self, "EcsCluster", vpc=vpc),
17979
- memory_limit_mi_b=256,
17980
- task_image_options=ecsPatterns.ApplicationLoadBalancedTaskImageProps(
17981
- image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample")
17982
- ),
17983
- enable_execute_command=True,
17984
- load_balancers=[ecsPatterns.ApplicationLoadBalancerProps(
17985
- name="lb",
17986
- idle_timeout=Duration.seconds(400),
17987
- domain_name="api.example.com",
17988
- domain_zone=PublicHostedZone(self, "HostedZone", zone_name="example.com"),
17989
- listeners=[ecsPatterns.ApplicationListenerProps(
17990
- name="listener",
17991
- protocol=ApplicationProtocol.HTTPS,
17992
- certificate=Certificate.from_certificate_arn(self, "Cert", "helloworld"),
17993
- ssl_policy=SslPolicy.TLS12_EXT
17994
- )
17995
- ]
17996
- ), ecsPatterns.ApplicationLoadBalancerProps(
17997
- name="lb2",
17998
- idle_timeout=Duration.seconds(120),
17999
- domain_name="frontend.com",
18000
- domain_zone=PublicHostedZone(self, "HostedZone", zone_name="frontend.com"),
18001
- listeners=[ecsPatterns.ApplicationListenerProps(
18002
- name="listener2",
18003
- protocol=ApplicationProtocol.HTTPS,
18004
- certificate=Certificate.from_certificate_arn(self, "Cert2", "helloworld"),
18005
- ssl_policy=SslPolicy.TLS12_EXT
18006
- )
18007
- ]
18008
- )
18009
- ],
18010
- target_groups=[ecsPatterns.ApplicationTargetProps(
18011
- container_port=80,
18012
- listener="listener"
18013
- ), ecsPatterns.ApplicationTargetProps(
18014
- container_port=90,
18015
- path_pattern="a/b/c",
18016
- priority=10,
18017
- listener="listener"
18018
- ), ecsPatterns.ApplicationTargetProps(
18019
- container_port=443,
18020
- listener="listener2"
18021
- ), ecsPatterns.ApplicationTargetProps(
18022
- container_port=80,
18023
- path_pattern="a/b/c",
18024
- priority=10,
18025
- listener="listener2"
18026
- )
18027
- ]
18028
- )
18029
-
18030
- load_balanced_fargate_service.target_groups[0].configure_health_check(
18031
- port="8050",
18032
- protocol=Protocol.HTTP,
18033
- healthy_threshold_count=2,
18034
- unhealthy_threshold_count=2,
18035
- timeout=Duration.seconds(10),
18036
- interval=Duration.seconds(30),
18037
- healthy_http_codes="200"
18216
+ lb = elbv2.NetworkLoadBalancer(self, "LB",
18217
+ vpc=vpc,
18218
+ ip_address_type=elbv2.IpAddressType.DUAL_STACK,
18219
+ enable_prefix_for_ipv6_source_nat=True
18038
18220
  )
18039
18221
 
18040
- load_balanced_fargate_service.target_groups[1].configure_health_check(
18041
- port="8050",
18042
- protocol=Protocol.HTTP,
18043
- healthy_threshold_count=2,
18044
- unhealthy_threshold_count=2,
18045
- timeout=Duration.seconds(10),
18046
- interval=Duration.seconds(30),
18047
- healthy_http_codes="200"
18222
+ listener = lb.add_listener("Listener",
18223
+ port=1229,
18224
+ protocol=elbv2.Protocol.UDP
18048
18225
  )
18049
18226
  '''
18050
18227
 
@@ -18508,9 +18685,9 @@ class SslPolicy(enum.Enum):
18508
18685
  '''
18509
18686
 
18510
18687
  RECOMMENDED_TLS = "RECOMMENDED_TLS"
18511
- '''The recommended security policy for TLS listeners.
18688
+ '''The recommended security policy for TLS listeners. This is the default policy for listeners created using the AWS Management Console.
18512
18689
 
18513
- This is the default policy for listeners created using the AWS Management Console
18690
+ This policy includes TLS 1.3, and is backwards compatible with TLS 1.2
18514
18691
  '''
18515
18692
  RECOMMENDED = "RECOMMENDED"
18516
18693
  '''The recommended policy for http listeners.
@@ -18703,15 +18880,15 @@ class TargetGroupBase(
18703
18880
  '''Set/replace the target group's health check.
18704
18881
 
18705
18882
  :param enabled: Indicates whether health checks are enabled. If the target type is lambda, health checks are disabled by default but can be enabled. If the target type is instance or ip, health checks are always enabled and cannot be disabled. Default: - Determined automatically.
18706
- :param healthy_grpc_codes: GRPC code to use when checking for a successful response from a target. You can specify values between 0 and 99. You can specify multiple values (for example, "0,1") or a range of values (for example, "0-5"). Default: - 12
18883
+ :param healthy_grpc_codes: GRPC code to use when checking for a successful response from a target. You can specify values between 0 and 99. You can specify multiple values (for example, "0,1") or a range of values (for example, "0-5"). Default: 12
18707
18884
  :param healthy_http_codes: HTTP code to use when checking for a successful response from a target. For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200. You can specify multiple values (for example, "200,202") or a range of values (for example, "200-299").
18708
- :param healthy_threshold_count: The number of consecutive health checks successes required before considering an unhealthy target healthy. For Application Load Balancers, the default is 5. For Network Load Balancers, the default is 3. Default: 5 for ALBs, 3 for NLBs
18709
- :param interval: The approximate number of seconds between health checks for an individual target. Must be 5 to 300 seconds Default: 10 seconds if protocol is ``GENEVE``, 35 seconds if target type is ``lambda``, else 30 seconds
18885
+ :param healthy_threshold_count: The number of consecutive health checks successes required before considering an unhealthy target healthy. For Application Load Balancers, the default is 5. For Network Load Balancers, the default is 3. Default: - 5 for ALBs, 3 for NLBs
18886
+ :param interval: The approximate number of seconds between health checks for an individual target. Must be 5 to 300 seconds Default: - 10 seconds if protocol is ``GENEVE``, 35 seconds if target type is ``lambda``, else 30 seconds
18710
18887
  :param path: The ping path destination where Elastic Load Balancing sends health check requests. Default: /
18711
18888
  :param port: The port that the load balancer uses when performing health checks on the targets. Default: 'traffic-port'
18712
- :param protocol: The protocol the load balancer uses when performing health checks on targets. The TCP protocol is supported for health checks only if the protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The TLS, UDP, and TCP_UDP protocols are not supported for health checks. Default: HTTP for ALBs, TCP for NLBs
18713
- :param timeout: The amount of time, in seconds, during which no response from a target means a failed health check. Must be 2 to 120 seconds. Default: 6 seconds if the protocol is HTTP, 5 seconds if protocol is ``GENEVE``, 30 seconds if target type is ``lambda``, 10 seconds for TCP, TLS, or HTTPS
18714
- :param unhealthy_threshold_count: The number of consecutive health check failures required before considering a target unhealthy. For Application Load Balancers, the default is 2. For Network Load Balancers, this value must be the same as the healthy threshold count. Default: 2
18889
+ :param protocol: The protocol the load balancer uses when performing health checks on targets. The TCP protocol is supported for health checks only if the protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The TLS, UDP, and TCP_UDP protocols are not supported for health checks. Default: - HTTP for ALBs, TCP for NLBs
18890
+ :param timeout: The amount of time, in seconds, during which no response from a target means a failed health check. Must be 2 to 120 seconds. Default: - 6 seconds if the protocol is HTTP, 5 seconds if protocol is ``GENEVE``, 30 seconds if target type is ``lambda``, 10 seconds for TCP, TLS, or HTTPS
18891
+ :param unhealthy_threshold_count: The number of consecutive health check failures required before considering a target unhealthy. For Application Load Balancers, the default is 2. For Network Load Balancers, the range is between 2-10 and can be set accordingly. Default: 2
18715
18892
  '''
18716
18893
  health_check = HealthCheck(
18717
18894
  enabled=enabled,
@@ -18862,6 +19039,52 @@ class _TargetGroupBaseProxy(TargetGroupBase):
18862
19039
  typing.cast(typing.Any, TargetGroupBase).__jsii_proxy_class__ = lambda : _TargetGroupBaseProxy
18863
19040
 
18864
19041
 
19042
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.TargetGroupIpAddressType")
19043
+ class TargetGroupIpAddressType(enum.Enum):
19044
+ '''The IP address type of targets registered with a target group.
19045
+
19046
+ :exampleMetadata: infused
19047
+
19048
+ Example::
19049
+
19050
+ # vpc: ec2.Vpc
19051
+
19052
+
19053
+ ipv4_application_target_group = elbv2.ApplicationTargetGroup(self, "IPv4ApplicationTargetGroup",
19054
+ vpc=vpc,
19055
+ port=80,
19056
+ target_type=elbv2.TargetType.INSTANCE,
19057
+ ip_address_type=elbv2.TargetGroupIpAddressType.IPV4
19058
+ )
19059
+
19060
+ ipv6_application_target_group = elbv2.ApplicationTargetGroup(self, "Ipv6ApplicationTargetGroup",
19061
+ vpc=vpc,
19062
+ port=80,
19063
+ target_type=elbv2.TargetType.INSTANCE,
19064
+ ip_address_type=elbv2.TargetGroupIpAddressType.IPV6
19065
+ )
19066
+
19067
+ ipv4_network_target_group = elbv2.NetworkTargetGroup(self, "IPv4NetworkTargetGroup",
19068
+ vpc=vpc,
19069
+ port=80,
19070
+ target_type=elbv2.TargetType.INSTANCE,
19071
+ ip_address_type=elbv2.TargetGroupIpAddressType.IPV4
19072
+ )
19073
+
19074
+ ipv6_network_target_group = elbv2.NetworkTargetGroup(self, "Ipv6NetworkTargetGroup",
19075
+ vpc=vpc,
19076
+ port=80,
19077
+ target_type=elbv2.TargetType.INSTANCE,
19078
+ ip_address_type=elbv2.TargetGroupIpAddressType.IPV6
19079
+ )
19080
+ '''
19081
+
19082
+ IPV4 = "IPV4"
19083
+ '''IPv4 addresses.'''
19084
+ IPV6 = "IPV6"
19085
+ '''IPv6 addresses.'''
19086
+
19087
+
18865
19088
  @jsii.enum(
18866
19089
  jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.TargetGroupLoadBalancingAlgorithmType"
18867
19090
  )
@@ -18901,11 +19124,15 @@ class TargetType(enum.Enum):
18901
19124
  # vpc: ec2.Vpc
18902
19125
 
18903
19126
 
18904
- # Target group with slow start mode enabled
18905
19127
  tg = elbv2.ApplicationTargetGroup(self, "TG",
18906
- target_type=elbv2.TargetType.INSTANCE,
18907
- slow_start=Duration.seconds(60),
18908
- port=80,
19128
+ target_type=elbv2.TargetType.IP,
19129
+ port=50051,
19130
+ protocol=elbv2.ApplicationProtocol.HTTP,
19131
+ protocol_version=elbv2.ApplicationProtocolVersion.GRPC,
19132
+ health_check=elbv2.HealthCheck(
19133
+ enabled=True,
19134
+ healthy_grpc_codes="0-99"
19135
+ ),
18909
19136
  vpc=vpc
18910
19137
  )
18911
19138
  '''
@@ -20889,6 +21116,7 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
20889
21116
  "cross_zone_enabled": "crossZoneEnabled",
20890
21117
  "deregistration_delay": "deregistrationDelay",
20891
21118
  "health_check": "healthCheck",
21119
+ "ip_address_type": "ipAddressType",
20892
21120
  "target_group_name": "targetGroupName",
20893
21121
  "target_type": "targetType",
20894
21122
  "vpc": "vpc",
@@ -20910,6 +21138,7 @@ class ApplicationTargetGroupProps(BaseTargetGroupProps):
20910
21138
  cross_zone_enabled: typing.Optional[builtins.bool] = None,
20911
21139
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
20912
21140
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
21141
+ ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
20913
21142
  target_group_name: typing.Optional[builtins.str] = None,
20914
21143
  target_type: typing.Optional[TargetType] = None,
20915
21144
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -20928,6 +21157,7 @@ class ApplicationTargetGroupProps(BaseTargetGroupProps):
20928
21157
  :param cross_zone_enabled: Indicates whether cross zone load balancing is enabled. Default: - use load balancer configuration
20929
21158
  :param deregistration_delay: The amount of time for Elastic Load Balancing to wait before deregistering a target. The range is 0-3600 seconds. Default: 300
20930
21159
  :param health_check: Health check configuration. Default: - The default value for each property in this configuration varies depending on the target.
21160
+ :param ip_address_type: The type of IP addresses of the targets registered with the target group. Default: undefined - ELB defaults to IPv4
20931
21161
  :param target_group_name: The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. Default: - Automatically generated.
20932
21162
  :param target_type: The type of targets registered to this TargetGroup, either IP or Instance. All targets registered into the group must be of this type. If you register targets to the TargetGroup in the CDK app, the TargetType is determined automatically. Default: - Determined automatically.
20933
21163
  :param vpc: The virtual private cloud (VPC). only if ``TargetType`` is ``Ip`` or ``InstanceId`` Default: - undefined
@@ -20948,11 +21178,15 @@ class ApplicationTargetGroupProps(BaseTargetGroupProps):
20948
21178
  # vpc: ec2.Vpc
20949
21179
 
20950
21180
 
20951
- # Target group with slow start mode enabled
20952
21181
  tg = elbv2.ApplicationTargetGroup(self, "TG",
20953
- target_type=elbv2.TargetType.INSTANCE,
20954
- slow_start=Duration.seconds(60),
20955
- port=80,
21182
+ target_type=elbv2.TargetType.IP,
21183
+ port=50051,
21184
+ protocol=elbv2.ApplicationProtocol.HTTP,
21185
+ protocol_version=elbv2.ApplicationProtocolVersion.GRPC,
21186
+ health_check=elbv2.HealthCheck(
21187
+ enabled=True,
21188
+ healthy_grpc_codes="0-99"
21189
+ ),
20956
21190
  vpc=vpc
20957
21191
  )
20958
21192
  '''
@@ -20963,6 +21197,7 @@ class ApplicationTargetGroupProps(BaseTargetGroupProps):
20963
21197
  check_type(argname="argument cross_zone_enabled", value=cross_zone_enabled, expected_type=type_hints["cross_zone_enabled"])
20964
21198
  check_type(argname="argument deregistration_delay", value=deregistration_delay, expected_type=type_hints["deregistration_delay"])
20965
21199
  check_type(argname="argument health_check", value=health_check, expected_type=type_hints["health_check"])
21200
+ check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
20966
21201
  check_type(argname="argument target_group_name", value=target_group_name, expected_type=type_hints["target_group_name"])
20967
21202
  check_type(argname="argument target_type", value=target_type, expected_type=type_hints["target_type"])
20968
21203
  check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
@@ -20982,6 +21217,8 @@ class ApplicationTargetGroupProps(BaseTargetGroupProps):
20982
21217
  self._values["deregistration_delay"] = deregistration_delay
20983
21218
  if health_check is not None:
20984
21219
  self._values["health_check"] = health_check
21220
+ if ip_address_type is not None:
21221
+ self._values["ip_address_type"] = ip_address_type
20985
21222
  if target_group_name is not None:
20986
21223
  self._values["target_group_name"] = target_group_name
20987
21224
  if target_type is not None:
@@ -21040,6 +21277,15 @@ class ApplicationTargetGroupProps(BaseTargetGroupProps):
21040
21277
  result = self._values.get("health_check")
21041
21278
  return typing.cast(typing.Optional[HealthCheck], result)
21042
21279
 
21280
+ @builtins.property
21281
+ def ip_address_type(self) -> typing.Optional[TargetGroupIpAddressType]:
21282
+ '''The type of IP addresses of the targets registered with the target group.
21283
+
21284
+ :default: undefined - ELB defaults to IPv4
21285
+ '''
21286
+ result = self._values.get("ip_address_type")
21287
+ return typing.cast(typing.Optional[TargetGroupIpAddressType], result)
21288
+
21043
21289
  @builtins.property
21044
21290
  def target_group_name(self) -> typing.Optional[builtins.str]:
21045
21291
  '''The name of the target group.
@@ -21975,30 +22221,18 @@ class NetworkListener(
21975
22221
 
21976
22222
  Example::
21977
22223
 
21978
- # vpc: ec2.Vpc
21979
- # asg: autoscaling.AutoScalingGroup
21980
- # sg1: ec2.ISecurityGroup
21981
- # sg2: ec2.ISecurityGroup
21982
-
22224
+ from aws_cdk.aws_apigatewayv2_integrations import HttpNlbIntegration
21983
22225
 
21984
- # Create the load balancer in a VPC. 'internetFacing' is 'false'
21985
- # by default, which creates an internal load balancer.
21986
- lb = elbv2.NetworkLoadBalancer(self, "LB",
21987
- vpc=vpc,
21988
- internet_facing=True,
21989
- security_groups=[sg1]
21990
- )
21991
- lb.add_security_group(sg2)
21992
22226
 
21993
- # Add a listener on a particular port.
21994
- listener = lb.add_listener("Listener",
21995
- port=443
22227
+ vpc = ec2.Vpc(self, "VPC")
22228
+ lb = elbv2.NetworkLoadBalancer(self, "lb", vpc=vpc)
22229
+ listener = lb.add_listener("listener", port=80)
22230
+ listener.add_targets("target",
22231
+ port=80
21996
22232
  )
21997
22233
 
21998
- # Add targets on a particular port.
21999
- listener.add_targets("AppFleet",
22000
- port=443,
22001
- targets=[asg]
22234
+ http_endpoint = apigwv2.HttpApi(self, "HttpProxyPrivateApi",
22235
+ default_integration=HttpNlbIntegration("DefaultIntegration", listener)
22002
22236
  )
22003
22237
  '''
22004
22238
 
@@ -22271,6 +22505,7 @@ class NetworkTargetGroup(
22271
22505
  cross_zone_enabled: typing.Optional[builtins.bool] = None,
22272
22506
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
22273
22507
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
22508
+ ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
22274
22509
  target_group_name: typing.Optional[builtins.str] = None,
22275
22510
  target_type: typing.Optional[TargetType] = None,
22276
22511
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -22287,6 +22522,7 @@ class NetworkTargetGroup(
22287
22522
  :param cross_zone_enabled: Indicates whether cross zone load balancing is enabled. Default: - use load balancer configuration
22288
22523
  :param deregistration_delay: The amount of time for Elastic Load Balancing to wait before deregistering a target. The range is 0-3600 seconds. Default: 300
22289
22524
  :param health_check: Health check configuration. Default: - The default value for each property in this configuration varies depending on the target.
22525
+ :param ip_address_type: The type of IP addresses of the targets registered with the target group. Default: undefined - ELB defaults to IPv4
22290
22526
  :param target_group_name: The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. Default: - Automatically generated.
22291
22527
  :param target_type: The type of targets registered to this TargetGroup, either IP or Instance. All targets registered into the group must be of this type. If you register targets to the TargetGroup in the CDK app, the TargetType is determined automatically. Default: - Determined automatically.
22292
22528
  :param vpc: The virtual private cloud (VPC). only if ``TargetType`` is ``Ip`` or ``InstanceId`` Default: - undefined
@@ -22305,6 +22541,7 @@ class NetworkTargetGroup(
22305
22541
  cross_zone_enabled=cross_zone_enabled,
22306
22542
  deregistration_delay=deregistration_delay,
22307
22543
  health_check=health_check,
22544
+ ip_address_type=ip_address_type,
22308
22545
  target_group_name=target_group_name,
22309
22546
  target_type=target_type,
22310
22547
  vpc=vpc,
@@ -24230,6 +24467,7 @@ class ApplicationTargetGroup(
24230
24467
  cross_zone_enabled: typing.Optional[builtins.bool] = None,
24231
24468
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
24232
24469
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
24470
+ ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
24233
24471
  target_group_name: typing.Optional[builtins.str] = None,
24234
24472
  target_type: typing.Optional[TargetType] = None,
24235
24473
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -24249,6 +24487,7 @@ class ApplicationTargetGroup(
24249
24487
  :param cross_zone_enabled: Indicates whether cross zone load balancing is enabled. Default: - use load balancer configuration
24250
24488
  :param deregistration_delay: The amount of time for Elastic Load Balancing to wait before deregistering a target. The range is 0-3600 seconds. Default: 300
24251
24489
  :param health_check: Health check configuration. Default: - The default value for each property in this configuration varies depending on the target.
24490
+ :param ip_address_type: The type of IP addresses of the targets registered with the target group. Default: undefined - ELB defaults to IPv4
24252
24491
  :param target_group_name: The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. Default: - Automatically generated.
24253
24492
  :param target_type: The type of targets registered to this TargetGroup, either IP or Instance. All targets registered into the group must be of this type. If you register targets to the TargetGroup in the CDK app, the TargetType is determined automatically. Default: - Determined automatically.
24254
24493
  :param vpc: The virtual private cloud (VPC). only if ``TargetType`` is ``Ip`` or ``InstanceId`` Default: - undefined
@@ -24270,6 +24509,7 @@ class ApplicationTargetGroup(
24270
24509
  cross_zone_enabled=cross_zone_enabled,
24271
24510
  deregistration_delay=deregistration_delay,
24272
24511
  health_check=health_check,
24512
+ ip_address_type=ip_address_type,
24273
24513
  target_group_name=target_group_name,
24274
24514
  target_type=target_type,
24275
24515
  vpc=vpc,
@@ -24942,6 +25182,7 @@ __all__ = [
24942
25182
  "SslPolicy",
24943
25183
  "TargetGroupAttributes",
24944
25184
  "TargetGroupBase",
25185
+ "TargetGroupIpAddressType",
24945
25186
  "TargetGroupLoadBalancingAlgorithmType",
24946
25187
  "TargetType",
24947
25188
  "TrustStore",
@@ -25180,6 +25421,7 @@ def _typecheckingstub__b5e7f5d87f70cb030d7ac44f4637a5d73814a6c8b1c1bff9adf19ede8
25180
25421
  cross_zone_enabled: typing.Optional[builtins.bool] = None,
25181
25422
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
25182
25423
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
25424
+ ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
25183
25425
  target_group_name: typing.Optional[builtins.str] = None,
25184
25426
  target_type: typing.Optional[TargetType] = None,
25185
25427
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -25350,6 +25592,7 @@ def _typecheckingstub__0e09ea6213c5fb2125f07b2f54d7fe6ee24307939dcc06580928b2ef0
25350
25592
 
25351
25593
  def _typecheckingstub__07605e87f763c352d3e6705d69aa07723ad3c005493c1fdef02b175f49d53ee0(
25352
25594
  *,
25595
+ advertise_trust_store_ca_names: typing.Optional[builtins.str] = None,
25353
25596
  ignore_client_certificate_expiry: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
25354
25597
  mode: typing.Optional[builtins.str] = None,
25355
25598
  trust_store_arn: typing.Optional[builtins.str] = None,
@@ -25671,6 +25914,7 @@ def _typecheckingstub__907e1e3e88136a6a7bdcdac293563447ed893c77b9f7b1e7154fb1749
25671
25914
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.str] = None,
25672
25915
  ip_address_type: typing.Optional[builtins.str] = None,
25673
25916
  load_balancer_attributes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLoadBalancer.LoadBalancerAttributeProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
25917
+ minimum_load_balancer_capacity: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLoadBalancer.MinimumLoadBalancerCapacityProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
25674
25918
  name: typing.Optional[builtins.str] = None,
25675
25919
  scheme: typing.Optional[builtins.str] = None,
25676
25920
  security_groups: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -25718,6 +25962,12 @@ def _typecheckingstub__8b18943454864026c64dd9c2bc7fdaf60ac5114bf771f7304a82e9bdf
25718
25962
  """Type checking stubs"""
25719
25963
  pass
25720
25964
 
25965
+ def _typecheckingstub__102164e78a5cf61e67908e476a27971c19e5604c38d90ddca6b4b346581d0209(
25966
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnLoadBalancer.MinimumLoadBalancerCapacityProperty]],
25967
+ ) -> None:
25968
+ """Type checking stubs"""
25969
+ pass
25970
+
25721
25971
  def _typecheckingstub__153ca4a32dcbf43c1076bdc45b59a5463ab49120f83591bcbf13f84ce3fffa0e(
25722
25972
  value: typing.Optional[builtins.str],
25723
25973
  ) -> None:
@@ -25768,6 +26018,13 @@ def _typecheckingstub__981f45ac63ed8e62237b89c4cadf7d8f1c042e4534c384c148e58bad2
25768
26018
  """Type checking stubs"""
25769
26019
  pass
25770
26020
 
26021
+ def _typecheckingstub__bd0d2d4a891c02fabab09ae876b5f738a440bf3402f1db5dc28e3cdd47b733bc(
26022
+ *,
26023
+ capacity_units: jsii.Number,
26024
+ ) -> None:
26025
+ """Type checking stubs"""
26026
+ pass
26027
+
25771
26028
  def _typecheckingstub__5362b7e1b57cc75205d80d2c4a4798301f16a110c6add8b836265fc95f89ec11(
25772
26029
  *,
25773
26030
  subnet_id: builtins.str,
@@ -25785,6 +26042,7 @@ def _typecheckingstub__6b1eb30cea756dc45f625ec82ab8cba6ea31d24595a925a4aabceb7e6
25785
26042
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.str] = None,
25786
26043
  ip_address_type: typing.Optional[builtins.str] = None,
25787
26044
  load_balancer_attributes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLoadBalancer.LoadBalancerAttributeProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
26045
+ minimum_load_balancer_capacity: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLoadBalancer.MinimumLoadBalancerCapacityProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
25788
26046
  name: typing.Optional[builtins.str] = None,
25789
26047
  scheme: typing.Optional[builtins.str] = None,
25790
26048
  security_groups: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -26481,6 +26739,7 @@ def _typecheckingstub__e1c7a4c1332bdc807d1e25aa5d69eea6e1f3bf6a88ddd30dac9a64c93
26481
26739
  id: builtins.str,
26482
26740
  *,
26483
26741
  client_routing_policy: typing.Optional[ClientRoutingPolicy] = None,
26742
+ enable_prefix_for_ipv6_source_nat: typing.Optional[builtins.bool] = None,
26484
26743
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
26485
26744
  ip_address_type: typing.Optional[IpAddressType] = None,
26486
26745
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
@@ -26584,6 +26843,7 @@ def _typecheckingstub__195ab659ca9cd1c401d6d2d1a1f5cb0aaf7dd80f06dbc724020ac0cc3
26584
26843
  load_balancer_name: typing.Optional[builtins.str] = None,
26585
26844
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
26586
26845
  client_routing_policy: typing.Optional[ClientRoutingPolicy] = None,
26846
+ enable_prefix_for_ipv6_source_nat: typing.Optional[builtins.bool] = None,
26587
26847
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
26588
26848
  ip_address_type: typing.Optional[IpAddressType] = None,
26589
26849
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
@@ -26597,6 +26857,7 @@ def _typecheckingstub__5f1086cffe813b24d7b8ff7c124bffc37ca7e22afda9f6af7ad869d92
26597
26857
  cross_zone_enabled: typing.Optional[builtins.bool] = None,
26598
26858
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
26599
26859
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
26860
+ ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
26600
26861
  target_group_name: typing.Optional[builtins.str] = None,
26601
26862
  target_type: typing.Optional[TargetType] = None,
26602
26863
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -26854,6 +27115,7 @@ def _typecheckingstub__0fbf37aa0a91cb985ce7a336a6188364cc38400538c1653e53453287c
26854
27115
  cross_zone_enabled: typing.Optional[builtins.bool] = None,
26855
27116
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
26856
27117
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
27118
+ ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
26857
27119
  target_group_name: typing.Optional[builtins.str] = None,
26858
27120
  target_type: typing.Optional[TargetType] = None,
26859
27121
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -27081,6 +27343,7 @@ def _typecheckingstub__eebfbf2a20edd0baf4d455f02dd34d748c5eccfa9a5268e5e2ebec245
27081
27343
  cross_zone_enabled: typing.Optional[builtins.bool] = None,
27082
27344
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
27083
27345
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
27346
+ ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
27084
27347
  target_group_name: typing.Optional[builtins.str] = None,
27085
27348
  target_type: typing.Optional[TargetType] = None,
27086
27349
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -27354,6 +27617,7 @@ def _typecheckingstub__e179515c9d6138007cc1b74835b75f10a179c1f5ef977cbe4188c778c
27354
27617
  cross_zone_enabled: typing.Optional[builtins.bool] = None,
27355
27618
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
27356
27619
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
27620
+ ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
27357
27621
  target_group_name: typing.Optional[builtins.str] = None,
27358
27622
  target_type: typing.Optional[TargetType] = None,
27359
27623
  vpc: typing.Optional[_IVpc_f30d5663] = None,