aws-cdk-lib 2.172.0__py3-none-any.whl → 2.173.1__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (69) hide show
  1. aws_cdk/__init__.py +57 -0
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.172.0.jsii.tgz → aws-cdk-lib@2.173.1.jsii.tgz} +0 -0
  4. aws_cdk/aws_amazonmq/__init__.py +40 -40
  5. aws_cdk/aws_apigateway/__init__.py +111 -64
  6. aws_cdk/aws_applicationautoscaling/__init__.py +141 -66
  7. aws_cdk/aws_appsync/__init__.py +4 -3
  8. aws_cdk/aws_autoscaling/__init__.py +15 -6
  9. aws_cdk/aws_bedrock/__init__.py +32 -44
  10. aws_cdk/aws_chatbot/__init__.py +72 -46
  11. aws_cdk/aws_cleanrooms/__init__.py +4 -6
  12. aws_cdk/aws_cloudfront/__init__.py +4 -2
  13. aws_cdk/aws_cloudtrail/__init__.py +104 -68
  14. aws_cdk/aws_cloudwatch/__init__.py +51 -14
  15. aws_cdk/aws_codebuild/__init__.py +39 -0
  16. aws_cdk/aws_codepipeline/__init__.py +4 -4
  17. aws_cdk/aws_cognito/__init__.py +221 -53
  18. aws_cdk/aws_config/__init__.py +13 -10
  19. aws_cdk/aws_connect/__init__.py +25 -23
  20. aws_cdk/aws_connectcampaignsv2/__init__.py +187 -176
  21. aws_cdk/aws_docdb/__init__.py +128 -0
  22. aws_cdk/aws_dynamodb/__init__.py +256 -0
  23. aws_cdk/aws_ec2/__init__.py +130 -48
  24. aws_cdk/aws_ecs/__init__.py +25 -13
  25. aws_cdk/aws_eks/__init__.py +86 -24
  26. aws_cdk/aws_elasticache/__init__.py +22 -22
  27. aws_cdk/aws_elasticloadbalancingv2/__init__.py +138 -128
  28. aws_cdk/aws_events/__init__.py +39 -26
  29. aws_cdk/aws_fsx/__init__.py +134 -10
  30. aws_cdk/aws_imagebuilder/__init__.py +8 -8
  31. aws_cdk/aws_invoicing/__init__.py +651 -0
  32. aws_cdk/aws_iot/__init__.py +28 -22
  33. aws_cdk/aws_iotfleetwise/__init__.py +473 -332
  34. aws_cdk/aws_iotsitewise/__init__.py +6 -4
  35. aws_cdk/aws_ivs/__init__.py +43 -31
  36. aws_cdk/aws_kendra/__init__.py +4 -0
  37. aws_cdk/aws_lakeformation/__init__.py +2 -1
  38. aws_cdk/aws_lambda/__init__.py +258 -156
  39. aws_cdk/aws_logs/__init__.py +532 -0
  40. aws_cdk/aws_m2/__init__.py +15 -15
  41. aws_cdk/aws_mediaconnect/__init__.py +24 -14
  42. aws_cdk/aws_medialive/__init__.py +2359 -5
  43. aws_cdk/aws_mediapackage/__init__.py +3 -9
  44. aws_cdk/aws_mediapackagev2/__init__.py +19 -17
  45. aws_cdk/aws_memorydb/__init__.py +664 -4
  46. aws_cdk/aws_qbusiness/__init__.py +2018 -66
  47. aws_cdk/aws_rds/__init__.py +30 -0
  48. aws_cdk/aws_resourcegroups/__init__.py +26 -17
  49. aws_cdk/aws_route53/__init__.py +1177 -10
  50. aws_cdk/aws_route53_targets/__init__.py +224 -100
  51. aws_cdk/aws_route53resolver/__init__.py +4 -2
  52. aws_cdk/aws_s3/__init__.py +4 -4
  53. aws_cdk/aws_s3express/__init__.py +30 -19
  54. aws_cdk/aws_sagemaker/__init__.py +783 -9
  55. aws_cdk/aws_secretsmanager/__init__.py +20 -6
  56. aws_cdk/aws_securityhub/__init__.py +64 -32
  57. aws_cdk/aws_servicediscovery/__init__.py +43 -0
  58. aws_cdk/aws_ses/__init__.py +109 -0
  59. aws_cdk/aws_stepfunctions_tasks/__init__.py +190 -35
  60. aws_cdk/aws_synthetics/__init__.py +7 -5
  61. aws_cdk/aws_vpclattice/__init__.py +1479 -122
  62. aws_cdk/aws_wisdom/__init__.py +2698 -232
  63. aws_cdk/aws_workspacesweb/__init__.py +118 -61
  64. {aws_cdk_lib-2.172.0.dist-info → aws_cdk_lib-2.173.1.dist-info}/METADATA +1 -1
  65. {aws_cdk_lib-2.172.0.dist-info → aws_cdk_lib-2.173.1.dist-info}/RECORD +69 -68
  66. {aws_cdk_lib-2.172.0.dist-info → aws_cdk_lib-2.173.1.dist-info}/LICENSE +0 -0
  67. {aws_cdk_lib-2.172.0.dist-info → aws_cdk_lib-2.173.1.dist-info}/NOTICE +0 -0
  68. {aws_cdk_lib-2.172.0.dist-info → aws_cdk_lib-2.173.1.dist-info}/WHEEL +0 -0
  69. {aws_cdk_lib-2.172.0.dist-info → aws_cdk_lib-2.173.1.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
 
@@ -3649,6 +3666,7 @@ class CfnListener(
3649
3666
  value="value"
3650
3667
  )],
