aws-cdk-lib 2.133.0__py3-none-any.whl → 2.134.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 (56) hide show
  1. aws_cdk/__init__.py +9 -1
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.133.0.jsii.tgz → aws-cdk-lib@2.134.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigatewayv2/__init__.py +105 -3
  5. aws_cdk/aws_apigatewayv2_integrations/__init__.py +155 -3
  6. aws_cdk/aws_appconfig/__init__.py +186 -8
  7. aws_cdk/aws_appintegrations/__init__.py +551 -0
  8. aws_cdk/aws_appsync/__init__.py +71 -0
  9. aws_cdk/aws_autoscaling/__init__.py +6 -4
  10. aws_cdk/aws_backup/__init__.py +23 -12
  11. aws_cdk/aws_batch/__init__.py +423 -73
  12. aws_cdk/aws_bedrock/__init__.py +197 -2
  13. aws_cdk/aws_cloudformation/__init__.py +1 -1
  14. aws_cdk/aws_cloudfront/__init__.py +2 -2
  15. aws_cdk/aws_cloudtrail/__init__.py +44 -14
  16. aws_cdk/aws_cloudwatch/__init__.py +18 -0
  17. aws_cdk/aws_codeartifact/__init__.py +812 -2
  18. aws_cdk/aws_codebuild/__init__.py +21 -5
  19. aws_cdk/aws_codepipeline/__init__.py +24 -8
  20. aws_cdk/aws_cognito/__init__.py +41 -40
  21. aws_cdk/aws_connect/__init__.py +256 -0
  22. aws_cdk/aws_datasync/__init__.py +393 -13
  23. aws_cdk/aws_dlm/__init__.py +2 -2
  24. aws_cdk/aws_docdbelastic/__init__.py +117 -0
  25. aws_cdk/aws_dynamodb/__init__.py +416 -5
  26. aws_cdk/aws_ec2/__init__.py +493 -93
  27. aws_cdk/aws_ecs/__init__.py +6 -4
  28. aws_cdk/aws_eks/__init__.py +27 -25
  29. aws_cdk/aws_elasticloadbalancingv2/__init__.py +359 -60
  30. aws_cdk/aws_entityresolution/__init__.py +91 -64
  31. aws_cdk/aws_glue/__init__.py +137 -3
  32. aws_cdk/aws_iam/__init__.py +9 -10
  33. aws_cdk/aws_internetmonitor/__init__.py +85 -0
  34. aws_cdk/aws_iotsitewise/__init__.py +110 -50
  35. aws_cdk/aws_kafkaconnect/__init__.py +1237 -162
  36. aws_cdk/aws_kendra/__init__.py +34 -24
  37. aws_cdk/aws_kinesisanalytics/__init__.py +37 -37
  38. aws_cdk/aws_kinesisanalyticsv2/__init__.py +37 -37
  39. aws_cdk/aws_kinesisfirehose/__init__.py +6 -2
  40. aws_cdk/aws_msk/__init__.py +88 -0
  41. aws_cdk/aws_opensearchservice/__init__.py +19 -17
  42. aws_cdk/aws_pinpoint/__init__.py +42 -0
  43. aws_cdk/aws_rds/__init__.py +48 -14
  44. aws_cdk/aws_sagemaker/__init__.py +2 -2
  45. aws_cdk/aws_ssm/__init__.py +3 -3
  46. aws_cdk/aws_stepfunctions_tasks/__init__.py +23 -0
  47. aws_cdk/aws_synthetics/__init__.py +74 -14
  48. aws_cdk/aws_transfer/__init__.py +4 -3
  49. aws_cdk/aws_wafv2/__init__.py +96 -46
  50. aws_cdk/cx_api/__init__.py +17 -0
  51. {aws_cdk_lib-2.133.0.dist-info → aws_cdk_lib-2.134.0.dist-info}/METADATA +2 -2
  52. {aws_cdk_lib-2.133.0.dist-info → aws_cdk_lib-2.134.0.dist-info}/RECORD +56 -56
  53. {aws_cdk_lib-2.133.0.dist-info → aws_cdk_lib-2.134.0.dist-info}/LICENSE +0 -0
  54. {aws_cdk_lib-2.133.0.dist-info → aws_cdk_lib-2.134.0.dist-info}/NOTICE +0 -0
  55. {aws_cdk_lib-2.133.0.dist-info → aws_cdk_lib-2.134.0.dist-info}/WHEEL +0 -0
  56. {aws_cdk_lib-2.133.0.dist-info → aws_cdk_lib-2.134.0.dist-info}/top_level.txt +0 -0
@@ -198,7 +198,7 @@ If you do not provide any options for this method, it redirects HTTP port 80 to
198
198
  By default all ingress traffic will be allowed on the source port. If you want to be more selective with your
199
199
  ingress rules then set `open: false` and use the listener's `connections` object to selectively grant access to the listener.
200
200
 
201
- ### Load Balancer attributes
201
+ ### Application Load Balancer attributes
202
202
 
203
203
  You can modify attributes of Application Load Balancers:
204
204
 
@@ -225,7 +225,16 @@ lb = elbv2.ApplicationLoadBalancer(self, "LB",
225
225
  desync_mitigation_mode=elbv2.DesyncMitigationMode.DEFENSIVE,
226
226
 
227
227
  # The type of IP addresses to use.
228
- ip_address_type=elbv2.IpAddressType.IPV4
228
+ ip_address_type=elbv2.IpAddressType.IPV4,
229
+
230
+ # The duration of client keep-alive connections
231
+ client_keep_alive=Duration.seconds(500),
232
+
233
+ # Whether cross-zone load balancing is enabled.
234
+ cross_zone_enabled=True,
235
+
236
+ # Whether the load balancer blocks traffic through the Internet Gateway (IGW).
237
+ deny_all_igw_traffic=False
229
238
  )
230
239
  ```
231
240
 
@@ -264,6 +273,22 @@ listener.add_targets("AppFleet",
264
273
  )
265
274
  ```
266
275
 
276
+ ### Enforce security group inbound rules on PrivateLink traffic for a Network Load Balancer
277
+
278
+ You can indicate whether to evaluate inbound security group rules for traffic
279
+ sent to a Network Load Balancer through AWS PrivateLink.
280
+ The evaluation is enabled by default.
281
+
282
+ ```python
283
+ # vpc: ec2.Vpc
284
+
285
+
286
+ nlb = elbv2.NetworkLoadBalancer(self, "LB",
287
+ vpc=vpc,
288
+ enforce_security_group_inbound_rules_on_private_link_traffic=True
289
+ )
290
+ ```
291
+
267
292
  One thing to keep in mind is that network load balancers do not have security
268
293
  groups, and no automatic security group configuration is done for you. You will
269
294
  have to configure the security groups of the target yourself to allow traffic by
