aws-cdk-lib 2.215.0__py3-none-any.whl → 2.216.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.

@@ -3856,6 +3856,10 @@ class TagMutability(enum.Enum):
3856
3856
  '''allow image tags to be overwritten.'''
3857
3857
  IMMUTABLE = "IMMUTABLE"
3858
3858
  '''all image tags within the repository will be immutable which will prevent them from being overwritten.'''
3859
+ IMMUTABLE_WITH_EXCLUSION = "IMMUTABLE_WITH_EXCLUSION"
3860
+ '''all image tags within the repository will be immutable, while allowing you to define some filters for tags that can be changed.'''
3861
+ MUTABLE_WITH_EXCLUSION = "MUTABLE_WITH_EXCLUSION"
3862
+ '''allow image tags to be overwritten while allowing you to define some filters for tags that should remain unchanged.'''
3859
3863
 
3860
3864
 
3861
3865
  @jsii.enum(jsii_type="aws-cdk-lib.aws_ecr.TagStatus")
@@ -771,6 +771,28 @@ ipv6_network_target_group = elbv2.NetworkTargetGroup(self, "Ipv6NetworkTargetGro
771
771
  )
772
772
  ```
773
773
 
774
+ ### Target Group level health setting for Application Load Balancers and Network Load Balancers
775
+
776
+ You can set target group health setting at target group level by setting `targetGroupHealth` property.
777
+
778
+ For more information, see [How Elastic Load Balancing works](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes).
779
+
780
+ ```python
781
+ # vpc: ec2.Vpc
782
+
783
+
784
+ target_group = elbv2.ApplicationTargetGroup(self, "TargetGroup",
785
+ vpc=vpc,
786
+ port=80,
787
+ target_group_health=elbv2.TargetGroupHealth(
788
+ dns_minimum_healthy_target_count=3,
789
+ dns_minimum_healthy_target_percentage=70,
790
+ routing_minimum_healthy_target_count=2,
791
+ routing_minimum_healthy_target_percentage=50
792
+ )
793
+ )
794
+ ```
795
+
774
796
  ## Using Lambda Targets
775
797
 
776
798
  To use a Lambda Function as a target, use the integration class in the
@@ -3564,6 +3586,7 @@ class BaseNetworkListenerProps:
3564
3586
  "deregistration_delay": "deregistrationDelay",
3565
3587
  "health_check": "healthCheck",
3566
3588
  "ip_address_type": "ipAddressType",
3589
+ "target_group_health": "targetGroupHealth",
3567
3590
  "target_group_name": "targetGroupName",
3568
3591
  "target_type": "targetType",
3569
3592
  "vpc": "vpc",
@@ -3577,6 +3600,7 @@ class BaseTargetGroupProps:
3577
3600
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
3578
3601
  health_check: typing.Optional[typing.Union["HealthCheck", typing.Dict[builtins.str, typing.Any]]] = None,
3579
3602
  ip_address_type: typing.Optional["TargetGroupIpAddressType"] = None,
3603
+ target_group_health: typing.Optional[typing.Union["TargetGroupHealth", typing.Dict[builtins.str, typing.Any]]] = None,
3580
3604
  target_group_name: typing.Optional[builtins.str] = None,
3581
3605
  target_type: typing.Optional["TargetType"] = None,
3582
3606
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -3587,6 +3611,7 @@ class BaseTargetGroupProps:
3587
3611
  :param deregistration_delay: The amount of time for Elastic Load Balancing to wait before deregistering a target. The range is 0-3600 seconds. Default: 300
3588
3612
  :param health_check: Health check configuration. Default: - The default value for each property in this configuration varies depending on the target.
3589
3613
  :param ip_address_type: The type of IP addresses of the targets registered with the target group. Default: undefined - ELB defaults to IPv4
3614
+ :param target_group_health: Configuring target group health. Default: - use default configuration
3590
3615
  :param target_group_name: The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. Default: - Automatically generated.
3591
3616
  :param target_type: The type of targets registered to this TargetGroup, either IP or Instance. All targets registered into the group must be of this type. If you register targets to the TargetGroup in the CDK app, the TargetType is determined automatically. Default: - Determined automatically.
3592
3617
  :param vpc: The virtual private cloud (VPC). only if ``TargetType`` is ``Ip`` or ``InstanceId`` Default: - undefined
@@ -3619,6 +3644,12 @@ class BaseTargetGroupProps:
3619
3644
  unhealthy_threshold_count=123
3620
3645
  ),
3621
3646
  ip_address_type=elbv2.TargetGroupIpAddressType.IPV4,
3647
+ target_group_health=elbv2.TargetGroupHealth(
3648
+ dns_minimum_healthy_target_count=123,
3649
+ dns_minimum_healthy_target_percentage=123,
3650
+ routing_minimum_healthy_target_count=123,
3651
+ routing_minimum_healthy_target_percentage=123
3652
+ ),
3622
3653
  target_group_name="targetGroupName",
3623
3654
  target_type=elbv2.TargetType.INSTANCE,
3624
3655
  vpc=vpc
@@ -3626,12 +3657,15 @@ class BaseTargetGroupProps:
3626
3657
  '''
3627
3658
  if isinstance(health_check, dict):
3628
3659
  health_check = HealthCheck(**health_check)
3660
+ if isinstance(target_group_health, dict):
3661
+ target_group_health = TargetGroupHealth(**target_group_health)
3629
3662
  if __debug__:
3630
3663
  type_hints = typing.get_type_hints(_typecheckingstub__b5e7f5d87f70cb030d7ac44f4637a5d73814a6c8b1c1bff9adf19ede879e36bb)
3631
3664
  check_type(argname="argument cross_zone_enabled", value=cross_zone_enabled, expected_type=type_hints["cross_zone_enabled"])
3632
3665
  check_type(argname="argument deregistration_delay", value=deregistration_delay, expected_type=type_hints["deregistration_delay"])
3633
3666
  check_type(argname="argument health_check", value=health_check, expected_type=type_hints["health_check"])
3634
3667
  check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
3668
+ check_type(argname="argument target_group_health", value=target_group_health, expected_type=type_hints["target_group_health"])
3635
3669
  check_type(argname="argument target_group_name", value=target_group_name, expected_type=type_hints["target_group_name"])
3636
3670
  check_type(argname="argument target_type", value=target_type, expected_type=type_hints["target_type"])
3637
3671
  check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
@@ -3644,6 +3678,8 @@ class BaseTargetGroupProps:
3644
3678
  self._values["health_check"] = health_check
3645
3679
  if ip_address_type is not None:
3646
3680
  self._values["ip_address_type"] = ip_address_type
3681
+ if target_group_health is not None:
3682
+ self._values["target_group_health"] = target_group_health
3647
3683
  if target_group_name is not None:
3648
3684
  self._values["target_group_name"] = target_group_name
3649
3685
  if target_type is not None:
@@ -3693,6 +3729,17 @@ class BaseTargetGroupProps:
3693
3729
  result = self._values.get("ip_address_type")
3694
3730
  return typing.cast(typing.Optional["TargetGroupIpAddressType"], result)
3695
3731
 
3732
+ @builtins.property
3733
+ def target_group_health(self) -> typing.Optional["TargetGroupHealth"]:
3734
+ '''Configuring target group health.
3735
+
3736
+ :default: - use default configuration
3737
+
3738
+ :see: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes
3739
+ '''
3740
+ result = self._values.get("target_group_health")
3741
+ return typing.cast(typing.Optional["TargetGroupHealth"], result)
3742
+
3696
3743
  @builtins.property
3697
3744
  def target_group_name(self) -> typing.Optional[builtins.str]:
3698
3745
  '''The name of the target group.
@@ -13435,6 +13482,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
13435
13482
  "deregistration_delay": "deregistrationDelay",
13436
13483
  "health_check": "healthCheck",
13437
13484
  "ip_address_type": "ipAddressType",
13485
+ "target_group_health": "targetGroupHealth",
13438
13486
  "target_group_name": "targetGroupName",
13439
13487
  "target_type": "targetType",
13440
13488
  "vpc": "vpc",
@@ -13454,6 +13502,7 @@ class NetworkTargetGroupProps(BaseTargetGroupProps):
13454
13502
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
13455
13503
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
13456
13504
  ip_address_type: typing.Optional["TargetGroupIpAddressType"] = None,
13505
+ target_group_health: typing.Optional[typing.Union["TargetGroupHealth", typing.Dict[builtins.str, typing.Any]]] = None,
13457
13506
  target_group_name: typing.Optional[builtins.str] = None,
13458
13507
  target_type: typing.Optional["TargetType"] = None,
13459
13508
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -13470,6 +13519,7 @@ class NetworkTargetGroupProps(BaseTargetGroupProps):
13470
13519
  :param deregistration_delay: The amount of time for Elastic Load Balancing to wait before deregistering a target. The range is 0-3600 seconds. Default: 300
13471
13520
  :param health_check: Health check configuration. Default: - The default value for each property in this configuration varies depending on the target.
13472
13521
  :param ip_address_type: The type of IP addresses of the targets registered with the target group. Default: undefined - ELB defaults to IPv4
13522
+ :param target_group_health: Configuring target group health. Default: - use default configuration
13473
13523
  :param target_group_name: The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. Default: - Automatically generated.
13474
13524
  :param target_type: The type of targets registered to this TargetGroup, either IP or Instance. All targets registered into the group must be of this type. If you register targets to the TargetGroup in the CDK app, the TargetType is determined automatically. Default: - Determined automatically.
13475
13525
  :param vpc: The virtual private cloud (VPC). only if ``TargetType`` is ``Ip`` or ``InstanceId`` Default: - undefined
@@ -13517,12 +13567,15 @@ class NetworkTargetGroupProps(BaseTargetGroupProps):
13517
13567
  '''
13518
13568
  if isinstance(health_check, dict):
13519
13569
  health_check = HealthCheck(**health_check)
13570
+ if isinstance(target_group_health, dict):
13571
+ target_group_health = TargetGroupHealth(**target_group_health)
13520
13572
  if __debug__:
13521
13573
  type_hints = typing.get_type_hints(_typecheckingstub__5f1086cffe813b24d7b8ff7c124bffc37ca7e22afda9f6af7ad869d92f7c65b2)
13522
13574
  check_type(argname="argument cross_zone_enabled", value=cross_zone_enabled, expected_type=type_hints["cross_zone_enabled"])
13523
13575
  check_type(argname="argument deregistration_delay", value=deregistration_delay, expected_type=type_hints["deregistration_delay"])
13524
13576
  check_type(argname="argument health_check", value=health_check, expected_type=type_hints["health_check"])
13525
13577
  check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
13578
+ check_type(argname="argument target_group_health", value=target_group_health, expected_type=type_hints["target_group_health"])
13526
13579
  check_type(argname="argument target_group_name", value=target_group_name, expected_type=type_hints["target_group_name"])
13527
13580
  check_type(argname="argument target_type", value=target_type, expected_type=type_hints["target_type"])
13528
13581
  check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
@@ -13543,6 +13596,8 @@ class NetworkTargetGroupProps(BaseTargetGroupProps):
13543
13596
  self._values["health_check"] = health_check
13544
13597
  if ip_address_type is not None:
13545
13598
  self._values["ip_address_type"] = ip_address_type
13599
+ if target_group_health is not None:
13600
+ self._values["target_group_health"] = target_group_health
13546
13601
  if target_group_name is not None:
13547
13602
  self._values["target_group_name"] = target_group_name
13548
13603
  if target_type is not None:
@@ -13602,6 +13657,17 @@ class NetworkTargetGroupProps(BaseTargetGroupProps):
13602
13657
  result = self._values.get("ip_address_type")
13603
13658
  return typing.cast(typing.Optional["TargetGroupIpAddressType"], result)
13604
13659
 
13660
+ @builtins.property
13661
+ def target_group_health(self) -> typing.Optional["TargetGroupHealth"]:
13662
+ '''Configuring target group health.
13663
+
13664
+ :default: - use default configuration
13665
+
13666
+ :see: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes
13667
+ '''
13668
+ result = self._values.get("target_group_health")
13669
+ return typing.cast(typing.Optional["TargetGroupHealth"], result)
13670
+
13605
13671
  @builtins.property
13606
13672
  def target_group_name(self) -> typing.Optional[builtins.str]:
13607
13673
  '''The name of the target group.
@@ -14845,6 +14911,126 @@ class _TargetGroupBaseProxy(TargetGroupBase):
14845
14911
  typing.cast(typing.Any, TargetGroupBase).__jsii_proxy_class__ = lambda : _TargetGroupBaseProxy
14846
14912
 
14847
14913
 
14914
+ @jsii.data_type(
14915
+ jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.TargetGroupHealth",
14916
+ jsii_struct_bases=[],
14917
+ name_mapping={
14918
+ "dns_minimum_healthy_target_count": "dnsMinimumHealthyTargetCount",
14919
+ "dns_minimum_healthy_target_percentage": "dnsMinimumHealthyTargetPercentage",
14920
+ "routing_minimum_healthy_target_count": "routingMinimumHealthyTargetCount",
14921
+ "routing_minimum_healthy_target_percentage": "routingMinimumHealthyTargetPercentage",
14922
+ },
14923
+ )
14924
+ class TargetGroupHealth:
14925
+ def __init__(
14926
+ self,
14927
+ *,
14928
+ dns_minimum_healthy_target_count: typing.Optional[jsii.Number] = None,
14929
+ dns_minimum_healthy_target_percentage: typing.Optional[jsii.Number] = None,
14930
+ routing_minimum_healthy_target_count: typing.Optional[jsii.Number] = None,
14931
+ routing_minimum_healthy_target_percentage: typing.Optional[jsii.Number] = None,
14932
+ ) -> None:
14933
+ '''Properties for configuring a target group health.
14934
+
14935
+ :param dns_minimum_healthy_target_count: The minimum number of targets that must be healthy for DNS failover. If below this value, mark the zone as unhealthy in DNS. Use 0 for "off". Default: 1
14936
+ :param dns_minimum_healthy_target_percentage: The minimum percentage of targets that must be healthy for DNS failover. If below this value, mark the zone as unhealthy in DNS. Use 0 for "off". Default: 0
14937
+ :param routing_minimum_healthy_target_count: The minimum number of targets that must be healthy for unhealthy state routing. If below this value, send traffic to all targets including unhealthy ones. Default: 1
14938
+ :param routing_minimum_healthy_target_percentage: The minimum percentage of targets that must be healthy for unhealthy state routing. If below this value, send traffic to all targets including unhealthy ones. Use 0 for "off". Default: 0
14939
+
14940
+ :see: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes
14941
+ :exampleMetadata: infused
14942
+
14943
+ Example::
14944
+
14945
+ # vpc: ec2.Vpc
14946
+
14947
+
14948
+ target_group = elbv2.ApplicationTargetGroup(self, "TargetGroup",
14949
+ vpc=vpc,
14950
+ port=80,
14951
+ target_group_health=elbv2.TargetGroupHealth(
14952
+ dns_minimum_healthy_target_count=3,
14953
+ dns_minimum_healthy_target_percentage=70,
14954
+ routing_minimum_healthy_target_count=2,
14955
+ routing_minimum_healthy_target_percentage=50
14956
+ )
14957
+ )
14958
+ '''
14959
+ if __debug__:
14960
+ type_hints = typing.get_type_hints(_typecheckingstub__50b92a6e3fb50861786c29f006a421debbe4bf2e446caaef18d21a99c0e35f73)
14961
+ check_type(argname="argument dns_minimum_healthy_target_count", value=dns_minimum_healthy_target_count, expected_type=type_hints["dns_minimum_healthy_target_count"])
14962
+ check_type(argname="argument dns_minimum_healthy_target_percentage", value=dns_minimum_healthy_target_percentage, expected_type=type_hints["dns_minimum_healthy_target_percentage"])
14963
+ check_type(argname="argument routing_minimum_healthy_target_count", value=routing_minimum_healthy_target_count, expected_type=type_hints["routing_minimum_healthy_target_count"])
14964
+ check_type(argname="argument routing_minimum_healthy_target_percentage", value=routing_minimum_healthy_target_percentage, expected_type=type_hints["routing_minimum_healthy_target_percentage"])
14965
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
14966
+ if dns_minimum_healthy_target_count is not None:
14967
+ self._values["dns_minimum_healthy_target_count"] = dns_minimum_healthy_target_count
14968
+ if dns_minimum_healthy_target_percentage is not None:
14969
+ self._values["dns_minimum_healthy_target_percentage"] = dns_minimum_healthy_target_percentage
14970
+ if routing_minimum_healthy_target_count is not None:
14971
+ self._values["routing_minimum_healthy_target_count"] = routing_minimum_healthy_target_count
14972
+ if routing_minimum_healthy_target_percentage is not None:
14973
+ self._values["routing_minimum_healthy_target_percentage"] = routing_minimum_healthy_target_percentage
14974
+
14975
+ @builtins.property
14976
+ def dns_minimum_healthy_target_count(self) -> typing.Optional[jsii.Number]:
14977
+ '''The minimum number of targets that must be healthy for DNS failover.
14978
+
14979
+ If below this value, mark the zone as unhealthy in DNS.
14980
+ Use 0 for "off".
14981
+
14982
+ :default: 1
14983
+ '''
14984
+ result = self._values.get("dns_minimum_healthy_target_count")
14985
+ return typing.cast(typing.Optional[jsii.Number], result)
14986
+
14987
+ @builtins.property
14988
+ def dns_minimum_healthy_target_percentage(self) -> typing.Optional[jsii.Number]:
14989
+ '''The minimum percentage of targets that must be healthy for DNS failover.
14990
+
14991
+ If below this value, mark the zone as unhealthy in DNS.
14992
+ Use 0 for "off".
14993
+
14994
+ :default: 0
14995
+ '''
14996
+ result = self._values.get("dns_minimum_healthy_target_percentage")
14997
+ return typing.cast(typing.Optional[jsii.Number], result)
14998
+
14999
+ @builtins.property
15000
+ def routing_minimum_healthy_target_count(self) -> typing.Optional[jsii.Number]:
15001
+ '''The minimum number of targets that must be healthy for unhealthy state routing.
15002
+
15003
+ If below this value, send traffic to all targets including unhealthy ones.
15004
+
15005
+ :default: 1
15006
+ '''
15007
+ result = self._values.get("routing_minimum_healthy_target_count")
15008
+ return typing.cast(typing.Optional[jsii.Number], result)
15009
+
15010
+ @builtins.property
15011
+ def routing_minimum_healthy_target_percentage(self) -> typing.Optional[jsii.Number]:
15012
+ '''The minimum percentage of targets that must be healthy for unhealthy state routing.
15013
+
15014
+ If below this value, send traffic to all targets including unhealthy ones.
15015
+ Use 0 for "off".
15016
+
15017
+ :default: 0
15018
+ '''
15019
+ result = self._values.get("routing_minimum_healthy_target_percentage")
15020
+ return typing.cast(typing.Optional[jsii.Number], result)
15021
+
15022
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
15023
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
15024
+
15025
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
15026
+ return not (rhs == self)
15027
+
15028
+ def __repr__(self) -> str:
15029
+ return "TargetGroupHealth(%s)" % ", ".join(
15030
+ k + "=" + repr(v) for k, v in self._values.items()
15031
+ )
15032
+
15033
+
14848
15034
  @jsii.enum(jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.TargetGroupIpAddressType")
14849
15035
  class TargetGroupIpAddressType(enum.Enum):
14850
15036
  '''The IP address type of targets registered with a target group.
@@ -17118,6 +17304,7 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
17118
17304
  "deregistration_delay": "deregistrationDelay",
17119
17305
  "health_check": "healthCheck",
17120
17306
  "ip_address_type": "ipAddressType",
17307
+ "target_group_health": "targetGroupHealth",
17121
17308
  "target_group_name": "targetGroupName",
17122
17309
  "target_type": "targetType",
17123
17310
  "vpc": "vpc",
@@ -17141,6 +17328,7 @@ class ApplicationTargetGroupProps(BaseTargetGroupProps):
17141
17328
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
17142
17329
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
17143
17330
  ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
17331
+ target_group_health: typing.Optional[typing.Union[TargetGroupHealth, typing.Dict[builtins.str, typing.Any]]] = None,
17144
17332
  target_group_name: typing.Optional[builtins.str] = None,
17145
17333
  target_type: typing.Optional[TargetType] = None,
17146
17334
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -17161,6 +17349,7 @@ class ApplicationTargetGroupProps(BaseTargetGroupProps):
17161
17349
  :param deregistration_delay: The amount of time for Elastic Load Balancing to wait before deregistering a target. The range is 0-3600 seconds. Default: 300
17162
17350
  :param health_check: Health check configuration. Default: - The default value for each property in this configuration varies depending on the target.
17163
17351
  :param ip_address_type: The type of IP addresses of the targets registered with the target group. Default: undefined - ELB defaults to IPv4
17352
+ :param target_group_health: Configuring target group health. Default: - use default configuration
17164
17353
  :param target_group_name: The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. Default: - Automatically generated.
17165
17354
  :param target_type: The type of targets registered to this TargetGroup, either IP or Instance. All targets registered into the group must be of this type. If you register targets to the TargetGroup in the CDK app, the TargetType is determined automatically. Default: - Determined automatically.
17166
17355
  :param vpc: The virtual private cloud (VPC). only if ``TargetType`` is ``Ip`` or ``InstanceId`` Default: - undefined
@@ -17196,12 +17385,15 @@ class ApplicationTargetGroupProps(BaseTargetGroupProps):
17196
17385
  '''
17197
17386
  if isinstance(health_check, dict):
17198
17387
  health_check = HealthCheck(**health_check)
17388
+ if isinstance(target_group_health, dict):
17389
+ target_group_health = TargetGroupHealth(**target_group_health)
17199
17390
  if __debug__:
17200
17391
  type_hints = typing.get_type_hints(_typecheckingstub__0fbf37aa0a91cb985ce7a336a6188364cc38400538c1653e53453287c780e881)
17201
17392
  check_type(argname="argument cross_zone_enabled", value=cross_zone_enabled, expected_type=type_hints["cross_zone_enabled"])
17202
17393
  check_type(argname="argument deregistration_delay", value=deregistration_delay, expected_type=type_hints["deregistration_delay"])
17203
17394
  check_type(argname="argument health_check", value=health_check, expected_type=type_hints["health_check"])
17204
17395
  check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
17396
+ check_type(argname="argument target_group_health", value=target_group_health, expected_type=type_hints["target_group_health"])
17205
17397
  check_type(argname="argument target_group_name", value=target_group_name, expected_type=type_hints["target_group_name"])
17206
17398
  check_type(argname="argument target_type", value=target_type, expected_type=type_hints["target_type"])
17207
17399
  check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
@@ -17224,6 +17416,8 @@ class ApplicationTargetGroupProps(BaseTargetGroupProps):
17224
17416
  self._values["health_check"] = health_check
17225
17417
  if ip_address_type is not None:
17226
17418
  self._values["ip_address_type"] = ip_address_type
17419
+ if target_group_health is not None:
17420
+ self._values["target_group_health"] = target_group_health
17227
17421
  if target_group_name is not None:
17228
17422
  self._values["target_group_name"] = target_group_name
17229
17423
  if target_type is not None:
@@ -17293,6 +17487,17 @@ class ApplicationTargetGroupProps(BaseTargetGroupProps):
17293
17487
  result = self._values.get("ip_address_type")
17294
17488
  return typing.cast(typing.Optional[TargetGroupIpAddressType], result)
17295
17489
 
17490
+ @builtins.property
17491
+ def target_group_health(self) -> typing.Optional[TargetGroupHealth]:
17492
+ '''Configuring target group health.
17493
+
17494
+ :default: - use default configuration
17495
+
17496
+ :see: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes
17497
+ '''
17498
+ result = self._values.get("target_group_health")
17499
+ return typing.cast(typing.Optional[TargetGroupHealth], result)
17500
+
17296
17501
  @builtins.property
17297
17502
  def target_group_name(self) -> typing.Optional[builtins.str]:
17298
17503
  '''The name of the target group.
@@ -24765,6 +24970,7 @@ class NetworkTargetGroup(
24765
24970
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
24766
24971
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
24767
24972
  ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
24973
+ target_group_health: typing.Optional[typing.Union[TargetGroupHealth, typing.Dict[builtins.str, typing.Any]]] = None,
24768
24974
  target_group_name: typing.Optional[builtins.str] = None,
24769
24975
  target_type: typing.Optional[TargetType] = None,
24770
24976
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -24782,6 +24988,7 @@ class NetworkTargetGroup(
24782
24988
  :param deregistration_delay: The amount of time for Elastic Load Balancing to wait before deregistering a target. The range is 0-3600 seconds. Default: 300
24783
24989
  :param health_check: Health check configuration. Default: - The default value for each property in this configuration varies depending on the target.
24784
24990
  :param ip_address_type: The type of IP addresses of the targets registered with the target group. Default: undefined - ELB defaults to IPv4
24991
+ :param target_group_health: Configuring target group health. Default: - use default configuration
24785
24992
  :param target_group_name: The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. Default: - Automatically generated.
24786
24993
  :param target_type: The type of targets registered to this TargetGroup, either IP or Instance. All targets registered into the group must be of this type. If you register targets to the TargetGroup in the CDK app, the TargetType is determined automatically. Default: - Determined automatically.
24787
24994
  :param vpc: The virtual private cloud (VPC). only if ``TargetType`` is ``Ip`` or ``InstanceId`` Default: - undefined
@@ -24801,6 +25008,7 @@ class NetworkTargetGroup(
24801
25008
  deregistration_delay=deregistration_delay,
24802
25009
  health_check=health_check,
24803
25010
  ip_address_type=ip_address_type,
25011
+ target_group_health=target_group_health,
24804
25012
  target_group_name=target_group_name,
24805
25013
  target_type=target_type,
24806
25014
  vpc=vpc,
@@ -27042,6 +27250,7 @@ class ApplicationTargetGroup(
27042
27250
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
27043
27251
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
27044
27252
  ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
27253
+ target_group_health: typing.Optional[typing.Union[TargetGroupHealth, typing.Dict[builtins.str, typing.Any]]] = None,
27045
27254
  target_group_name: typing.Optional[builtins.str] = None,
27046
27255
  target_type: typing.Optional[TargetType] = None,
27047
27256
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -27063,6 +27272,7 @@ class ApplicationTargetGroup(
27063
27272
  :param deregistration_delay: The amount of time for Elastic Load Balancing to wait before deregistering a target. The range is 0-3600 seconds. Default: 300
27064
27273
  :param health_check: Health check configuration. Default: - The default value for each property in this configuration varies depending on the target.
27065
27274
  :param ip_address_type: The type of IP addresses of the targets registered with the target group. Default: undefined - ELB defaults to IPv4
27275
+ :param target_group_health: Configuring target group health. Default: - use default configuration
27066
27276
  :param target_group_name: The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. Default: - Automatically generated.
27067
27277
  :param target_type: The type of targets registered to this TargetGroup, either IP or Instance. All targets registered into the group must be of this type. If you register targets to the TargetGroup in the CDK app, the TargetType is determined automatically. Default: - Determined automatically.
27068
27278
  :param vpc: The virtual private cloud (VPC). only if ``TargetType`` is ``Ip`` or ``InstanceId`` Default: - undefined
@@ -27086,6 +27296,7 @@ class ApplicationTargetGroup(
27086
27296
  deregistration_delay=deregistration_delay,
27087
27297
  health_check=health_check,
27088
27298
  ip_address_type=ip_address_type,
27299
+ target_group_health=target_group_health,
27089
27300
  target_group_name=target_group_name,
27090
27301
  target_type=target_type,
27091
27302
  vpc=vpc,
@@ -27897,6 +28108,7 @@ __all__ = [
27897
28108
  "SubnetMapping",
27898
28109
  "TargetGroupAttributes",
27899
28110
  "TargetGroupBase",
28111
+ "TargetGroupHealth",
27900
28112
  "TargetGroupIpAddressType",
27901
28113
  "TargetGroupLoadBalancingAlgorithmType",
27902
28114
  "TargetGroupReference",
@@ -28141,6 +28353,7 @@ def _typecheckingstub__b5e7f5d87f70cb030d7ac44f4637a5d73814a6c8b1c1bff9adf19ede8
28141
28353
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
28142
28354
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
28143
28355
  ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
28356
+ target_group_health: typing.Optional[typing.Union[TargetGroupHealth, typing.Dict[builtins.str, typing.Any]]] = None,
28144
28357
  target_group_name: typing.Optional[builtins.str] = None,
28145
28358
  target_type: typing.Optional[TargetType] = None,
28146
28359
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -28782,6 +28995,7 @@ def _typecheckingstub__5f1086cffe813b24d7b8ff7c124bffc37ca7e22afda9f6af7ad869d92
28782
28995
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
28783
28996
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
28784
28997
  ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
28998
+ target_group_health: typing.Optional[typing.Union[TargetGroupHealth, typing.Dict[builtins.str, typing.Any]]] = None,
28785
28999
  target_group_name: typing.Optional[builtins.str] = None,
28786
29000
  target_type: typing.Optional[TargetType] = None,
28787
29001
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -28892,6 +29106,16 @@ def _typecheckingstub__7c19dd8de36c1c86ebd89e7c24379bf1b20a6e5f343db95042864bf02
28892
29106
  """Type checking stubs"""
28893
29107
  pass
28894
29108
 
29109
+ def _typecheckingstub__50b92a6e3fb50861786c29f006a421debbe4bf2e446caaef18d21a99c0e35f73(
29110
+ *,
29111
+ dns_minimum_healthy_target_count: typing.Optional[jsii.Number] = None,
29112
+ dns_minimum_healthy_target_percentage: typing.Optional[jsii.Number] = None,
29113
+ routing_minimum_healthy_target_count: typing.Optional[jsii.Number] = None,
29114
+ routing_minimum_healthy_target_percentage: typing.Optional[jsii.Number] = None,
29115
+ ) -> None:
29116
+ """Type checking stubs"""
29117
+ pass
29118
+
28895
29119
  def _typecheckingstub__7b22d0445cb034b55d9115fd027b3d892bce86e7f1261aa808a4125edf21d635(
28896
29120
  *,
28897
29121
  target_group_arn: builtins.str,
@@ -29086,6 +29310,7 @@ def _typecheckingstub__0fbf37aa0a91cb985ce7a336a6188364cc38400538c1653e53453287c
29086
29310
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
29087
29311
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
29088
29312
  ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
29313
+ target_group_health: typing.Optional[typing.Union[TargetGroupHealth, typing.Dict[builtins.str, typing.Any]]] = None,
29089
29314
  target_group_name: typing.Optional[builtins.str] = None,
29090
29315
  target_type: typing.Optional[TargetType] = None,
29091
29316
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -30183,6 +30408,7 @@ def _typecheckingstub__eebfbf2a20edd0baf4d455f02dd34d748c5eccfa9a5268e5e2ebec245
30183
30408
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
30184
30409
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
30185
30410
  ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
30411
+ target_group_health: typing.Optional[typing.Union[TargetGroupHealth, typing.Dict[builtins.str, typing.Any]]] = None,
30186
30412
  target_group_name: typing.Optional[builtins.str] = None,
30187
30413
  target_type: typing.Optional[TargetType] = None,
30188
30414
  vpc: typing.Optional[_IVpc_f30d5663] = None,
@@ -30471,6 +30697,7 @@ def _typecheckingstub__e179515c9d6138007cc1b74835b75f10a179c1f5ef977cbe4188c778c
30471
30697
  deregistration_delay: typing.Optional[_Duration_4839e8c3] = None,
30472
30698
  health_check: typing.Optional[typing.Union[HealthCheck, typing.Dict[builtins.str, typing.Any]]] = None,
30473
30699
  ip_address_type: typing.Optional[TargetGroupIpAddressType] = None,
30700
+ target_group_health: typing.Optional[typing.Union[TargetGroupHealth, typing.Dict[builtins.str, typing.Any]]] = None,
30474
30701
  target_group_name: typing.Optional[builtins.str] = None,
30475
30702
  target_type: typing.Optional[TargetType] = None,
30476
30703
  vpc: typing.Optional[_IVpc_f30d5663] = None,