3651
3668
  mutual_authentication=elbv2.CfnListener.MutualAuthenticationProperty(
3669
+ advertise_trust_store_ca_names="advertiseTrustStoreCaNames",
3652
3670
  ignore_client_certificate_expiry=False,
3653
3671
  mode="mode",
3654
3672
  trust_store_arn="trustStoreArn"
@@ -4835,7 +4853,7 @@ class CfnListener(
4835
4853
  ) -> None:
4836
4854
  '''Information about a listener attribute.
4837
4855
 
4838
- :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* .
4839
4857
  :param value: The value of the attribute.
4840
4858
 
4841
4859
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-listenerattribute.html
@@ -4870,6 +4888,28 @@ class CfnListener(
4870
4888
 
4871
4889
  - ``tcp.idle_timeout.seconds`` - The tcp idle timeout value, in seconds. The valid range is 60-6000 seconds. The default is 350 seconds.
4872
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
+
4873
4913
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-listenerattribute.html#cfn-elasticloadbalancingv2-listener-listenerattribute-key
4874
4914
  '''
4875
4915
  result = self._values.get("key")
@@ -4899,6 +4939,7 @@ class CfnListener(
4899
4939
  jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.CfnListener.MutualAuthenticationProperty",
4900
4940
  jsii_struct_bases=[],
4901
4941
  name_mapping={
4942
+ "advertise_trust_store_ca_names": "advertiseTrustStoreCaNames",
4902
4943
  "ignore_client_certificate_expiry": "ignoreClientCertificateExpiry",
4903
4944
  "mode": "mode",
4904
4945
  "trust_store_arn": "trustStoreArn",
@@ -4908,12 +4949,14 @@ class CfnListener(
4908
4949
  def __init__(
4909
4950
  self,
4910
4951
  *,
4952
+ advertise_trust_store_ca_names: typing.Optional[builtins.str] = None,
4911
4953
  ignore_client_certificate_expiry: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4912
4954
  mode: typing.Optional[builtins.str] = None,
4913
4955
  trust_store_arn: typing.Optional[builtins.str] = None,
4914
4956
  ) -> None:
4915
4957
  '''Specifies the configuration information for mutual authentication.
4916
4958
 
4959
+ :param advertise_trust_store_ca_names:
4917
4960
  :param ignore_client_certificate_expiry: Indicates whether expired client certificates are ignored.
4918
4961
  :param mode: The client certificate handling method. Options are ``off`` , ``passthrough`` or ``verify`` . The default value is ``off`` .
4919
4962
  :param trust_store_arn: The Amazon Resource Name (ARN) of the trust store.
@@ -4928,6 +4971,7 @@ class CfnListener(
4928
4971
  from aws_cdk import aws_elasticloadbalancingv2 as elbv2
4929
4972
 
4930
4973
  mutual_authentication_property = elbv2.CfnListener.MutualAuthenticationProperty(
4974
+ advertise_trust_store_ca_names="advertiseTrustStoreCaNames",
4931
4975
  ignore_client_certificate_expiry=False,
4932
4976
  mode="mode",
4933
4977
  trust_store_arn="trustStoreArn"
@@ -4935,10 +4979,13 @@ class CfnListener(
4935
4979
  '''
4936
4980
  if __debug__:
4937
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"])
4938
4983
  check_type(argname="argument ignore_client_certificate_expiry", value=ignore_client_certificate_expiry, expected_type=type_hints["ignore_client_certificate_expiry"])
4939
4984
  check_type(argname="argument mode", value=mode, expected_type=type_hints["mode"])
4940
4985
  check_type(argname="argument trust_store_arn", value=trust_store_arn, expected_type=type_hints["trust_store_arn"])
4941
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
4942
4989
  if ignore_client_certificate_expiry is not None:
4943
4990
  self._values["ignore_client_certificate_expiry"] = ignore_client_certificate_expiry
4944
4991
  if mode is not None:
@@ -4946,6 +4993,14 @@ class CfnListener(
4946
4993
  if trust_store_arn is not None:
4947
4994
  self._values["trust_store_arn"] = trust_store_arn
4948
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
+
4949
5004
  @builtins.property
4950
5005
  def ignore_client_certificate_expiry(
4951
5006
  self,
@@ -5686,6 +5741,7 @@ class CfnListenerProps:
5686
5741
  value="value"
5687
5742
  )],
5688
5743
  mutual_authentication=elbv2.CfnListener.MutualAuthenticationProperty(
5744
+ advertise_trust_store_ca_names="advertiseTrustStoreCaNames",
5689
5745
  ignore_client_certificate_expiry=False,
5690
5746
  mode="mode",
5691
5747
  trust_store_arn="trustStoreArn"
@@ -8280,7 +8336,7 @@ class CfnLoadBalancer(
8280
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 .
8281
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).
8282
8338
  :param load_balancer_attributes: The load balancer attributes.
8283
- :param minimum_load_balancer_capacity:
8339
+ :param minimum_load_balancer_capacity: The minimum capacity for a load balancer.
8284
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.
8285
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.
8286
8342
  :param security_groups: [Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer.
@@ -8486,6 +8542,7 @@ class CfnLoadBalancer(
8486
8542
  def minimum_load_balancer_capacity(
8487
8543
  self,
8488
8544
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLoadBalancer.MinimumLoadBalancerCapacityProperty"]]:
8545
+ '''The minimum capacity for a load balancer.'''
8489
8546
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLoadBalancer.MinimumLoadBalancerCapacityProperty"]], jsii.get(self, "minimumLoadBalancerCapacity"))
8490
8547
 
8491
8548
  @minimum_load_balancer_capacity.setter
@@ -8611,7 +8668,7 @@ class CfnLoadBalancer(
8611
8668
  ) -> None:
8612
8669
  '''Specifies an attribute for an Application Load Balancer, a Network Load Balancer, or a Gateway Load Balancer.
8613
8670
 
8614
- :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.
8615
8672
  :param value: The value of the attribute.
8616
8673
 
8617
8674
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html
@@ -8653,6 +8710,7 @@ class CfnLoadBalancer(
8653
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.
8654
8711
  - ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs.
8655
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`` .
8656
8714
 
8657
8715
  The following attributes are supported by only Application Load Balancers:
8658
8716
 
@@ -8676,7 +8734,6 @@ class CfnLoadBalancer(
8676
8734
  The following attributes are supported by only Network Load Balancers:
8677
8735
 
8678
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.
8679
- - ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false`` . The default is ``false`` .
8680
8737
 
8681
8738
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html#cfn-elasticloadbalancingv2-loadbalancer-loadbalancerattribute-key
8682
8739
  '''
@@ -8710,8 +8767,9 @@ class CfnLoadBalancer(
8710
8767
  )
8711
8768
  class MinimumLoadBalancerCapacityProperty:
8712
8769
  def __init__(self, *, capacity_units: jsii.Number) -> None:
8713
- '''
8714
- :param capacity_units:
8770
+ '''The minimum capacity for a load balancer.
8771
+
8772
+ :param capacity_units: The number of capacity units.
8715
8773
 
8716
8774
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-minimumloadbalancercapacity.html
8717
8775
  :exampleMetadata: fixture=_generated
@@ -8735,7 +8793,8 @@ class CfnLoadBalancer(
8735
8793
 
8736
8794
  @builtins.property
8737
8795
  def capacity_units(self) -> jsii.Number:
8738
- '''
8796
+ '''The number of capacity units.
8797
+
8739
8798
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-minimumloadbalancercapacity.html#cfn-elasticloadbalancingv2-loadbalancer-minimumloadbalancercapacity-capacityunits
8740
8799
  '''
8741
8800
  result = self._values.get("capacity_units")
@@ -8921,7 +8980,7 @@ class CfnLoadBalancerProps:
8921
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 .
8922
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).
8923
8982
  :param load_balancer_attributes: The load balancer attributes.
8924
- :param minimum_load_balancer_capacity:
8983
+ :param minimum_load_balancer_capacity: The minimum capacity for a load balancer.
8925
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.
8926
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.
8927
8986
  :param security_groups: [Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer.
@@ -9062,7 +9121,8 @@ class CfnLoadBalancerProps:
9062
9121
  def minimum_load_balancer_capacity(
9063
9122
  self,
9064
9123
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnLoadBalancer.MinimumLoadBalancerCapacityProperty]]:
9065
- '''
9124
+ '''The minimum capacity for a load balancer.
9125
+
9066
9126
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-minimumloadbalancercapacity
9067
9127
  '''
9068
9128
  result = self._values.get("minimum_load_balancer_capacity")
@@ -11441,7 +11501,7 @@ class HealthCheck:
11441
11501
  :param port: The port that the load balancer uses when performing health checks on the targets. Default: 'traffic-port'
11442
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
11443
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
11444
- :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
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
11445
11505
 
11446
11506
  :exampleMetadata: infused
11447
11507
 
@@ -11602,7 +11662,7 @@ class HealthCheck:
11602
11662
  '''The number of consecutive health check failures required before considering a target unhealthy.
11603
11663
 
11604
11664
  For Application Load Balancers, the default is 2. For Network Load
11605
- 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.
11606
11666
 
11607
11667
  :default: 2
11608
11668
  '''
@@ -15422,9 +15482,15 @@ class IpAddressType(enum.Enum):
15422
15482
  # vpc: ec2.Vpc
15423
15483
 
15424
15484
 
15425
- lb = elbv2.ApplicationLoadBalancer(self, "LB",
15485
+ lb = elbv2.NetworkLoadBalancer(self, "LB",
15426
15486
  vpc=vpc,
15427
- 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
15428
15494
  )
15429
15495
  '''
15430
15496
 
@@ -16722,18 +16788,18 @@ class NetworkLoadBalancer(
16722
16788
 
16723
16789
  Example::
16724
16790
 
16725
- from aws_cdk.aws_apigatewayv2_integrations import HttpNlbIntegration
16791
+ # vpc: ec2.Vpc
16726
16792
 
16727
16793
 
16728
- vpc = ec2.Vpc(self, "VPC")
16729
- lb = elbv2.NetworkLoadBalancer(self, "lb", vpc=vpc)
16730
- listener = lb.add_listener("listener", port=80)
16731
- listener.add_targets("target",
16732
- 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
16733
16798
  )
16734
16799
 
16735
- http_endpoint = apigwv2.HttpApi(self, "HttpProxyPrivateApi",
16736
- default_integration=HttpNlbIntegration("DefaultIntegration", listener)
16800
+ listener = lb.add_listener("Listener",
16801
+ port=1229,
16802
+ protocol=elbv2.Protocol.UDP
16737
16803
  )
16738
16804
  '''
16739
16805
 
@@ -16743,6 +16809,7 @@ class NetworkLoadBalancer(
16743
16809
  id: builtins.str,
16744
16810
  *,
16745
16811
  client_routing_policy: typing.Optional[ClientRoutingPolicy] = None,
16812
+ enable_prefix_for_ipv6_source_nat: typing.Optional[builtins.bool] = None,
16746
16813
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
16747
16814
  ip_address_type: typing.Optional[IpAddressType] = None,
16748
16815
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
@@ -16759,6 +16826,7 @@ class NetworkLoadBalancer(
16759
16826
  :param scope: -
16760
16827
  :param id: -
16761
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
16762
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
16763
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
16764
16832
  :param security_groups: Security groups to associate with this load balancer. Default: - No security groups associated with the load balancer.
@@ -16777,6 +16845,7 @@ class NetworkLoadBalancer(
16777
16845
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
16778
16846
  props = NetworkLoadBalancerProps(
16779
16847
  client_routing_policy=client_routing_policy,
16848
+ enable_prefix_for_ipv6_source_nat=enable_prefix_for_ipv6_source_nat,
16780
16849
  enforce_security_group_inbound_rules_on_private_link_traffic=enforce_security_group_inbound_rules_on_private_link_traffic,
16781
16850
  ip_address_type=ip_address_type,
16782
16851
  security_groups=security_groups,
@@ -17529,6 +17598,7 @@ class NetworkLoadBalancerLookupOptions(BaseLoadBalancerLookupOptions):
17529
17598
  "load_balancer_name": "loadBalancerName",
17530
17599
  "vpc_subnets": "vpcSubnets",
17531
17600
  "client_routing_policy": "clientRoutingPolicy",
17601
+ "enable_prefix_for_ipv6_source_nat": "enablePrefixForIpv6SourceNat",
17532
17602
  "enforce_security_group_inbound_rules_on_private_link_traffic": "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic",
17533
17603
  "ip_address_type": "ipAddressType",
17534
17604
  "security_groups": "securityGroups",
@@ -17547,6 +17617,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
17547
17617
  load_balancer_name: typing.Optional[builtins.str] = None,
17548
17618
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
17549
17619
  client_routing_policy: typing.Optional[ClientRoutingPolicy] = None,
17620
+ enable_prefix_for_ipv6_source_nat: typing.Optional[builtins.bool] = None,
17550
17621
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
17551
17622
  ip_address_type: typing.Optional[IpAddressType] = None,
17552
17623
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
@@ -17562,6 +17633,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
17562
17633
  :param load_balancer_name: Name of the load balancer. Default: - Automatically generated name.
17563
17634
  :param vpc_subnets: Which subnets place the load balancer in. Default: - the Vpc default strategy.
17564
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
17565
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
17566
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
17567
17639
  :param security_groups: Security groups to associate with this load balancer. Default: - No security groups associated with the load balancer.
@@ -17571,18 +17643,18 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
17571
17643
 
17572
17644
  Example::
17573
17645
 
17574
- from aws_cdk.aws_apigatewayv2_integrations import HttpNlbIntegration
17646
+ # vpc: ec2.Vpc
17575
17647
 
17576
17648
 
17577
- vpc = ec2.Vpc(self, "VPC")
17578
- lb = elbv2.NetworkLoadBalancer(self, "lb", vpc=vpc)
17579
- listener = lb.add_listener("listener", port=80)
17580
- listener.add_targets("target",
17581
- 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
17582
17653
  )
17583
17654
 
17584
- http_endpoint = apigwv2.HttpApi(self, "HttpProxyPrivateApi",
17585
- default_integration=HttpNlbIntegration("DefaultIntegration", listener)
17655
+ listener = lb.add_listener("Listener",
17656
+ port=1229,
17657
+ protocol=elbv2.Protocol.UDP
17586
17658
  )
17587
17659
  '''
17588
17660
  if isinstance(vpc_subnets, dict):
@@ -17597,6 +17669,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
17597
17669
  check_type(argname="argument load_balancer_name", value=load_balancer_name, expected_type=type_hints["load_balancer_name"])
17598
17670
  check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
17599
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"])
17600
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"])
17601
17674
  check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
17602
17675
  check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
@@ -17618,6 +17691,8 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
17618
17691
  self._values["vpc_subnets"] = vpc_subnets
17619
17692
  if client_routing_policy is not None:
17620
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
17621
17696
  if enforce_security_group_inbound_rules_on_private_link_traffic is not None:
17622
17697
  self._values["enforce_security_group_inbound_rules_on_private_link_traffic"] = enforce_security_group_inbound_rules_on_private_link_traffic
17623
17698
  if ip_address_type is not None:
@@ -17704,6 +17779,17 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
17704
17779
  result = self._values.get("client_routing_policy")
17705
17780
  return typing.cast(typing.Optional[ClientRoutingPolicy], result)
17706
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
+
17707
17793
  @builtins.property
17708
17794
  def enforce_security_group_inbound_rules_on_private_link_traffic(
17709
17795
  self,
@@ -18124,85 +18210,18 @@ class Protocol(enum.Enum):
18124
18210
 
18125
18211
  Example::
18126
18212
 
18127
- from aws_cdk.aws_certificatemanager import Certificate
18128
- from aws_cdk.aws_ec2 import InstanceType
18129
- from aws_cdk.aws_ecs import Cluster, ContainerImage
18130
- from aws_cdk.aws_elasticloadbalancingv2 import ApplicationProtocol, Protocol, SslPolicy
18131
- from aws_cdk.aws_route53 import PublicHostedZone
18213
+ # vpc: ec2.Vpc
18132
18214
 
18133
- vpc = ec2.Vpc(self, "Vpc", max_azs=1)
18134
18215
 
18135
- load_balanced_fargate_service = ecs_patterns.ApplicationMultipleTargetGroupsFargateService(self, "myService",
18136
- cluster=ecs.Cluster(self, "EcsCluster", vpc=vpc),
18137
- memory_limit_mi_b=256,
18138
- task_image_options=ecsPatterns.ApplicationLoadBalancedTaskImageProps(
18139
- image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample")
18140
- ),
18141
- enable_execute_command=True,
18142
- load_balancers=[ecsPatterns.ApplicationLoadBalancerProps(
18143
- name="lb",
18144
- idle_timeout=Duration.seconds(400),
18145
- domain_name="api.example.com",
18146
- domain_zone=PublicHostedZone(self, "HostedZone", zone_name="example.com"),
18147
- listeners=[ecsPatterns.ApplicationListenerProps(
18148
- name="listener",
18149
- protocol=ApplicationProtocol.HTTPS,
18150
- certificate=Certificate.from_certificate_arn(self, "Cert", "helloworld"),
18151
- ssl_policy=SslPolicy.TLS12_EXT
18152
- )
18153
- ]
18154
- ), ecsPatterns.ApplicationLoadBalancerProps(
18155
- name="lb2",
18156
- idle_timeout=Duration.seconds(120),
18157
- domain_name="frontend.com",
18158
- domain_zone=PublicHostedZone(self, "HostedZone", zone_name="frontend.com"),
18159
- listeners=[ecsPatterns.ApplicationListenerProps(
18160
- name="listener2",
18161
- protocol=ApplicationProtocol.HTTPS,
18162
- certificate=Certificate.from_certificate_arn(self, "Cert2", "helloworld"),
18163
- ssl_policy=SslPolicy.TLS12_EXT
18164
- )
18165
- ]
18166
- )
18167
- ],
18168
- target_groups=[ecsPatterns.ApplicationTargetProps(
18169
- container_port=80,
18170
- listener="listener"
18171
- ), ecsPatterns.ApplicationTargetProps(
18172
- container_port=90,
18173
- path_pattern="a/b/c",
18174
- priority=10,
18175
- listener="listener"
18176
- ), ecsPatterns.ApplicationTargetProps(
18177
- container_port=443,
18178
- listener="listener2"
18179
- ), ecsPatterns.ApplicationTargetProps(
18180
- container_port=80,
18181
- path_pattern="a/b/c",
18182
- priority=10,
18183
- listener="listener2"
18184
- )
18185
- ]
18186
- )
18187
-
18188
- load_balanced_fargate_service.target_groups[0].configure_health_check(
18189
- port="8050",
18190
- protocol=Protocol.HTTP,
18191
- healthy_threshold_count=2,
18192
- unhealthy_threshold_count=2,
18193
- timeout=Duration.seconds(10),
18194
- interval=Duration.seconds(30),
18195
- 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
18196
18220
  )
18197
18221
 
18198
- load_balanced_fargate_service.target_groups[1].configure_health_check(
18199
- port="8050",
18200
- protocol=Protocol.HTTP,
18201
- healthy_threshold_count=2,
18202
- unhealthy_threshold_count=2,
18203
- timeout=Duration.seconds(10),
18204
- interval=Duration.seconds(30),
18205
- healthy_http_codes="200"
18222
+ listener = lb.add_listener("Listener",
18223
+ port=1229,
18224
+ protocol=elbv2.Protocol.UDP
18206
18225
  )
18207
18226
  '''
18208
18227
 
@@ -18666,9 +18685,9 @@ class SslPolicy(enum.Enum):
18666
18685
  '''
18667
18686
 
18668
18687
  RECOMMENDED_TLS = "RECOMMENDED_TLS"
18669
- '''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.
18670
18689
 
18671
- 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
18672
18691
  '''
18673
18692
  RECOMMENDED = "RECOMMENDED"
18674
18693
  '''The recommended policy for http listeners.
@@ -18869,7 +18888,7 @@ class TargetGroupBase(
18869
18888
  :param port: The port that the load balancer uses when performing health checks on the targets. Default: 'traffic-port'
18870
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
18871
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
18872
- :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
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
18873
18892
  '''
18874
18893
  health_check = HealthCheck(
18875
18894
  enabled=enabled,
@@ -22202,30 +22221,18 @@ class NetworkListener(
22202
22221
 
22203
22222
  Example::
22204
22223
 
22205
- # vpc: ec2.Vpc
22206
- # asg: autoscaling.AutoScalingGroup
22207
- # sg1: ec2.ISecurityGroup
22208
- # sg2: ec2.ISecurityGroup
22209
-
22224
+ from aws_cdk.aws_apigatewayv2_integrations import HttpNlbIntegration
22210
22225
 
22211
- # Create the load balancer in a VPC. 'internetFacing' is 'false'
22212
- # by default, which creates an internal load balancer.
22213
- lb = elbv2.NetworkLoadBalancer(self, "LB",
22214
- vpc=vpc,
22215
- internet_facing=True,
22216
- security_groups=[sg1]
22217
- )
22218
- lb.add_security_group(sg2)
22219
22226
 
22220
- # Add a listener on a particular port.
22221
- listener = lb.add_listener("Listener",
22222
- 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
22223
22232
  )
22224
22233
 
22225
- # Add targets on a particular port.
22226
- listener.add_targets("AppFleet",
22227
- port=443,
22228
- targets=[asg]
22234
+ http_endpoint = apigwv2.HttpApi(self, "HttpProxyPrivateApi",
22235
+ default_integration=HttpNlbIntegration("DefaultIntegration", listener)
22229
22236
  )
22230
22237
  '''
22231
22238
 
@@ -25585,6 +25592,7 @@ def _typecheckingstub__0e09ea6213c5fb2125f07b2f54d7fe6ee24307939dcc06580928b2ef0
25585
25592
 
25586
25593
  def _typecheckingstub__07605e87f763c352d3e6705d69aa07723ad3c005493c1fdef02b175f49d53ee0(
25587
25594
  *,
25595
+ advertise_trust_store_ca_names: typing.Optional[builtins.str] = None,
25588
25596
  ignore_client_certificate_expiry: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
25589
25597
  mode: typing.Optional[builtins.str] = None,
25590
25598
  trust_store_arn: typing.Optional[builtins.str] = None,
@@ -26731,6 +26739,7 @@ def _typecheckingstub__e1c7a4c1332bdc807d1e25aa5d69eea6e1f3bf6a88ddd30dac9a64c93
26731
26739
  id: builtins.str,
26732
26740
  *,
26733
26741
  client_routing_policy: typing.Optional[ClientRoutingPolicy] = None,
26742
+ enable_prefix_for_ipv6_source_nat: typing.Optional[builtins.bool] = None,
26734
26743
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
26735
26744
  ip_address_type: typing.Optional[IpAddressType] = None,
26736
26745
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
@@ -26834,6 +26843,7 @@ def _typecheckingstub__195ab659ca9cd1c401d6d2d1a1f5cb0aaf7dd80f06dbc724020ac0cc3
26834
26843
  load_balancer_name: typing.Optional[builtins.str] = None,
26835
26844
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
26836
26845
  client_routing_policy: typing.Optional[ClientRoutingPolicy] = None,
26846
+ enable_prefix_for_ipv6_source_nat: typing.Optional[builtins.bool] = None,
26837
26847
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
26838
26848
  ip_address_type: typing.Optional[IpAddressType] = None,
26839
26849
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,