@@ -290,6 +315,30 @@ lb = elbv2.NetworkLoadBalancer(self, "LB",
290
315
 
291
316
  You cannot add UDP or TCP_UDP listeners to a dualstack Network Load Balancer.
292
317
 
318
+ ### Network Load Balancer attributes
319
+
320
+ You can modify attributes of Network Load Balancers:
321
+
322
+ ```python
323
+ # vpc: ec2.Vpc
324
+
325
+
326
+ lb = elbv2.NetworkLoadBalancer(self, "LB",
327
+ vpc=vpc,
328
+ # Whether deletion protection is enabled.
329
+ deletion_protection=True,
330
+
331
+ # Whether cross-zone load balancing is enabled.
332
+ cross_zone_enabled=True,
333
+
334
+ # Whether the load balancer blocks traffic through the Internet Gateway (IGW).
335
+ deny_all_igw_traffic=False,
336
+
337
+ # Indicates how traffic is distributed among the load balancer Availability Zones.
338
+ client_routing_policy=elbv2.ClientRoutingPolicy.AVAILABILITY_ZONE_AFFINITY
339
+ )
340
+ ```
341
+
293
342
  ## Targets and Target Groups
294
343
 
295
344
  Application and Network Load Balancers organize load balancing targets in Target
@@ -345,6 +394,27 @@ tg2 = elbv2.ApplicationTargetGroup(self, "TG2",
345
394
  )
346
395
  ```
347
396
 
397
+ ### Slow start mode for your Application Load Balancer
398
+
399
+ By default, a target starts to receive its full share of requests as soon as it is registered with a target group and passes an initial health check. Using slow start mode gives targets time to warm up before the load balancer sends them a full share of requests.
400
+
401
+ After you enable slow start for a target group, its targets enter slow start mode when they are considered healthy by the target group. A target in slow start mode exits slow start mode when the configured slow start duration period elapses or the target becomes unhealthy. The load balancer linearly increases the number of requests that it can send to a target in slow start mode. After a healthy target exits slow start mode, the load balancer can send it a full share of requests.
402
+
403
+ The allowed range is 30-900 seconds (15 minutes). The default is 0 seconds (disabled).
404
+
405
+ ```python
406
+ # vpc: ec2.Vpc
407
+
408
+
409
+ # Target group with slow start mode enabled
410
+ tg = elbv2.ApplicationTargetGroup(self, "TG",
411
+ target_type=elbv2.TargetType.INSTANCE,
412
+ slow_start=Duration.seconds(60),
413
+ port=80,
414
+ vpc=vpc
415
+ )
416
+ ```
417
+
348
418
  For more information see: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html#application-based-stickiness
349
419
 
350
420
  ### Setting the target group protocol version
@@ -2619,7 +2689,9 @@ class BaseLoadBalancerLookupOptions:
2619
2689
  jsii_struct_bases=[],
2620
2690
  name_mapping={
2621
2691
  "vpc": "vpc",
2692
+ "cross_zone_enabled": "crossZoneEnabled",
2622
2693
  "deletion_protection": "deletionProtection",
2694
+ "deny_all_igw_traffic": "denyAllIgwTraffic",
2623
2695
  "internet_facing": "internetFacing",
2624
2696
  "load_balancer_name": "loadBalancerName",
2625
2697
  "vpc_subnets": "vpcSubnets",
@@ -2630,7 +2702,9 @@ class BaseLoadBalancerProps:
2630
2702
  self,
2631
2703
  *,
2632
2704
  vpc: _IVpc_f30d5663,
2705
+ cross_zone_enabled: typing.Optional[builtins.bool] = None,
2633
2706
  deletion_protection: typing.Optional[builtins.bool] = None,
2707
+ deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
2634
2708
  internet_facing: typing.Optional[builtins.bool] = None,
2635
2709
  load_balancer_name: typing.Optional[builtins.str] = None,
2636
2710
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -2638,7 +2712,9 @@ class BaseLoadBalancerProps:
2638
2712
  '''Shared properties of both Application and Network Load Balancers.
2639
2713
 
2640
2714
  :param vpc: The VPC network to place the load balancer in.
2715
+ :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers.
2641
2716
  :param deletion_protection: Indicates whether deletion protection is enabled. Default: false
2717
+ :param deny_all_igw_traffic: Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). Default: - false for internet-facing load balancers and true for internal load balancers
2642
2718
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
2643
2719
  :param load_balancer_name: Name of the load balancer. Default: - Automatically generated name.
2644
2720
  :param vpc_subnets: Which subnets place the load balancer in. Default: - the Vpc default strategy.
@@ -2660,7 +2736,9 @@ class BaseLoadBalancerProps:
2660
2736
  vpc=vpc,
2661
2737
 
2662
2738
  # the properties below are optional
2739
+ cross_zone_enabled=False,
2663
2740
  deletion_protection=False,
2741
+ deny_all_igw_traffic=False,
2664
2742
  internet_facing=False,
2665
2743
  load_balancer_name="loadBalancerName",
2666
2744
  vpc_subnets=ec2.SubnetSelection(
@@ -2678,15 +2756,21 @@ class BaseLoadBalancerProps:
2678
2756
  if __debug__:
2679
2757
  type_hints = typing.get_type_hints(_typecheckingstub__36614588a5e075aa6e7ea0a4d41053b09874f2590b227cd5d62f3429901282f2)
2680
2758
  check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
2759
+ check_type(argname="argument cross_zone_enabled", value=cross_zone_enabled, expected_type=type_hints["cross_zone_enabled"])
2681
2760
  check_type(argname="argument deletion_protection", value=deletion_protection, expected_type=type_hints["deletion_protection"])
2761
+ check_type(argname="argument deny_all_igw_traffic", value=deny_all_igw_traffic, expected_type=type_hints["deny_all_igw_traffic"])
2682
2762
  check_type(argname="argument internet_facing", value=internet_facing, expected_type=type_hints["internet_facing"])
2683
2763
  check_type(argname="argument load_balancer_name", value=load_balancer_name, expected_type=type_hints["load_balancer_name"])
2684
2764
  check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
2685
2765
  self._values: typing.Dict[builtins.str, typing.Any] = {
2686
2766
  "vpc": vpc,
2687
2767
  }
2768
+ if cross_zone_enabled is not None:
2769
+ self._values["cross_zone_enabled"] = cross_zone_enabled
2688
2770
  if deletion_protection is not None:
2689
2771
  self._values["deletion_protection"] = deletion_protection
2772
+ if deny_all_igw_traffic is not None:
2773
+ self._values["deny_all_igw_traffic"] = deny_all_igw_traffic
2690
2774
  if internet_facing is not None:
2691
2775
  self._values["internet_facing"] = internet_facing
2692
2776
  if load_balancer_name is not None:
@@ -2701,6 +2785,15 @@ class BaseLoadBalancerProps:
2701
2785
  assert result is not None, "Required property 'vpc' is missing"
2702
2786
  return typing.cast(_IVpc_f30d5663, result)
2703
2787
 
2788
+ @builtins.property
2789
+ def cross_zone_enabled(self) -> typing.Optional[builtins.bool]:
2790
+ '''Indicates whether cross-zone load balancing is enabled.
2791
+
2792
+ :default: - false for Network Load Balancers and true for Application Load Balancers.
2793
+ '''
2794
+ result = self._values.get("cross_zone_enabled")
2795
+ return typing.cast(typing.Optional[builtins.bool], result)
2796
+
2704
2797
  @builtins.property
2705
2798
  def deletion_protection(self) -> typing.Optional[builtins.bool]:
2706
2799
  '''Indicates whether deletion protection is enabled.
@@ -2710,6 +2803,15 @@ class BaseLoadBalancerProps:
2710
2803
  result = self._values.get("deletion_protection")
2711
2804
  return typing.cast(typing.Optional[builtins.bool], result)
2712
2805
 
2806
+ @builtins.property
2807
+ def deny_all_igw_traffic(self) -> typing.Optional[builtins.bool]:
2808
+ '''Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW).
2809
+
2810
+ :default: - false for internet-facing load balancers and true for internal load balancers
2811
+ '''
2812
+ result = self._values.get("deny_all_igw_traffic")
2813
+ return typing.cast(typing.Optional[builtins.bool], result)
2814
+
2713
2815
  @builtins.property
2714
2816
  def internet_facing(self) -> typing.Optional[builtins.bool]:
2715
2817
  '''Whether the load balancer has an internet-routable address.
@@ -7972,7 +8074,7 @@ class CfnLoadBalancer(
7972
8074
  ) -> None:
7973
8075
  '''Specifies an attribute for an Application Load Balancer, a Network Load Balancer, or a Gateway Load Balancer.
7974
8076
 
7975
- :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 cannot 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. - ``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.
8077
+ :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 cannot 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.
7976
8078
  :param value: The value of the attribute.
7977
8079
 
7978
8080
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html
@@ -8018,6 +8120,7 @@ class CfnLoadBalancer(
8018
8120
  The following attributes are supported by only Application Load Balancers:
8019
8121
 
8020
8122
  - ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.
8123
+ - ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.
8021
8124
  - ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false`` . The default is ``false`` .
8022
8125
  - ``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.
8023
8126
  - ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs.
@@ -10398,6 +10501,42 @@ class CfnTrustStoreRevocationProps:
10398
10501
  )
10399
10502
 
10400
10503
 
10504
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.ClientRoutingPolicy")
10505
+ class ClientRoutingPolicy(enum.Enum):
10506
+ '''Indicates how traffic is distributed among the load balancer Availability Zones.
10507
+
10508
+ :see: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity
10509
+ :exampleMetadata: infused
10510
+
10511
+ Example::
10512
+
10513
+ # vpc: ec2.Vpc
10514
+
10515
+
10516
+ lb = elbv2.NetworkLoadBalancer(self, "LB",
10517
+ vpc=vpc,
10518
+ # Whether deletion protection is enabled.
10519
+ deletion_protection=True,
10520
+
10521
+ # Whether cross-zone load balancing is enabled.
10522
+ cross_zone_enabled=True,
10523
+
10524
+ # Whether the load balancer blocks traffic through the Internet Gateway (IGW).
10525
+ deny_all_igw_traffic=False,
10526
+
10527
+ # Indicates how traffic is distributed among the load balancer Availability Zones.
10528
+ client_routing_policy=elbv2.ClientRoutingPolicy.AVAILABILITY_ZONE_AFFINITY
10529
+ )
10530
+ '''
10531
+
10532
+ AVAILABILITY_ZONE_AFFINITY = "AVAILABILITY_ZONE_AFFINITY"
10533
+ '''100 percent zonal affinity.'''
10534
+ PARTIAL_AVAILABILITY_ZONE_AFFINITY = "PARTIAL_AVAILABILITY_ZONE_AFFINITY"
10535
+ '''85 percent zonal affinity.'''
10536
+ ANY_AVAILABILITY_ZONE = "ANY_AVAILABILITY_ZONE"
10537
+ '''No zonal affinity.'''
10538
+
10539
+
10401
10540
  @jsii.enum(jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.DesyncMitigationMode")
10402
10541
  class DesyncMitigationMode(enum.Enum):
10403
10542
  '''How the load balancer handles requests that might pose a security risk to your application.
@@ -10429,7 +10568,16 @@ class DesyncMitigationMode(enum.Enum):
10429
10568
  desync_mitigation_mode=elbv2.DesyncMitigationMode.DEFENSIVE,
10430
10569
 
10431
10570
  # The type of IP addresses to use.
10432
- ip_address_type=elbv2.IpAddressType.IPV4
10571
+ ip_address_type=elbv2.IpAddressType.IPV4,
10572
+
10573
+ # The duration of client keep-alive connections
10574
+ client_keep_alive=Duration.seconds(500),
10575
+
10576
+ # Whether cross-zone load balancing is enabled.
10577
+ cross_zone_enabled=True,
10578
+
10579
+ # Whether the load balancer blocks traffic through the Internet Gateway (IGW).
10580
+ deny_all_igw_traffic=False
10433
10581
  )
10434
10582
  '''
10435
10583
 
@@ -13460,6 +13608,17 @@ class INetworkLoadBalancer(
13460
13608
  '''All metrics available for this load balancer.'''
13461
13609
  ...
13462
13610
 
13611
+ @builtins.property
13612
+ @jsii.member(jsii_name="enforceSecurityGroupInboundRulesOnPrivateLinkTraffic")
13613
+ def enforce_security_group_inbound_rules_on_private_link_traffic(
13614
+ self,
13615
+ ) -> typing.Optional[builtins.str]:
13616
+ '''Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through AWS PrivateLink.
13617
+
13618
+ :default: on
13619
+ '''
13620
+ ...
13621
+
13463
13622
  @builtins.property
13464
13623
  @jsii.member(jsii_name="ipAddressType")
13465
13624
  def ip_address_type(self) -> typing.Optional["IpAddressType"]:
@@ -13525,6 +13684,17 @@ class _INetworkLoadBalancerProxy(
13525
13684
  '''All metrics available for this load balancer.'''
13526
13685
  return typing.cast("INetworkLoadBalancerMetrics", jsii.get(self, "metrics"))
13527
13686
 
13687
+ @builtins.property
13688
+ @jsii.member(jsii_name="enforceSecurityGroupInboundRulesOnPrivateLinkTraffic")
13689
+ def enforce_security_group_inbound_rules_on_private_link_traffic(
13690
+ self,
13691
+ ) -> typing.Optional[builtins.str]:
13692
+ '''Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through AWS PrivateLink.
13693
+
13694
+ :default: on
13695
+ '''
13696
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"))
13697
+
13528
13698
  @builtins.property
13529
13699
  @jsii.member(jsii_name="ipAddressType")
13530
13700
  def ip_address_type(self) -> typing.Optional["IpAddressType"]:
@@ -14531,7 +14701,16 @@ class IpAddressType(enum.Enum):
14531
14701
  desync_mitigation_mode=elbv2.DesyncMitigationMode.DEFENSIVE,
14532
14702
 
14533
14703
  # The type of IP addresses to use.
14534
- ip_address_type=elbv2.IpAddressType.IPV4
14704
+ ip_address_type=elbv2.IpAddressType.IPV4,
14705
+
14706
+ # The duration of client keep-alive connections
14707
+ client_keep_alive=Duration.seconds(500),
14708
+
14709
+ # Whether cross-zone load balancing is enabled.
14710
+ cross_zone_enabled=True,
14711
+
14712
+ # Whether the load balancer blocks traffic through the Internet Gateway (IGW).
14713
+ deny_all_igw_traffic=False
14535
14714
  )
14536
14715
  '''
14537
14716
 
@@ -15653,24 +15832,18 @@ class NetworkLoadBalancer(
15653
15832
 
15654
15833
  Example::
15655
15834
 
15656
- import aws_cdk.aws_elasticloadbalancingv2 as elbv2
15835
+ from aws_cdk.aws_apigatewayv2_integrations import HttpNlbIntegration
15657
15836
 
15658
15837
 
15659
15838
  vpc = ec2.Vpc(self, "VPC")
15660
- nlb = elbv2.NetworkLoadBalancer(self, "NLB",
15661
- vpc=vpc
15662
- )
15663
- link = apigateway.VpcLink(self, "link",
15664
- targets=[nlb]
15839
+ lb = elbv2.NetworkLoadBalancer(self, "lb", vpc=vpc)
15840
+ listener = lb.add_listener("listener", port=80)
15841
+ listener.add_targets("target",
15842
+ port=80
15665
15843
  )
15666
15844
 
15667
- integration = apigateway.Integration(
15668
- type=apigateway.IntegrationType.HTTP_PROXY,
15669
- integration_http_method="ANY",
15670
- options=apigateway.IntegrationOptions(
15671
- connection_type=apigateway.ConnectionType.VPC_LINK,
15672
- vpc_link=link
15673
- )
15845
+ http_endpoint = apigwv2.HttpApi(self, "HttpProxyPrivateApi",
15846
+ default_integration=HttpNlbIntegration("DefaultIntegration", listener)
15674
15847
  )
15675
15848
  '''
15676
15849
 
@@ -15679,11 +15852,14 @@ class NetworkLoadBalancer(
15679
15852
  scope: _constructs_77d1e7e8.Construct,
15680
15853
  id: builtins.str,
15681
15854
  *,
15682
- cross_zone_enabled: typing.Optional[builtins.bool] = None,
15855
+ client_routing_policy: typing.Optional[ClientRoutingPolicy] = None,
15856
+ enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
15683
15857
  ip_address_type: typing.Optional[IpAddressType] = None,
15684
15858
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
15685
15859
  vpc: _IVpc_f30d5663,
15860
+ cross_zone_enabled: typing.Optional[builtins.bool] = None,
15686
15861
  deletion_protection: typing.Optional[builtins.bool] = None,
15862
+ deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
15687
15863
  internet_facing: typing.Optional[builtins.bool] = None,
15688
15864
  load_balancer_name: typing.Optional[builtins.str] = None,
15689
15865
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -15691,11 +15867,14 @@ class NetworkLoadBalancer(
15691
15867
  '''
15692
15868
  :param scope: -
15693
15869
  :param id: -
15694
- :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: false
15870
+ :param client_routing_policy: The AZ affinity routing policy. Default: - AZ affinity is disabled.
15871
+ :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
15695
15872
  :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
15696
15873
  :param security_groups: Security groups to associate with this load balancer. Default: - No security groups associated with the load balancer.
15697
15874
  :param vpc: The VPC network to place the load balancer in.
15875
+ :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers.
15698
15876
  :param deletion_protection: Indicates whether deletion protection is enabled. Default: false
15877
+ :param deny_all_igw_traffic: Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). Default: - false for internet-facing load balancers and true for internal load balancers
15699
15878
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
15700
15879
  :param load_balancer_name: Name of the load balancer. Default: - Automatically generated name.
15701
15880
  :param vpc_subnets: Which subnets place the load balancer in. Default: - the Vpc default strategy.
@@ -15705,11 +15884,14 @@ class NetworkLoadBalancer(
15705
15884
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
15706
15885
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
15707
15886
  props = NetworkLoadBalancerProps(
15708
- cross_zone_enabled=cross_zone_enabled,
15887
+ client_routing_policy=client_routing_policy,
15888
+ enforce_security_group_inbound_rules_on_private_link_traffic=enforce_security_group_inbound_rules_on_private_link_traffic,
15709
15889
  ip_address_type=ip_address_type,
15710
15890
  security_groups=security_groups,
15711
15891
  vpc=vpc,
15892
+ cross_zone_enabled=cross_zone_enabled,
15712
15893
  deletion_protection=deletion_protection,
15894
+ deny_all_igw_traffic=deny_all_igw_traffic,
15713
15895
  internet_facing=internet_facing,
15714
15896
  load_balancer_name=load_balancer_name,
15715
15897
  vpc_subnets=vpc_subnets,
@@ -16201,6 +16383,14 @@ class NetworkLoadBalancer(
16201
16383
  '''All metrics available for this load balancer.'''
16202
16384
  return typing.cast(INetworkLoadBalancerMetrics, jsii.get(self, "metrics"))
16203
16385
 
16386
+ @builtins.property
16387
+ @jsii.member(jsii_name="enforceSecurityGroupInboundRulesOnPrivateLinkTraffic")
16388
+ def enforce_security_group_inbound_rules_on_private_link_traffic(
16389
+ self,
16390
+ ) -> typing.Optional[builtins.str]:
16391
+ '''Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through AWS PrivateLink.'''
16392
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"))
16393
+
16204
16394
  @builtins.property
16205
16395
  @jsii.member(jsii_name="ipAddressType")
16206
16396
  def ip_address_type(self) -> typing.Optional[IpAddressType]:
@@ -16436,11 +16626,14 @@ class NetworkLoadBalancerLookupOptions(BaseLoadBalancerLookupOptions):
16436
16626
  jsii_struct_bases=[BaseLoadBalancerProps],
16437
16627
  name_mapping={
16438
16628
  "vpc": "vpc",
16629
+ "cross_zone_enabled": "crossZoneEnabled",
16439
16630
  "deletion_protection": "deletionProtection",
16631
+ "deny_all_igw_traffic": "denyAllIgwTraffic",
16440
16632
  "internet_facing": "internetFacing",
16441
16633
  "load_balancer_name": "loadBalancerName",
16442
16634
  "vpc_subnets": "vpcSubnets",
16443
- "cross_zone_enabled": "crossZoneEnabled",
16635
+ "client_routing_policy": "clientRoutingPolicy",
16636
+ "enforce_security_group_inbound_rules_on_private_link_traffic": "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic",
16444
16637
  "ip_address_type": "ipAddressType",
16445
16638
  "security_groups": "securityGroups",
16446
16639
  },
@@ -16450,22 +16643,28 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
16450
16643
  self,
16451
16644
  *,
16452
16645
  vpc: _IVpc_f30d5663,
16646
+ cross_zone_enabled: typing.Optional[builtins.bool] = None,
16453
16647
  deletion_protection: typing.Optional[builtins.bool] = None,
16648
+ deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
16454
16649
  internet_facing: typing.Optional[builtins.bool] = None,
16455
16650
  load_balancer_name: typing.Optional[builtins.str] = None,
16456
16651
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
16457
- cross_zone_enabled: typing.Optional[builtins.bool] = None,
16652
+ client_routing_policy: typing.Optional[ClientRoutingPolicy] = None,
16653
+ enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
16458
16654
  ip_address_type: typing.Optional[IpAddressType] = None,
16459
16655
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
16460
16656
  ) -> None:
16461
16657
  '''Properties for a network load balancer.
16462
16658
 
16463
16659
  :param vpc: The VPC network to place the load balancer in.
16660
+ :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers.
16464
16661
  :param deletion_protection: Indicates whether deletion protection is enabled. Default: false
16662
+ :param deny_all_igw_traffic: Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). Default: - false for internet-facing load balancers and true for internal load balancers
16465
16663
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
16466
16664
  :param load_balancer_name: Name of the load balancer. Default: - Automatically generated name.
16467
16665
  :param vpc_subnets: Which subnets place the load balancer in. Default: - the Vpc default strategy.
16468
- :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: false
16666
+ :param client_routing_policy: The AZ affinity routing policy. Default: - AZ affinity is disabled.
16667
+ :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
16469
16668
  :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
16470
16669
  :param security_groups: Security groups to associate with this load balancer. Default: - No security groups associated with the load balancer.
16471
16670
 
@@ -16473,24 +16672,18 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
16473
16672
 
16474
16673
  Example::
16475
16674
 
16476
- import aws_cdk.aws_elasticloadbalancingv2 as elbv2
16675
+ from aws_cdk.aws_apigatewayv2_integrations import HttpNlbIntegration
16477
16676
 
16478
16677
 
16479
16678
  vpc = ec2.Vpc(self, "VPC")
16480
- nlb = elbv2.NetworkLoadBalancer(self, "NLB",
16481
- vpc=vpc
16482
- )
16483
- link = apigateway.VpcLink(self, "link",
16484
- targets=[nlb]
16679
+ lb = elbv2.NetworkLoadBalancer(self, "lb", vpc=vpc)
16680
+ listener = lb.add_listener("listener", port=80)
16681
+ listener.add_targets("target",
16682
+ port=80
16485
16683
  )
16486
16684
 
16487
- integration = apigateway.Integration(
16488
- type=apigateway.IntegrationType.HTTP_PROXY,
16489
- integration_http_method="ANY",
16490
- options=apigateway.IntegrationOptions(
16491
- connection_type=apigateway.ConnectionType.VPC_LINK,
16492
- vpc_link=link
16493
- )
16685
+ http_endpoint = apigwv2.HttpApi(self, "HttpProxyPrivateApi",
16686
+ default_integration=HttpNlbIntegration("DefaultIntegration", listener)
16494
16687
  )
16495
16688
  '''
16496
16689
  if isinstance(vpc_subnets, dict):
@@ -16498,26 +16691,35 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
16498
16691
  if __debug__:
16499
16692
  type_hints = typing.get_type_hints(_typecheckingstub__195ab659ca9cd1c401d6d2d1a1f5cb0aaf7dd80f06dbc724020ac0cc391d75da)
16500
16693
  check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
16694
+ check_type(argname="argument cross_zone_enabled", value=cross_zone_enabled, expected_type=type_hints["cross_zone_enabled"])
16501
16695
  check_type(argname="argument deletion_protection", value=deletion_protection, expected_type=type_hints["deletion_protection"])
16696
+ check_type(argname="argument deny_all_igw_traffic", value=deny_all_igw_traffic, expected_type=type_hints["deny_all_igw_traffic"])
16502
16697
  check_type(argname="argument internet_facing", value=internet_facing, expected_type=type_hints["internet_facing"])
16503
16698
  check_type(argname="argument load_balancer_name", value=load_balancer_name, expected_type=type_hints["load_balancer_name"])
16504
16699
  check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
16505
- check_type(argname="argument cross_zone_enabled", value=cross_zone_enabled, expected_type=type_hints["cross_zone_enabled"])
16700
+ check_type(argname="argument client_routing_policy", value=client_routing_policy, expected_type=type_hints["client_routing_policy"])
16701
+ 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"])
16506
16702
  check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
16507
16703
  check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
16508
16704
  self._values: typing.Dict[builtins.str, typing.Any] = {
16509
16705
  "vpc": vpc,
16510
16706
  }
16707
+ if cross_zone_enabled is not None:
16708
+ self._values["cross_zone_enabled"] = cross_zone_enabled
16511
16709
  if deletion_protection is not None:
16512
16710
  self._values["deletion_protection"] = deletion_protection
16711
+ if deny_all_igw_traffic is not None:
16712
+ self._values["deny_all_igw_traffic"] = deny_all_igw_traffic
16513
16713
  if internet_facing is not None:
16514
16714
  self._values["internet_facing"] = internet_facing
16515
16715
  if load_balancer_name is not None:
16516
16716
  self._values["load_balancer_name"] = load_balancer_name
16517
16717
  if vpc_subnets is not None:
16518
16718
  self._values["vpc_subnets"] = vpc_subnets
16519
- if cross_zone_enabled is not None:
16520
- self._values["cross_zone_enabled"] = cross_zone_enabled
16719
+ if client_routing_policy is not None:
16720
+ self._values["client_routing_policy"] = client_routing_policy
16721
+ if enforce_security_group_inbound_rules_on_private_link_traffic is not None:
16722
+ self._values["enforce_security_group_inbound_rules_on_private_link_traffic"] = enforce_security_group_inbound_rules_on_private_link_traffic
16521
16723
  if ip_address_type is not None:
16522
16724
  self._values["ip_address_type"] = ip_address_type
16523
16725
  if security_groups is not None:
@@ -16530,6 +16732,15 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
16530
16732
  assert result is not None, "Required property 'vpc' is missing"
16531
16733
  return typing.cast(_IVpc_f30d5663, result)
16532
16734
 
16735
+ @builtins.property
16736
+ def cross_zone_enabled(self) -> typing.Optional[builtins.bool]:
16737
+ '''Indicates whether cross-zone load balancing is enabled.
16738
+
16739
+ :default: - false for Network Load Balancers and true for Application Load Balancers.
16740
+ '''
16741
+ result = self._values.get("cross_zone_enabled")
16742
+ return typing.cast(typing.Optional[builtins.bool], result)
16743
+
16533
16744
  @builtins.property
16534
16745
  def deletion_protection(self) -> typing.Optional[builtins.bool]:
16535
16746
  '''Indicates whether deletion protection is enabled.
@@ -16539,6 +16750,15 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
16539
16750
  result = self._values.get("deletion_protection")
16540
16751
  return typing.cast(typing.Optional[builtins.bool], result)
16541
16752
 
16753
+ @builtins.property
16754
+ def deny_all_igw_traffic(self) -> typing.Optional[builtins.bool]:
16755
+ '''Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW).
16756
+
16757
+ :default: - false for internet-facing load balancers and true for internal load balancers
16758
+ '''
16759
+ result = self._values.get("deny_all_igw_traffic")
16760
+ return typing.cast(typing.Optional[builtins.bool], result)
16761
+
16542
16762
  @builtins.property
16543
16763
  def internet_facing(self) -> typing.Optional[builtins.bool]:
16544
16764
  '''Whether the load balancer has an internet-routable address.
@@ -16567,12 +16787,25 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
16567
16787
  return typing.cast(typing.Optional[_SubnetSelection_e57d76df], result)
16568
16788
 
16569
16789
  @builtins.property
16570
- def cross_zone_enabled(self) -> typing.Optional[builtins.bool]:
16571
- '''Indicates whether cross-zone load balancing is enabled.
16790
+ def client_routing_policy(self) -> typing.Optional[ClientRoutingPolicy]:
16791
+ '''The AZ affinity routing policy.
16572
16792
 
16573
- :default: false
16793
+ :default: - AZ affinity is disabled.
16794
+
16795
+ :see: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity
16574
16796
  '''
16575
- result = self._values.get("cross_zone_enabled")
16797
+ result = self._values.get("client_routing_policy")
16798
+ return typing.cast(typing.Optional[ClientRoutingPolicy], result)
16799
+
16800
+ @builtins.property
16801
+ def enforce_security_group_inbound_rules_on_private_link_traffic(
16802
+ self,
16803
+ ) -> typing.Optional[builtins.bool]:
16804
+ '''Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through AWS PrivateLink.
16805
+
16806
+ :default: true
16807
+ '''
16808
+ result = self._values.get("enforce_security_group_inbound_rules_on_private_link_traffic")
16576
16809
  return typing.cast(typing.Optional[builtins.bool], result)
16577
16810
 
16578
16811
  @builtins.property
@@ -18863,10 +19096,13 @@ class ApplicationLoadBalancerLookupOptions(BaseLoadBalancerLookupOptions):
18863
19096
  jsii_struct_bases=[BaseLoadBalancerProps],
18864
19097
  name_mapping={
18865
19098
  "vpc": "vpc",
19099
+ "cross_zone_enabled": "crossZoneEnabled",
18866
19100
  "deletion_protection": "deletionProtection",
19101
+ "deny_all_igw_traffic": "denyAllIgwTraffic",
18867
19102
  "internet_facing": "internetFacing",
18868
19103
  "load_balancer_name": "loadBalancerName",
18869
19104
  "vpc_subnets": "vpcSubnets",
19105
+ "client_keep_alive": "clientKeepAlive",
18870
19106
  "desync_mitigation_mode": "desyncMitigationMode",
18871
19107
  "drop_invalid_header_fields": "dropInvalidHeaderFields",
18872
19108
  "http2_enabled": "http2Enabled",
@@ -18880,10 +19116,13 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
18880
19116
  self,
18881
19117
  *,
18882
19118
  vpc: _IVpc_f30d5663,
19119
+ cross_zone_enabled: typing.Optional[builtins.bool] = None,
18883
19120
  deletion_protection: typing.Optional[builtins.bool] = None,
19121
+ deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
18884
19122
  internet_facing: typing.Optional[builtins.bool] = None,
18885
19123
  load_balancer_name: typing.Optional[builtins.str] = None,
18886
19124
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
19125
+ client_keep_alive: typing.Optional[_Duration_4839e8c3] = None,
18887
19126
  desync_mitigation_mode: typing.Optional[DesyncMitigationMode] = None,
18888
19127
  drop_invalid_header_fields: typing.Optional[builtins.bool] = None,
18889
19128
  http2_enabled: typing.Optional[builtins.bool] = None,
@@ -18894,10 +19133,13 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
18894
19133
  '''Properties for defining an Application Load Balancer.
18895
19134
 
18896
19135
  :param vpc: The VPC network to place the load balancer in.
19136
+ :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers.
18897
19137
  :param deletion_protection: Indicates whether deletion protection is enabled. Default: false
19138
+ :param deny_all_igw_traffic: Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). Default: - false for internet-facing load balancers and true for internal load balancers
18898
19139
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
18899
19140
  :param load_balancer_name: Name of the load balancer. Default: - Automatically generated name.
18900
19141
  :param vpc_subnets: Which subnets place the load balancer in. Default: - the Vpc default strategy.
19142
+ :param client_keep_alive: The client keep alive duration. The valid range is 60 to 604800 seconds (1 minute to 7 days). Default: - Duration.seconds(3600)
18901
19143
  :param desync_mitigation_mode: Determines how the load balancer handles requests that might pose a security risk to your application. Default: DesyncMitigationMode.DEFENSIVE
18902
19144
  :param drop_invalid_header_fields: Indicates whether HTTP headers with invalid header fields are removed by the load balancer (true) or routed to targets (false). Default: false
18903
19145
  :param http2_enabled: Indicates whether HTTP/2 is enabled. Default: true
@@ -18931,10 +19173,13 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
18931
19173
  if __debug__:
18932
19174
  type_hints = typing.get_type_hints(_typecheckingstub__e43cf75024913d9be0d5d621a5f2c2c7be60a57898a54967cd54179b2b3d1584)
18933
19175
  check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
19176
+ check_type(argname="argument cross_zone_enabled", value=cross_zone_enabled, expected_type=type_hints["cross_zone_enabled"])
18934
19177
  check_type(argname="argument deletion_protection", value=deletion_protection, expected_type=type_hints["deletion_protection"])
19178
+ check_type(argname="argument deny_all_igw_traffic", value=deny_all_igw_traffic, expected_type=type_hints["deny_all_igw_traffic"])
18935
19179
  check_type(argname="argument internet_facing", value=internet_facing, expected_type=type_hints["internet_facing"])
18936
19180
  check_type(argname="argument load_balancer_name", value=load_balancer_name, expected_type=type_hints["load_balancer_name"])
18937
19181
  check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
19182
+ check_type(argname="argument client_keep_alive", value=client_keep_alive, expected_type=type_hints["client_keep_alive"])
18938
19183
  check_type(argname="argument desync_mitigation_mode", value=desync_mitigation_mode, expected_type=type_hints["desync_mitigation_mode"])
18939
19184
  check_type(argname="argument drop_invalid_header_fields", value=drop_invalid_header_fields, expected_type=type_hints["drop_invalid_header_fields"])
18940
19185
  check_type(argname="argument http2_enabled", value=http2_enabled, expected_type=type_hints["http2_enabled"])
@@ -18944,14 +19189,20 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
18944
19189
  self._values: typing.Dict[builtins.str, typing.Any] = {
18945
19190
  "vpc": vpc,
18946
19191
  }
19192
+ if cross_zone_enabled is not None:
19193
+ self._values["cross_zone_enabled"] = cross_zone_enabled
18947
19194
  if deletion_protection is not None:
18948
19195
  self._values["deletion_protection"] = deletion_protection
19196
+ if deny_all_igw_traffic is not None:
19197
+ self._values["deny_all_igw_traffic"] = deny_all_igw_traffic
18949
19198
  if internet_facing is not None:
18950
19199
  self._values["internet_facing"] = internet_facing
18951
19200
  if load_balancer_name is not None:
18952
19201
  self._values["load_balancer_name"] = load_balancer_name
18953
19202
  if vpc_subnets is not None:
18954
19203
  self._values["vpc_subnets"] = vpc_subnets
19204
+ if client_keep_alive is not None:
19205
+ self._values["client_keep_alive"] = client_keep_alive
18955
19206
  if desync_mitigation_mode is not None:
18956
19207
  self._values["desync_mitigation_mode"] = desync_mitigation_mode
18957
19208
  if drop_invalid_header_fields is not None:
@@ -18972,6 +19223,15 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
18972
19223
  assert result is not None, "Required property 'vpc' is missing"
18973
19224
  return typing.cast(_IVpc_f30d5663, result)
18974
19225
 
19226
+ @builtins.property
19227
+ def cross_zone_enabled(self) -> typing.Optional[builtins.bool]:
19228
+ '''Indicates whether cross-zone load balancing is enabled.
19229
+
19230
+ :default: - false for Network Load Balancers and true for Application Load Balancers.
19231
+ '''
19232
+ result = self._values.get("cross_zone_enabled")
19233
+ return typing.cast(typing.Optional[builtins.bool], result)
19234
+
18975
19235
  @builtins.property
18976
19236
  def deletion_protection(self) -> typing.Optional[builtins.bool]:
18977
19237
  '''Indicates whether deletion protection is enabled.
@@ -18981,6 +19241,15 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
18981
19241
  result = self._values.get("deletion_protection")
18982
19242
  return typing.cast(typing.Optional[builtins.bool], result)
18983
19243
 
19244
+ @builtins.property
19245
+ def deny_all_igw_traffic(self) -> typing.Optional[builtins.bool]:
19246
+ '''Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW).
19247
+
19248
+ :default: - false for internet-facing load balancers and true for internal load balancers
19249
+ '''
19250
+ result = self._values.get("deny_all_igw_traffic")
19251
+ return typing.cast(typing.Optional[builtins.bool], result)
19252
+
18984
19253
  @builtins.property
18985
19254
  def internet_facing(self) -> typing.Optional[builtins.bool]:
18986
19255
  '''Whether the load balancer has an internet-routable address.
@@ -19008,6 +19277,17 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
19008
19277
  result = self._values.get("vpc_subnets")
19009
19278
  return typing.cast(typing.Optional[_SubnetSelection_e57d76df], result)
19010
19279
 
19280
+ @builtins.property
19281
+ def client_keep_alive(self) -> typing.Optional[_Duration_4839e8c3]:
19282
+ '''The client keep alive duration.
19283
+
19284
+ The valid range is 60 to 604800 seconds (1 minute to 7 days).
19285
+
19286
+ :default: - Duration.seconds(3600)
19287
+ '''
19288
+ result = self._values.get("client_keep_alive")
19289
+ return typing.cast(typing.Optional[_Duration_4839e8c3], result)
19290
+
19011
19291
  @builtins.property
19012
19292
  def desync_mitigation_mode(self) -> typing.Optional[DesyncMitigationMode]:
19013
19293
  '''Determines how the load balancer handles requests that might pose a security risk to your application.
@@ -19134,20 +19414,15 @@ class ApplicationTargetGroupProps(BaseTargetGroupProps):
19134
19414
  # vpc: ec2.Vpc
19135
19415
 
19136
19416
 
19137
- # Target group with duration-based stickiness with load-balancer generated cookie
19138
- tg1 = elbv2.ApplicationTargetGroup(self, "TG1",
19139
- target_type=elbv2.TargetType.INSTANCE,
19140
- port=80,
19141
- stickiness_cookie_duration=Duration.minutes(5),
19142
- vpc=vpc
19143
- )
19144
-
19145
- # Target group with application-based stickiness
19146
- tg2 = elbv2.ApplicationTargetGroup(self, "TG2",
19147
- target_type=elbv2.TargetType.INSTANCE,
19148
- port=80,
19149
- stickiness_cookie_duration=Duration.minutes(5),
19150
- stickiness_cookie_name="MyDeliciousCookie",
19417
+ tg = elbv2.ApplicationTargetGroup(self, "TG",
19418
+ target_type=elbv2.TargetType.IP,
19419
+ port=50051,
19420
+ protocol=elbv2.ApplicationProtocol.HTTP,
19421
+ protocol_version=elbv2.ApplicationProtocolVersion.GRPC,
19422
+ health_check=elbv2.HealthCheck(
19423
+ enabled=True,
19424
+ healthy_grpc_codes="0-99"
19425
+ ),
19151
19426
  vpc=vpc
19152
19427
  )
19153
19428
  '''
@@ -20973,6 +21248,7 @@ class ApplicationLoadBalancer(
20973
21248
  scope: _constructs_77d1e7e8.Construct,
20974
21249
  id: builtins.str,
20975
21250
  *,
21251
+ client_keep_alive: typing.Optional[_Duration_4839e8c3] = None,
20976
21252
  desync_mitigation_mode: typing.Optional[DesyncMitigationMode] = None,
20977
21253
  drop_invalid_header_fields: typing.Optional[builtins.bool] = None,
20978
21254
  http2_enabled: typing.Optional[builtins.bool] = None,
@@ -20980,7 +21256,9 @@ class ApplicationLoadBalancer(
20980
21256
  ip_address_type: typing.Optional[IpAddressType] = None,
20981
21257
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
20982
21258
  vpc: _IVpc_f30d5663,
21259
+ cross_zone_enabled: typing.Optional[builtins.bool] = None,
20983
21260
  deletion_protection: typing.Optional[builtins.bool] = None,
21261
+ deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
20984
21262
  internet_facing: typing.Optional[builtins.bool] = None,
20985
21263
  load_balancer_name: typing.Optional[builtins.str] = None,
20986
21264
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -20988,6 +21266,7 @@ class ApplicationLoadBalancer(
20988
21266
  '''
20989
21267
  :param scope: -
20990
21268
  :param id: -
21269
+ :param client_keep_alive: The client keep alive duration. The valid range is 60 to 604800 seconds (1 minute to 7 days). Default: - Duration.seconds(3600)
20991
21270
  :param desync_mitigation_mode: Determines how the load balancer handles requests that might pose a security risk to your application. Default: DesyncMitigationMode.DEFENSIVE
20992
21271
  :param drop_invalid_header_fields: Indicates whether HTTP headers with invalid header fields are removed by the load balancer (true) or routed to targets (false). Default: false
20993
21272
  :param http2_enabled: Indicates whether HTTP/2 is enabled. Default: true
@@ -20995,7 +21274,9 @@ class ApplicationLoadBalancer(
20995
21274
  :param ip_address_type: The type of IP addresses to use. Default: IpAddressType.IPV4
20996
21275
  :param security_group: Security group to associate with this load balancer. Default: A security group is created
20997
21276
  :param vpc: The VPC network to place the load balancer in.
21277
+ :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers.
20998
21278
  :param deletion_protection: Indicates whether deletion protection is enabled. Default: false
21279
+ :param deny_all_igw_traffic: Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). Default: - false for internet-facing load balancers and true for internal load balancers
20999
21280
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
21000
21281
  :param load_balancer_name: Name of the load balancer. Default: - Automatically generated name.
21001
21282
  :param vpc_subnets: Which subnets place the load balancer in. Default: - the Vpc default strategy.
@@ -21005,6 +21286,7 @@ class ApplicationLoadBalancer(
21005
21286
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
21006
21287
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
21007
21288
  props = ApplicationLoadBalancerProps(
21289
+ client_keep_alive=client_keep_alive,
21008
21290
  desync_mitigation_mode=desync_mitigation_mode,
21009
21291
  drop_invalid_header_fields=drop_invalid_header_fields,
21010
21292
  http2_enabled=http2_enabled,
@@ -21012,7 +21294,9 @@ class ApplicationLoadBalancer(
21012
21294
  ip_address_type=ip_address_type,
21013
21295
  security_group=security_group,
21014
21296
  vpc=vpc,
21297
+ cross_zone_enabled=cross_zone_enabled,
21015
21298
  deletion_protection=deletion_protection,
21299
+ deny_all_igw_traffic=deny_all_igw_traffic,
21016
21300
  internet_facing=internet_facing,
21017
21301
  load_balancer_name=load_balancer_name,
21018
21302
  vpc_subnets=vpc_subnets,
@@ -22910,6 +23194,7 @@ __all__ = [
22910
23194
  "CfnTrustStoreProps",
22911
23195
  "CfnTrustStoreRevocation",
22912
23196
  "CfnTrustStoreRevocationProps",
23197
+ "ClientRoutingPolicy",
22913
23198
  "DesyncMitigationMode",
22914
23199
  "FixedResponseOptions",
22915
23200
  "ForwardOptions",
@@ -23159,7 +23444,9 @@ def _typecheckingstub__c636cf30c7688e65af48df2d228f5c138bd07b3c256c82b3692388fb2
23159
23444
  def _typecheckingstub__36614588a5e075aa6e7ea0a4d41053b09874f2590b227cd5d62f3429901282f2(
23160
23445
  *,
23161
23446
  vpc: _IVpc_f30d5663,
23447
+ cross_zone_enabled: typing.Optional[builtins.bool] = None,
23162
23448
  deletion_protection: typing.Optional[builtins.bool] = None,
23449
+ deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
23163
23450
  internet_facing: typing.Optional[builtins.bool] = None,
23164
23451
  load_balancer_name: typing.Optional[builtins.str] = None,
23165
23452
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -24448,11 +24735,14 @@ def _typecheckingstub__e1c7a4c1332bdc807d1e25aa5d69eea6e1f3bf6a88ddd30dac9a64c93
24448
24735
  scope: _constructs_77d1e7e8.Construct,
24449
24736
  id: builtins.str,
24450
24737
  *,
24451
- cross_zone_enabled: typing.Optional[builtins.bool] = None,
24738
+ client_routing_policy: typing.Optional[ClientRoutingPolicy] = None,
24739
+ enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
24452
24740
  ip_address_type: typing.Optional[IpAddressType] = None,
24453
24741
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
24454
24742
  vpc: _IVpc_f30d5663,
24743
+ cross_zone_enabled: typing.Optional[builtins.bool] = None,
24455
24744
  deletion_protection: typing.Optional[builtins.bool] = None,
24745
+ deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
24456
24746
  internet_facing: typing.Optional[builtins.bool] = None,
24457
24747
  load_balancer_name: typing.Optional[builtins.str] = None,
24458
24748
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -24540,11 +24830,14 @@ def _typecheckingstub__d4dc8b446f6caacf313a46c99f00148ea8982b0018d14d0f1d5004245
24540
24830
  def _typecheckingstub__195ab659ca9cd1c401d6d2d1a1f5cb0aaf7dd80f06dbc724020ac0cc391d75da(
24541
24831
  *,
24542
24832
  vpc: _IVpc_f30d5663,
24833
+ cross_zone_enabled: typing.Optional[builtins.bool] = None,
24543
24834
  deletion_protection: typing.Optional[builtins.bool] = None,
24835
+ deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
24544
24836
  internet_facing: typing.Optional[builtins.bool] = None,
24545
24837
  load_balancer_name: typing.Optional[builtins.str] = None,
24546
24838
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
24547
- cross_zone_enabled: typing.Optional[builtins.bool] = None,
24839
+ client_routing_policy: typing.Optional[ClientRoutingPolicy] = None,
24840
+ enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
24548
24841
  ip_address_type: typing.Optional[IpAddressType] = None,
24549
24842
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
24550
24843
  ) -> None:
@@ -24724,10 +25017,13 @@ def _typecheckingstub__5e4d185ab2bd554850b96481b3fbdc7ee1a86c97629f1b0fd835c6f72
24724
25017
  def _typecheckingstub__e43cf75024913d9be0d5d621a5f2c2c7be60a57898a54967cd54179b2b3d1584(
24725
25018
  *,
24726
25019
  vpc: _IVpc_f30d5663,
25020
+ cross_zone_enabled: typing.Optional[builtins.bool] = None,
24727
25021
  deletion_protection: typing.Optional[builtins.bool] = None,
25022
+ deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
24728
25023
  internet_facing: typing.Optional[builtins.bool] = None,
24729
25024
  load_balancer_name: typing.Optional[builtins.str] = None,
24730
25025
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
25026
+ client_keep_alive: typing.Optional[_Duration_4839e8c3] = None,
24731
25027
  desync_mitigation_mode: typing.Optional[DesyncMitigationMode] = None,
24732
25028
  drop_invalid_header_fields: typing.Optional[builtins.bool] = None,
24733
25029
  http2_enabled: typing.Optional[builtins.bool] = None,
@@ -25077,6 +25373,7 @@ def _typecheckingstub__22d249b6cdbe3ce0dfc1a873ef276c65fe89ce6a5dba0603fae0a5755
25077
25373
  scope: _constructs_77d1e7e8.Construct,
25078
25374
  id: builtins.str,
25079
25375
  *,
25376
+ client_keep_alive: typing.Optional[_Duration_4839e8c3] = None,
25080
25377
  desync_mitigation_mode: typing.Optional[DesyncMitigationMode] = None,
25081
25378
  drop_invalid_header_fields: typing.Optional[builtins.bool] = None,
25082
25379
  http2_enabled: typing.Optional[builtins.bool] = None,
@@ -25084,7 +25381,9 @@ def _typecheckingstub__22d249b6cdbe3ce0dfc1a873ef276c65fe89ce6a5dba0603fae0a5755
25084
25381
  ip_address_type: typing.Optional[IpAddressType] = None,
25085
25382
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
25086
25383
  vpc: _IVpc_f30d5663,
25384
+ cross_zone_enabled: typing.Optional[builtins.bool] = None,
25087
25385
  deletion_protection: typing.Optional[builtins.bool] = None,
25386
+ deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
25088
25387
  internet_facing: typing.Optional[builtins.bool] = None,
25089
25388
  load_balancer_name: typing.Optional[builtins.str] = None,
25090
25389
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,