aws-cdk-lib 2.189.1__py3-none-any.whl → 2.191.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 (57) hide show
  1. aws_cdk/_jsii/__init__.py +1 -1
  2. aws_cdk/_jsii/{aws-cdk-lib@2.189.1.jsii.tgz → aws-cdk-lib@2.191.0.jsii.tgz} +0 -0
  3. aws_cdk/aws_acmpca/__init__.py +6 -6
  4. aws_cdk/aws_apigateway/__init__.py +18 -1
  5. aws_cdk/aws_apigatewayv2/__init__.py +374 -6
  6. aws_cdk/aws_applicationautoscaling/__init__.py +16 -10
  7. aws_cdk/aws_applicationsignals/__init__.py +204 -31
  8. aws_cdk/aws_aps/__init__.py +383 -2
  9. aws_cdk/aws_backup/__init__.py +0 -41
  10. aws_cdk/aws_batch/__init__.py +242 -5
  11. aws_cdk/aws_bedrock/__init__.py +963 -41
  12. aws_cdk/aws_cleanrooms/__init__.py +1392 -78
  13. aws_cdk/aws_cloudfront/__init__.py +1 -0
  14. aws_cdk/aws_cloudtrail/__init__.py +24 -26
  15. aws_cdk/aws_codebuild/__init__.py +107 -7
  16. aws_cdk/aws_datazone/__init__.py +23 -1
  17. aws_cdk/aws_dms/__init__.py +43 -0
  18. aws_cdk/aws_ec2/__init__.py +364 -30
  19. aws_cdk/aws_ecs/__init__.py +36 -5
  20. aws_cdk/aws_eks/__init__.py +2 -100
  21. aws_cdk/aws_elasticache/__init__.py +6 -11
  22. aws_cdk/aws_elasticloadbalancingv2/__init__.py +341 -0
  23. aws_cdk/aws_events/__init__.py +106 -13
  24. aws_cdk/aws_fsx/__init__.py +9 -21
  25. aws_cdk/aws_iam/__init__.py +1 -1
  26. aws_cdk/aws_iot/__init__.py +6 -6
  27. aws_cdk/aws_kafkaconnect/__init__.py +2 -2
  28. aws_cdk/aws_kinesis/__init__.py +44 -0
  29. aws_cdk/aws_launchwizard/__init__.py +49 -49
  30. aws_cdk/aws_lex/__init__.py +615 -39
  31. aws_cdk/aws_location/__init__.py +4 -4
  32. aws_cdk/aws_macie/__init__.py +14 -3
  33. aws_cdk/aws_memorydb/__init__.py +87 -0
  34. aws_cdk/aws_msk/__init__.py +226 -127
  35. aws_cdk/aws_neptune/__init__.py +0 -24
  36. aws_cdk/aws_opensearchservice/__init__.py +64 -56
  37. aws_cdk/aws_paymentcryptography/__init__.py +41 -0
  38. aws_cdk/aws_qbusiness/__init__.py +175 -3
  39. aws_cdk/aws_quicksight/__init__.py +393 -0
  40. aws_cdk/aws_rds/__init__.py +149 -120
  41. aws_cdk/aws_redshiftserverless/__init__.py +4 -14
  42. aws_cdk/aws_route53resolver/__init__.py +60 -9
  43. aws_cdk/aws_s3/__init__.py +34 -1
  44. aws_cdk/aws_s3_deployment/__init__.py +202 -5
  45. aws_cdk/aws_s3tables/__init__.py +142 -1
  46. aws_cdk/aws_sagemaker/__init__.py +40 -40
  47. aws_cdk/aws_ses/__init__.py +643 -18
  48. aws_cdk/aws_ssmquicksetup/__init__.py +3 -3
  49. aws_cdk/aws_stepfunctions/__init__.py +720 -45
  50. aws_cdk/aws_transfer/__init__.py +55 -2
  51. aws_cdk/pipelines/__init__.py +1 -2
  52. {aws_cdk_lib-2.189.1.dist-info → aws_cdk_lib-2.191.0.dist-info}/METADATA +1 -1
  53. {aws_cdk_lib-2.189.1.dist-info → aws_cdk_lib-2.191.0.dist-info}/RECORD +57 -57
  54. {aws_cdk_lib-2.189.1.dist-info → aws_cdk_lib-2.191.0.dist-info}/LICENSE +0 -0
  55. {aws_cdk_lib-2.189.1.dist-info → aws_cdk_lib-2.191.0.dist-info}/NOTICE +0 -0
  56. {aws_cdk_lib-2.189.1.dist-info → aws_cdk_lib-2.191.0.dist-info}/WHEEL +0 -0
  57. {aws_cdk_lib-2.189.1.dist-info → aws_cdk_lib-2.191.0.dist-info}/top_level.txt +0 -0
@@ -433,6 +433,77 @@ listener = lb.add_listener("Listener",
433
433
  )
434
434
  ```
435
435
 
436
+ ### Configuring a subnet information for a Network Load Balancer
437
+
438
+ You can specify the subnets for a Network Load Balancer easily by setting the `vpcSubnets` property.
439
+
440
+ ```python
441
+ # vpc: ec2.Vpc
442
+
443
+
444
+ lb = elbv2.NetworkLoadBalancer(self, "LB",
445
+ vpc=vpc,
446
+ vpc_subnets=ec2.SubnetSelection(
447
+ subnet_type=ec2.SubnetType.PRIVATE
448
+ )
449
+ )
450
+ ```
451
+
452
+ If you want to configure detailed information about the subnets, you can use the `subnetMappings` property as follows:
453
+
454
+ ```python
455
+ # vpc: ec2.IVpc
456
+ # dualstack_vpc: ec2.IVpc
457
+ # subnet: ec2.ISubnet
458
+ # dualstack_subnet: ec2.ISubnet
459
+ # cfn_eip: ec2.CfnEIP
460
+
461
+
462
+ # Internet facing Network Load Balancer with an Elastic IPv4 address
463
+ elbv2.NetworkLoadBalancer(self, "InternetFacingLb",
464
+ vpc=vpc,
465
+ internet_facing=True,
466
+ subnet_mappings=[elbv2.SubnetMapping(
467
+ subnet=subnet,
468
+ # The allocation ID of the Elastic IP address
469
+ allocation_id=cfn_eip.attr_allocation_id
470
+ )
471
+ ]
472
+ )
473
+
474
+ # Internal Network Load Balancer with a private IPv4 address
475
+ elbv2.NetworkLoadBalancer(self, "InternalLb",
476
+ vpc=vpc,
477
+ internet_facing=False,
478
+ subnet_mappings=[elbv2.SubnetMapping(
479
+ subnet=subnet,
480
+ # The private IPv4 address from the subnet
481
+ # The address must be in the subnet's CIDR range and
482
+ # can not be configured for a internet facing Network Load Balancer.
483
+ private_ipv4_address="10.0.12.29"
484
+ )
485
+ ]
486
+ )
487
+
488
+ # Dualstack Network Load Balancer with an IPv6 address and prefix for source NAT
489
+ elbv2.NetworkLoadBalancer(self, "DualstackLb",
490
+ vpc=dualstack_vpc,
491
+ # Configure the dualstack Network Load Balancer
492
+ ip_address_type=elbv2.IpAddressType.DUAL_STACK,
493
+ enable_prefix_for_ipv6_source_nat=True,
494
+ subnet_mappings=[elbv2.SubnetMapping(
495
+ subnet=dualstack_subnet,
496
+ # The IPv6 address from the subnet
497
+ # `ipAddresstype` must be `DUAL_STACK` or `DUAL_STACK_WITHOUT_PUBLIC_IPV4` to set the IPv6 address.
498
+ ipv6_address="2001:db8:1234:1a00::10",
499
+ # The IPv6 prefix to use for source NAT
500
+ # `enablePrefixForIpv6SourceNat` must be `true` to set `sourceNatIpv6Prefix`.
501
+ source_nat_ipv6_prefix=elbv2.SourceNatIpv6Prefix.auto_assigned()
502
+ )
503
+ ]
504
+ )
505
+ ```
506
+
436
507
  ### Network Load Balancer attributes
437
508
 
438
509
  You can modify attributes of Network Load Balancers:
@@ -1140,6 +1211,7 @@ from ..aws_ec2 import (
1140
1211
  Connections as _Connections_0f31fce8,
1141
1212
  IConnectable as _IConnectable_10015a05,
1142
1213
  ISecurityGroup as _ISecurityGroup_acf8a799,
1214
+ ISubnet as _ISubnet_d57d1229,
1143
1215
  IVpc as _IVpc_f30d5663,
1144
1216
  IVpcEndpointServiceLoadBalancer as _IVpcEndpointServiceLoadBalancer_34cbc6e3,
1145
1217
  Port as _Port_85922693,
@@ -17373,6 +17445,7 @@ class NetworkLoadBalancer(
17373
17445
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
17374
17446
  ip_address_type: typing.Optional[IpAddressType] = None,
17375
17447
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
17448
+ subnet_mappings: typing.Optional[typing.Sequence[typing.Union["SubnetMapping", typing.Dict[builtins.str, typing.Any]]]] = None,
17376
17449
  zonal_shift: typing.Optional[builtins.bool] = None,
17377
17450
  vpc: _IVpc_f30d5663,
17378
17451
  cross_zone_enabled: typing.Optional[builtins.bool] = None,
@@ -17391,6 +17464,7 @@ class NetworkLoadBalancer(
17391
17464
  :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
17392
17465
  :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
17393
17466
  :param security_groups: Security groups to associate with this load balancer. Default: - No security groups associated with the load balancer.
17467
+ :param subnet_mappings: Subnet information for the load balancer. Default: undefined - The VPC default strategy for subnets is used
17394
17468
  :param zonal_shift: Indicates whether zonal shift is enabled. Default: false
17395
17469
  :param vpc: The VPC network to place the load balancer in.
17396
17470
  :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers. This can not be ``false`` for Application Load Balancers.
@@ -17411,6 +17485,7 @@ class NetworkLoadBalancer(
17411
17485
  enforce_security_group_inbound_rules_on_private_link_traffic=enforce_security_group_inbound_rules_on_private_link_traffic,
17412
17486
  ip_address_type=ip_address_type,
17413
17487
  security_groups=security_groups,
17488
+ subnet_mappings=subnet_mappings,
17414
17489
  zonal_shift=zonal_shift,
17415
17490
  vpc=vpc,
17416
17491
  cross_zone_enabled=cross_zone_enabled,
@@ -18214,6 +18289,7 @@ class NetworkLoadBalancerLookupOptions(BaseLoadBalancerLookupOptions):
18214
18289
  "enforce_security_group_inbound_rules_on_private_link_traffic": "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic",
18215
18290
  "ip_address_type": "ipAddressType",
18216
18291
  "security_groups": "securityGroups",
18292
+ "subnet_mappings": "subnetMappings",
18217
18293
  "zonal_shift": "zonalShift",
18218
18294
  },
18219
18295
  )
@@ -18234,6 +18310,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
18234
18310
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
18235
18311
  ip_address_type: typing.Optional[IpAddressType] = None,
18236
18312
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
18313
+ subnet_mappings: typing.Optional[typing.Sequence[typing.Union["SubnetMapping", typing.Dict[builtins.str, typing.Any]]]] = None,
18237
18314
  zonal_shift: typing.Optional[builtins.bool] = None,
18238
18315
  ) -> None:
18239
18316
  '''Properties for a network load balancer.
@@ -18251,6 +18328,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
18251
18328
  :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
18252
18329
  :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
18253
18330
  :param security_groups: Security groups to associate with this load balancer. Default: - No security groups associated with the load balancer.
18331
+ :param subnet_mappings: Subnet information for the load balancer. Default: undefined - The VPC default strategy for subnets is used
18254
18332
  :param zonal_shift: Indicates whether zonal shift is enabled. Default: false
18255
18333
 
18256
18334
  :exampleMetadata: infused
@@ -18288,6 +18366,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
18288
18366
  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"])
18289
18367
  check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
18290
18368
  check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
18369
+ check_type(argname="argument subnet_mappings", value=subnet_mappings, expected_type=type_hints["subnet_mappings"])
18291
18370
  check_type(argname="argument zonal_shift", value=zonal_shift, expected_type=type_hints["zonal_shift"])
18292
18371
  self._values: typing.Dict[builtins.str, typing.Any] = {
18293
18372
  "vpc": vpc,
@@ -18316,6 +18395,8 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
18316
18395
  self._values["ip_address_type"] = ip_address_type
18317
18396
  if security_groups is not None:
18318
18397
  self._values["security_groups"] = security_groups
18398
+ if subnet_mappings is not None:
18399
+ self._values["subnet_mappings"] = subnet_mappings
18319
18400
  if zonal_shift is not None:
18320
18401
  self._values["zonal_shift"] = zonal_shift
18321
18402
 
@@ -18450,6 +18531,15 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
18450
18531
  result = self._values.get("security_groups")
18451
18532
  return typing.cast(typing.Optional[typing.List[_ISecurityGroup_acf8a799]], result)
18452
18533
 
18534
+ @builtins.property
18535
+ def subnet_mappings(self) -> typing.Optional[typing.List["SubnetMapping"]]:
18536
+ '''Subnet information for the load balancer.
18537
+
18538
+ :default: undefined - The VPC default strategy for subnets is used
18539
+ '''
18540
+ result = self._values.get("subnet_mappings")
18541
+ return typing.cast(typing.Optional[typing.List["SubnetMapping"]], result)
18542
+
18453
18543
  @builtins.property
18454
18544
  def zonal_shift(self) -> typing.Optional[builtins.bool]:
18455
18545
  '''Indicates whether zonal shift is enabled.
@@ -19234,6 +19324,102 @@ class RevocationType(enum.Enum):
19234
19324
  '''A signed list of revoked certificates.'''
19235
19325
 
19236
19326
 
19327
+ class SourceNatIpv6Prefix(
19328
+ metaclass=jsii.JSIIMeta,
19329
+ jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.SourceNatIpv6Prefix",
19330
+ ):
19331
+ '''The prefix to use for source NAT for a dual-stack network load balancer with UDP listeners.
19332
+
19333
+ :exampleMetadata: infused
19334
+
19335
+ Example::
19336
+
19337
+ # vpc: ec2.IVpc
19338
+ # dualstack_vpc: ec2.IVpc
19339
+ # subnet: ec2.ISubnet
19340
+ # dualstack_subnet: ec2.ISubnet
19341
+ # cfn_eip: ec2.CfnEIP
19342
+
19343
+
19344
+ # Internet facing Network Load Balancer with an Elastic IPv4 address
19345
+ elbv2.NetworkLoadBalancer(self, "InternetFacingLb",
19346
+ vpc=vpc,
19347
+ internet_facing=True,
19348
+ subnet_mappings=[elbv2.SubnetMapping(
19349
+ subnet=subnet,
19350
+ # The allocation ID of the Elastic IP address
19351
+ allocation_id=cfn_eip.attr_allocation_id
19352
+ )
19353
+ ]
19354
+ )
19355
+
19356
+ # Internal Network Load Balancer with a private IPv4 address
19357
+ elbv2.NetworkLoadBalancer(self, "InternalLb",
19358
+ vpc=vpc,
19359
+ internet_facing=False,
19360
+ subnet_mappings=[elbv2.SubnetMapping(
19361
+ subnet=subnet,
19362
+ # The private IPv4 address from the subnet
19363
+ # The address must be in the subnet's CIDR range and
19364
+ # can not be configured for a internet facing Network Load Balancer.
19365
+ private_ipv4_address="10.0.12.29"
19366
+ )
19367
+ ]
19368
+ )
19369
+
19370
+ # Dualstack Network Load Balancer with an IPv6 address and prefix for source NAT
19371
+ elbv2.NetworkLoadBalancer(self, "DualstackLb",
19372
+ vpc=dualstack_vpc,
19373
+ # Configure the dualstack Network Load Balancer
19374
+ ip_address_type=elbv2.IpAddressType.DUAL_STACK,
19375
+ enable_prefix_for_ipv6_source_nat=True,
19376
+ subnet_mappings=[elbv2.SubnetMapping(
19377
+ subnet=dualstack_subnet,
19378
+ # The IPv6 address from the subnet
19379
+ # `ipAddresstype` must be `DUAL_STACK` or `DUAL_STACK_WITHOUT_PUBLIC_IPV4` to set the IPv6 address.
19380
+ ipv6_address="2001:db8:1234:1a00::10",
19381
+ # The IPv6 prefix to use for source NAT
19382
+ # `enablePrefixForIpv6SourceNat` must be `true` to set `sourceNatIpv6Prefix`.
19383
+ source_nat_ipv6_prefix=elbv2.SourceNatIpv6Prefix.auto_assigned()
19384
+ )
19385
+ ]
19386
+ )
19387
+ '''
19388
+
19389
+ def __init__(self, prefix: builtins.str) -> None:
19390
+ '''
19391
+ :param prefix: The IPv6 prefix.
19392
+ '''
19393
+ if __debug__:
19394
+ type_hints = typing.get_type_hints(_typecheckingstub__8d55714f5f91498510c90c4dda1351b8a7df895b813a9a7497de8b105f014317)
19395
+ check_type(argname="argument prefix", value=prefix, expected_type=type_hints["prefix"])
19396
+ jsii.create(self.__class__, self, [prefix])
19397
+
19398
+ @jsii.member(jsii_name="autoAssigned")
19399
+ @builtins.classmethod
19400
+ def auto_assigned(cls) -> "SourceNatIpv6Prefix":
19401
+ '''Use an automatically assigned IPv6 prefix.'''
19402
+ return typing.cast("SourceNatIpv6Prefix", jsii.sinvoke(cls, "autoAssigned", []))
19403
+
19404
+ @jsii.member(jsii_name="fromIpv6Prefix")
19405
+ @builtins.classmethod
19406
+ def from_ipv6_prefix(cls, prefix: builtins.str) -> "SourceNatIpv6Prefix":
19407
+ '''Use a custom IPv6 prefix with /80 netmask.
19408
+
19409
+ :param prefix: The IPv6 prefix.
19410
+ '''
19411
+ if __debug__:
19412
+ type_hints = typing.get_type_hints(_typecheckingstub__7931008bfd4762535b77272b55f89bbaa4ed5fceb99b2c3a2e557b0f4bc30a4f)
19413
+ check_type(argname="argument prefix", value=prefix, expected_type=type_hints["prefix"])
19414
+ return typing.cast("SourceNatIpv6Prefix", jsii.sinvoke(cls, "fromIpv6Prefix", [prefix]))
19415
+
19416
+ @builtins.property
19417
+ @jsii.member(jsii_name="prefix")
19418
+ def prefix(self) -> builtins.str:
19419
+ '''The IPv6 prefix.'''
19420
+ return typing.cast(builtins.str, jsii.get(self, "prefix"))
19421
+
19422
+
19237
19423
  @jsii.enum(jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.SslPolicy")
19238
19424
  class SslPolicy(enum.Enum):
19239
19425
  '''Elastic Load Balancing provides the following security policies for Application Load Balancers.
@@ -19374,6 +19560,134 @@ class SslPolicy(enum.Enum):
19374
19560
  '''
19375
19561
 
19376
19562
 
19563
+ @jsii.data_type(
19564
+ jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.SubnetMapping",
19565
+ jsii_struct_bases=[],
19566
+ name_mapping={
19567
+ "subnet": "subnet",
19568
+ "allocation_id": "allocationId",
19569
+ "ipv6_address": "ipv6Address",
19570
+ "private_ipv4_address": "privateIpv4Address",
19571
+ "source_nat_ipv6_prefix": "sourceNatIpv6Prefix",
19572
+ },
19573
+ )
19574
+ class SubnetMapping:
19575
+ def __init__(
19576
+ self,
19577
+ *,
19578
+ subnet: _ISubnet_d57d1229,
19579
+ allocation_id: typing.Optional[builtins.str] = None,
19580
+ ipv6_address: typing.Optional[builtins.str] = None,
19581
+ private_ipv4_address: typing.Optional[builtins.str] = None,
19582
+ source_nat_ipv6_prefix: typing.Optional[SourceNatIpv6Prefix] = None,
19583
+ ) -> None:
19584
+ '''Specifies a subnet for a load balancer.
19585
+
19586
+ :param subnet: The subnet.
19587
+ :param allocation_id: The allocation ID of the Elastic IP address for an internet-facing load balancer. Default: undefined - AWS default is to allocate a new IP address for internet-facing load balancers
19588
+ :param ipv6_address: The IPv6 address. Default: undefined - AWS default is to allocate an IPv6 address from the subnet's pool
19589
+ :param private_ipv4_address: The private IPv4 address for an internal load balancer. Default: undefined - AWS default is to allocate a private IPv4 address from the subnet's pool
19590
+ :param source_nat_ipv6_prefix: The IPv6 prefix to use for source NAT for a dual-stack network load balancer with UDP listeners. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``SourceNatIpv6Prefix.autoAssigned()`` to use an IPv6 prefix selected at random from the subnet CIDR block. Default: undefined - AWS default is ``SourceNatIpv6Prefix.autoAssigned()`` for IPv6 load balancers
19591
+
19592
+ :exampleMetadata: fixture=_generated
19593
+
19594
+ Example::
19595
+
19596
+ # The code below shows an example of how to instantiate this type.
19597
+ # The values are placeholders you should change.
19598
+ from aws_cdk import aws_ec2 as ec2
19599
+ from aws_cdk import aws_elasticloadbalancingv2 as elbv2
19600
+
19601
+ # source_nat_ipv6_prefix: elbv2.SourceNatIpv6Prefix
19602
+ # subnet: ec2.Subnet
19603
+
19604
+ subnet_mapping = elbv2.SubnetMapping(
19605
+ subnet=subnet,
19606
+
19607
+ # the properties below are optional
19608
+ allocation_id="allocationId",
19609
+ ipv6_address="ipv6Address",
19610
+ private_ipv4_address="privateIpv4Address",
19611
+ source_nat_ipv6_prefix=source_nat_ipv6_prefix
19612
+ )
19613
+ '''
19614
+ if __debug__:
19615
+ type_hints = typing.get_type_hints(_typecheckingstub__54c4b71e184eedb0fbc0e4df901ecb043d8b11ba2ec0429907b6acd6ced55e82)
19616
+ check_type(argname="argument subnet", value=subnet, expected_type=type_hints["subnet"])
19617
+ check_type(argname="argument allocation_id", value=allocation_id, expected_type=type_hints["allocation_id"])
19618
+ check_type(argname="argument ipv6_address", value=ipv6_address, expected_type=type_hints["ipv6_address"])
19619
+ check_type(argname="argument private_ipv4_address", value=private_ipv4_address, expected_type=type_hints["private_ipv4_address"])
19620
+ check_type(argname="argument source_nat_ipv6_prefix", value=source_nat_ipv6_prefix, expected_type=type_hints["source_nat_ipv6_prefix"])
19621
+ self._values: typing.Dict[builtins.str, typing.Any] = {
19622
+ "subnet": subnet,
19623
+ }
19624
+ if allocation_id is not None:
19625
+ self._values["allocation_id"] = allocation_id
19626
+ if ipv6_address is not None:
19627
+ self._values["ipv6_address"] = ipv6_address
19628
+ if private_ipv4_address is not None:
19629
+ self._values["private_ipv4_address"] = private_ipv4_address
19630
+ if source_nat_ipv6_prefix is not None:
19631
+ self._values["source_nat_ipv6_prefix"] = source_nat_ipv6_prefix
19632
+
19633
+ @builtins.property
19634
+ def subnet(self) -> _ISubnet_d57d1229:
19635
+ '''The subnet.'''
19636
+ result = self._values.get("subnet")
19637
+ assert result is not None, "Required property 'subnet' is missing"
19638
+ return typing.cast(_ISubnet_d57d1229, result)
19639
+
19640
+ @builtins.property
19641
+ def allocation_id(self) -> typing.Optional[builtins.str]:
19642
+ '''The allocation ID of the Elastic IP address for an internet-facing load balancer.
19643
+
19644
+ :default: undefined - AWS default is to allocate a new IP address for internet-facing load balancers
19645
+ '''
19646
+ result = self._values.get("allocation_id")
19647
+ return typing.cast(typing.Optional[builtins.str], result)
19648
+
19649
+ @builtins.property
19650
+ def ipv6_address(self) -> typing.Optional[builtins.str]:
19651
+ '''The IPv6 address.
19652
+
19653
+ :default: undefined - AWS default is to allocate an IPv6 address from the subnet's pool
19654
+ '''
19655
+ result = self._values.get("ipv6_address")
19656
+ return typing.cast(typing.Optional[builtins.str], result)
19657
+
19658
+ @builtins.property
19659
+ def private_ipv4_address(self) -> typing.Optional[builtins.str]:
19660
+ '''The private IPv4 address for an internal load balancer.
19661
+
19662
+ :default: undefined - AWS default is to allocate a private IPv4 address from the subnet's pool
19663
+ '''
19664
+ result = self._values.get("private_ipv4_address")
19665
+ return typing.cast(typing.Optional[builtins.str], result)
19666
+
19667
+ @builtins.property
19668
+ def source_nat_ipv6_prefix(self) -> typing.Optional[SourceNatIpv6Prefix]:
19669
+ '''The IPv6 prefix to use for source NAT for a dual-stack network load balancer with UDP listeners.
19670
+
19671
+ Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block
19672
+ or ``SourceNatIpv6Prefix.autoAssigned()`` to use an IPv6 prefix selected at random from the subnet CIDR block.
19673
+
19674
+ :default: undefined - AWS default is ``SourceNatIpv6Prefix.autoAssigned()`` for IPv6 load balancers
19675
+ '''
19676
+ result = self._values.get("source_nat_ipv6_prefix")
19677
+ return typing.cast(typing.Optional[SourceNatIpv6Prefix], result)
19678
+
19679
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
19680
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
19681
+
19682
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
19683
+ return not (rhs == self)
19684
+
19685
+ def __repr__(self) -> str:
19686
+ return "SubnetMapping(%s)" % ", ".join(
19687
+ k + "=" + repr(v) for k, v in self._values.items()
19688
+ )
19689
+
19690
+
19377
19691
  @jsii.data_type(
19378
19692
  jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.TargetGroupAttributes",
19379
19693
  jsii_struct_bases=[],
@@ -26051,7 +26365,9 @@ __all__ = [
26051
26365
  "RedirectOptions",
26052
26366
  "RevocationContent",
26053
26367
  "RevocationType",
26368
+ "SourceNatIpv6Prefix",
26054
26369
  "SslPolicy",
26370
+ "SubnetMapping",
26055
26371
  "TargetGroupAttributes",
26056
26372
  "TargetGroupBase",
26057
26373
  "TargetGroupIpAddressType",
@@ -27639,6 +27955,7 @@ def _typecheckingstub__e1c7a4c1332bdc807d1e25aa5d69eea6e1f3bf6a88ddd30dac9a64c93
27639
27955
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
27640
27956
  ip_address_type: typing.Optional[IpAddressType] = None,
27641
27957
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
27958
+ subnet_mappings: typing.Optional[typing.Sequence[typing.Union[SubnetMapping, typing.Dict[builtins.str, typing.Any]]]] = None,
27642
27959
  zonal_shift: typing.Optional[builtins.bool] = None,
27643
27960
  vpc: _IVpc_f30d5663,
27644
27961
  cross_zone_enabled: typing.Optional[builtins.bool] = None,
@@ -27747,6 +28064,7 @@ def _typecheckingstub__195ab659ca9cd1c401d6d2d1a1f5cb0aaf7dd80f06dbc724020ac0cc3
27747
28064
  enforce_security_group_inbound_rules_on_private_link_traffic: typing.Optional[builtins.bool] = None,
27748
28065
  ip_address_type: typing.Optional[IpAddressType] = None,
27749
28066
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
28067
+ subnet_mappings: typing.Optional[typing.Sequence[typing.Union[SubnetMapping, typing.Dict[builtins.str, typing.Any]]]] = None,
27750
28068
  zonal_shift: typing.Optional[builtins.bool] = None,
27751
28069
  ) -> None:
27752
28070
  """Type checking stubs"""
@@ -27809,6 +28127,29 @@ def _typecheckingstub__a2d98c0c87c9335126a85af9c46b02ccfdb480d04d96fb422b8f62f17
27809
28127
  """Type checking stubs"""
27810
28128
  pass
27811
28129
 
28130
+ def _typecheckingstub__8d55714f5f91498510c90c4dda1351b8a7df895b813a9a7497de8b105f014317(
28131
+ prefix: builtins.str,
28132
+ ) -> None:
28133
+ """Type checking stubs"""
28134
+ pass
28135
+
28136
+ def _typecheckingstub__7931008bfd4762535b77272b55f89bbaa4ed5fceb99b2c3a2e557b0f4bc30a4f(
28137
+ prefix: builtins.str,
28138
+ ) -> None:
28139
+ """Type checking stubs"""
28140
+ pass
28141
+
28142
+ def _typecheckingstub__54c4b71e184eedb0fbc0e4df901ecb043d8b11ba2ec0429907b6acd6ced55e82(
28143
+ *,
28144
+ subnet: _ISubnet_d57d1229,
28145
+ allocation_id: typing.Optional[builtins.str] = None,
28146
+ ipv6_address: typing.Optional[builtins.str] = None,
28147
+ private_ipv4_address: typing.Optional[builtins.str] = None,
28148
+ source_nat_ipv6_prefix: typing.Optional[SourceNatIpv6Prefix] = None,
28149
+ ) -> None:
28150
+ """Type checking stubs"""
28151
+ pass
28152
+
27812
28153
  def _typecheckingstub__37df8dc72952ae228e1a00919ab4c7fcae58e15f47e4e6bc9c1dfdb923d23dcd(
27813
28154
  *,
27814
28155
  target_group_arn: builtins.str,