aws-cdk-lib 2.178.2__py3-none-any.whl → 2.180.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 (70) hide show
  1. aws_cdk/__init__.py +83 -41
  2. aws_cdk/_jsii/__init__.py +1 -2
  3. aws_cdk/_jsii/{aws-cdk-lib@2.178.2.jsii.tgz → aws-cdk-lib@2.180.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_acmpca/__init__.py +47 -0
  5. aws_cdk/aws_apigateway/__init__.py +176 -35
  6. aws_cdk/aws_apigatewayv2/__init__.py +151 -32
  7. aws_cdk/aws_apigatewayv2_integrations/__init__.py +348 -0
  8. aws_cdk/aws_applicationautoscaling/__init__.py +8 -8
  9. aws_cdk/aws_appsync/__init__.py +10 -7
  10. aws_cdk/aws_backup/__init__.py +89 -0
  11. aws_cdk/aws_batch/__init__.py +89 -50
  12. aws_cdk/aws_bedrock/__init__.py +506 -62
  13. aws_cdk/aws_cloudfront/__init__.py +1037 -146
  14. aws_cdk/aws_cloudfront_origins/__init__.py +1338 -144
  15. aws_cdk/aws_cloudtrail/__init__.py +4 -8
  16. aws_cdk/aws_cloudwatch/__init__.py +1 -1
  17. aws_cdk/aws_codebuild/__init__.py +218 -2
  18. aws_cdk/aws_codepipeline/__init__.py +113 -28
  19. aws_cdk/aws_codepipeline_actions/__init__.py +554 -63
  20. aws_cdk/aws_codestar/__init__.py +2 -1
  21. aws_cdk/aws_cognito/__init__.py +676 -29
  22. aws_cdk/aws_connect/__init__.py +257 -0
  23. aws_cdk/aws_datasync/__init__.py +279 -50
  24. aws_cdk/aws_deadline/__init__.py +683 -6
  25. aws_cdk/aws_directoryservice/__init__.py +9 -4
  26. aws_cdk/aws_dlm/__init__.py +2 -2
  27. aws_cdk/aws_dms/__init__.py +3 -3
  28. aws_cdk/aws_dynamodb/__init__.py +0 -54
  29. aws_cdk/aws_ec2/__init__.py +402 -130
  30. aws_cdk/aws_ecs/__init__.py +28 -43
  31. aws_cdk/aws_efs/__init__.py +1 -1
  32. aws_cdk/aws_eks/__init__.py +560 -182
  33. aws_cdk/aws_elasticloadbalancingv2/__init__.py +112 -27
  34. aws_cdk/aws_emrcontainers/__init__.py +44 -1
  35. aws_cdk/aws_events/__init__.py +17 -26
  36. aws_cdk/aws_events_targets/__init__.py +303 -16
  37. aws_cdk/aws_fms/__init__.py +5 -5
  38. aws_cdk/aws_fsx/__init__.py +5 -4
  39. aws_cdk/aws_glue/__init__.py +161 -0
  40. aws_cdk/aws_groundstation/__init__.py +23 -1
  41. aws_cdk/aws_iam/__init__.py +15 -15
  42. aws_cdk/aws_iot/__init__.py +7 -0
  43. aws_cdk/aws_ivs/__init__.py +254 -77
  44. aws_cdk/aws_kinesis/__init__.py +689 -35
  45. aws_cdk/aws_lambda/__init__.py +10 -15
  46. aws_cdk/aws_lambda_event_sources/__init__.py +175 -2
  47. aws_cdk/aws_logs/__init__.py +62 -13
  48. aws_cdk/aws_medialive/__init__.py +314 -4
  49. aws_cdk/aws_opensearchserverless/__init__.py +19 -0
  50. aws_cdk/aws_pinpoint/__init__.py +14 -9
  51. aws_cdk/aws_rds/__init__.py +246 -82
  52. aws_cdk/aws_s3/__init__.py +287 -9
  53. aws_cdk/aws_s3objectlambda/__init__.py +2 -2
  54. aws_cdk/aws_ses/__init__.py +228 -8
  55. aws_cdk/aws_ssm/__init__.py +4 -5
  56. aws_cdk/aws_stepfunctions/__init__.py +301 -70
  57. aws_cdk/aws_stepfunctions_tasks/__init__.py +269 -163
  58. aws_cdk/aws_supportapp/__init__.py +7 -7
  59. aws_cdk/aws_transfer/__init__.py +820 -2
  60. aws_cdk/aws_wafv2/__init__.py +17 -9
  61. aws_cdk/custom_resources/__init__.py +23 -26
  62. aws_cdk/cx_api/__init__.py +16 -0
  63. aws_cdk/pipelines/__init__.py +2 -2
  64. {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/METADATA +1 -2
  65. {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/RECORD +69 -70
  66. aws_cdk/lambda_layer_kubectl/__init__.py +0 -107
  67. {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/LICENSE +0 -0
  68. {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/NOTICE +0 -0
  69. {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/WHEEL +0 -0
  70. {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/top_level.txt +0 -0
@@ -325,6 +325,22 @@ lb = elbv2.ApplicationLoadBalancer(self, "LB",
325
325
  )
326
326
  ```
327
327
 
328
+ ### Defining a reserved Application Load Balancer Capacity Unit (LCU)
329
+
330
+ You can define a [reserved LCU for your Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/capacity-unit-reservation.html).
331
+ To reserve an LCU, you must specify a `minimumCapacityUnit`.
332
+
333
+ ```python
334
+ # vpc: ec2.Vpc
335
+
336
+
337
+ lb = elbv2.ApplicationLoadBalancer(self, "LB",
338
+ vpc=vpc,
339
+ # Valid value is between 100 and 1500.
340
+ minimum_capacity_unit=100
341
+ )
342
+ ```
343
+
328
344
  ## Defining a Network Load Balancer
329
345
 
330
346
  Network Load Balancers are defined in a similar way to Application Load
@@ -481,6 +497,26 @@ lb.add_security_group(sg2)
481
497
  lb.connections.allow_from_any_ipv4(ec2.Port.tcp(80))
482
498
  ```
483
499
 
500
+ ### Defining a reserved Network Load Balancer Capacity Unit (LCU)
501
+
502
+ You can define a [reserved LCU for your Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/capacity-unit-reservation.html).
503
+
504
+ When requesting a LCU reservation, convert your capacity needs from Mbps to LCUs using the conversion rate of 1 LCU to 2.2 Mbps.
505
+
506
+ To reserve an LCU, you must specify a `minimumCapacityUnit`.
507
+
508
+ ```python
509
+ # vpc: ec2.Vpc
510
+
511
+
512
+ lb = elbv2.NetworkLoadBalancer(self, "LB",
513
+ vpc=vpc,
514
+ minimum_capacity_unit=5500
515
+ )
516
+ ```
517
+
518
+ **Note**: The `minimumCapacityUnit` value is evenly distributed across all active Availability Zones (AZs) for the network load balancer. The distributed value per AZ must be between 2,750 and 45,000 units.
519
+
484
520
  ## Targets and Target Groups
485
521
 
486
522
  Application and Network Load Balancers organize load balancing targets in Target
@@ -3033,6 +3069,7 @@ class BaseLoadBalancerLookupOptions:
3033
3069
  "deny_all_igw_traffic": "denyAllIgwTraffic",
3034
3070
  "internet_facing": "internetFacing",
3035
3071
  "load_balancer_name": "loadBalancerName",
3072
+ "minimum_capacity_unit": "minimumCapacityUnit",
3036
3073
  "vpc_subnets": "vpcSubnets",
3037
3074
  },
3038
3075
  )
@@ -3046,6 +3083,7 @@ class BaseLoadBalancerProps:
3046
3083
  deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
3047
3084
  internet_facing: typing.Optional[builtins.bool] = None,
3048
3085
  load_balancer_name: typing.Optional[builtins.str] = None,
3086
+ minimum_capacity_unit: typing.Optional[jsii.Number] = None,
3049
3087
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
3050
3088
  ) -> None:
3051
3089
  '''Shared properties of both Application and Network Load Balancers.
@@ -3056,6 +3094,7 @@ class BaseLoadBalancerProps:
3056
3094
  :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
3057
3095
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
3058
3096
  :param load_balancer_name: Name of the load balancer. Default: - Automatically generated name.
3097
+ :param minimum_capacity_unit: The minimum capacity (LCU) for a load balancer. Default: undefined - ELB default is 0 LCU
3059
3098
  :param vpc_subnets: Which subnets place the load balancer in. Default: - the Vpc default strategy.
3060
3099
 
3061
3100
  :exampleMetadata: fixture=_generated
@@ -3080,6 +3119,7 @@ class BaseLoadBalancerProps:
3080
3119
  deny_all_igw_traffic=False,
3081
3120
  internet_facing=False,
3082
3121
  load_balancer_name="loadBalancerName",
3122
+ minimum_capacity_unit=123,
3083
3123
  vpc_subnets=ec2.SubnetSelection(
3084
3124
  availability_zones=["availabilityZones"],
3085
3125
  one_per_az=False,
@@ -3100,6 +3140,7 @@ class BaseLoadBalancerProps:
3100
3140
  check_type(argname="argument deny_all_igw_traffic", value=deny_all_igw_traffic, expected_type=type_hints["deny_all_igw_traffic"])
3101
3141
  check_type(argname="argument internet_facing", value=internet_facing, expected_type=type_hints["internet_facing"])
3102
3142
  check_type(argname="argument load_balancer_name", value=load_balancer_name, expected_type=type_hints["load_balancer_name"])
3143
+ check_type(argname="argument minimum_capacity_unit", value=minimum_capacity_unit, expected_type=type_hints["minimum_capacity_unit"])
3103
3144
  check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
3104
3145
  self._values: typing.Dict[builtins.str, typing.Any] = {
3105
3146
  "vpc": vpc,
@@ -3114,6 +3155,8 @@ class BaseLoadBalancerProps:
3114
3155
  self._values["internet_facing"] = internet_facing
3115
3156
  if load_balancer_name is not None:
3116
3157
  self._values["load_balancer_name"] = load_balancer_name
3158
+ if minimum_capacity_unit is not None:
3159
+ self._values["minimum_capacity_unit"] = minimum_capacity_unit
3117
3160
  if vpc_subnets is not None:
3118
3161
  self._values["vpc_subnets"] = vpc_subnets
3119
3162
 
@@ -3174,6 +3217,17 @@ class BaseLoadBalancerProps:
3174
3217
  result = self._values.get("load_balancer_name")
3175
3218
  return typing.cast(typing.Optional[builtins.str], result)
3176
3219
 
3220
+ @builtins.property
3221
+ def minimum_capacity_unit(self) -> typing.Optional[jsii.Number]:
3222
+ '''The minimum capacity (LCU) for a load balancer.
3223
+
3224
+ :default: undefined - ELB default is 0 LCU
3225
+
3226
+ :see: https://exampleloadbalancer.com/ondemand_capacity_reservation_calculator.html
3227
+ '''
3228
+ result = self._values.get("minimum_capacity_unit")
3229
+ return typing.cast(typing.Optional[jsii.Number], result)
3230
+
3177
3231
  @builtins.property
3178
3232
  def vpc_subnets(self) -> typing.Optional[_SubnetSelection_e57d76df]:
3179
3233
  '''Which subnets place the load balancer in.
@@ -4964,11 +5018,11 @@ class CfnListener(
4964
5018
  mode: typing.Optional[builtins.str] = None,
4965
5019
  trust_store_arn: typing.Optional[builtins.str] = None,
4966
5020
  ) -> None:
4967
- '''Specifies the configuration information for mutual authentication.
5021
+ '''The mutual authentication configuration information.
4968
5022
 
4969
- :param advertise_trust_store_ca_names:
5023
+ :param advertise_trust_store_ca_names: Indicates whether trust store CA certificate names are advertised. The default value is ``off`` .
4970
5024
  :param ignore_client_certificate_expiry: Indicates whether expired client certificates are ignored.
4971
- :param mode: The client certificate handling method. Options are ``off`` , ``passthrough`` or ``verify`` . The default value is ``off`` .
5025
+ :param mode: The client certificate handling method. The possible values are ``off`` , ``passthrough`` , and ``verify`` . The default value is ``off`` .
4972
5026
  :param trust_store_arn: The Amazon Resource Name (ARN) of the trust store.
4973
5027
 
4974
5028
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-mutualauthentication.html
@@ -5005,7 +5059,10 @@ class CfnListener(
5005
5059
 
5006
5060
  @builtins.property
5007
5061
  def advertise_trust_store_ca_names(self) -> typing.Optional[builtins.str]:
5008
- '''
5062
+ '''Indicates whether trust store CA certificate names are advertised.
5063
+
5064
+ The default value is ``off`` .
5065
+
5009
5066
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-mutualauthentication.html#cfn-elasticloadbalancingv2-listener-mutualauthentication-advertisetruststorecanames
5010
5067
  '''
5011
5068
  result = self._values.get("advertise_trust_store_ca_names")
@@ -5026,7 +5083,7 @@ class CfnListener(
5026
5083
  def mode(self) -> typing.Optional[builtins.str]:
5027
5084
  '''The client certificate handling method.
5028
5085
 
5029
- Options are ``off`` , ``passthrough`` or ``verify`` . The default value is ``off`` .
5086
+ The possible values are ``off`` , ``passthrough`` , and ``verify`` . The default value is ``off`` .
5030
5087
 
5031
5088
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-mutualauthentication.html#cfn-elasticloadbalancingv2-listener-mutualauthentication-mode
5032
5089
  '''
@@ -17294,6 +17351,7 @@ class NetworkLoadBalancer(
17294
17351
  deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
17295
17352
  internet_facing: typing.Optional[builtins.bool] = None,
17296
17353
  load_balancer_name: typing.Optional[builtins.str] = None,
17354
+ minimum_capacity_unit: typing.Optional[jsii.Number] = None,
17297
17355
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
17298
17356
  ) -> None:
17299
17357
  '''
@@ -17311,6 +17369,7 @@ class NetworkLoadBalancer(
17311
17369
  :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
17312
17370
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
17313
17371
  :param load_balancer_name: Name of the load balancer. Default: - Automatically generated name.
17372
+ :param minimum_capacity_unit: The minimum capacity (LCU) for a load balancer. Default: undefined - ELB default is 0 LCU
17314
17373
  :param vpc_subnets: Which subnets place the load balancer in. Default: - the Vpc default strategy.
17315
17374
  '''
17316
17375
  if __debug__:
@@ -17330,6 +17389,7 @@ class NetworkLoadBalancer(
17330
17389
  deny_all_igw_traffic=deny_all_igw_traffic,
17331
17390
  internet_facing=internet_facing,
17332
17391
  load_balancer_name=load_balancer_name,
17392
+ minimum_capacity_unit=minimum_capacity_unit,
17333
17393
  vpc_subnets=vpc_subnets,
17334
17394
  )
17335
17395
 
@@ -18118,6 +18178,7 @@ class NetworkLoadBalancerLookupOptions(BaseLoadBalancerLookupOptions):
18118
18178
  "deny_all_igw_traffic": "denyAllIgwTraffic",
18119
18179
  "internet_facing": "internetFacing",
18120
18180
  "load_balancer_name": "loadBalancerName",
18181
+ "minimum_capacity_unit": "minimumCapacityUnit",
18121
18182
  "vpc_subnets": "vpcSubnets",
18122
18183
  "client_routing_policy": "clientRoutingPolicy",
18123
18184
  "enable_prefix_for_ipv6_source_nat": "enablePrefixForIpv6SourceNat",
@@ -18137,6 +18198,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
18137
18198
  deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
18138
18199
  internet_facing: typing.Optional[builtins.bool] = None,
18139
18200
  load_balancer_name: typing.Optional[builtins.str] = None,
18201
+ minimum_capacity_unit: typing.Optional[jsii.Number] = None,
18140
18202
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
18141
18203
  client_routing_policy: typing.Optional[ClientRoutingPolicy] = None,
18142
18204
  enable_prefix_for_ipv6_source_nat: typing.Optional[builtins.bool] = None,
@@ -18153,6 +18215,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
18153
18215
  :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
18154
18216
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
18155
18217
  :param load_balancer_name: Name of the load balancer. Default: - Automatically generated name.
18218
+ :param minimum_capacity_unit: The minimum capacity (LCU) for a load balancer. Default: undefined - ELB default is 0 LCU
18156
18219
  :param vpc_subnets: Which subnets place the load balancer in. Default: - the Vpc default strategy.
18157
18220
  :param client_routing_policy: The AZ affinity routing policy. Default: - AZ affinity is disabled.
18158
18221
  :param enable_prefix_for_ipv6_source_nat: Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be IpAddressType.DUALSTACK. Default: undefined - NLB default behavior is false
@@ -18189,6 +18252,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
18189
18252
  check_type(argname="argument deny_all_igw_traffic", value=deny_all_igw_traffic, expected_type=type_hints["deny_all_igw_traffic"])
18190
18253
  check_type(argname="argument internet_facing", value=internet_facing, expected_type=type_hints["internet_facing"])
18191
18254
  check_type(argname="argument load_balancer_name", value=load_balancer_name, expected_type=type_hints["load_balancer_name"])
18255
+ check_type(argname="argument minimum_capacity_unit", value=minimum_capacity_unit, expected_type=type_hints["minimum_capacity_unit"])
18192
18256
  check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
18193
18257
  check_type(argname="argument client_routing_policy", value=client_routing_policy, expected_type=type_hints["client_routing_policy"])
18194
18258
  check_type(argname="argument enable_prefix_for_ipv6_source_nat", value=enable_prefix_for_ipv6_source_nat, expected_type=type_hints["enable_prefix_for_ipv6_source_nat"])
@@ -18209,6 +18273,8 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
18209
18273
  self._values["internet_facing"] = internet_facing
18210
18274
  if load_balancer_name is not None:
18211
18275
  self._values["load_balancer_name"] = load_balancer_name
18276
+ if minimum_capacity_unit is not None:
18277
+ self._values["minimum_capacity_unit"] = minimum_capacity_unit
18212
18278
  if vpc_subnets is not None:
18213
18279
  self._values["vpc_subnets"] = vpc_subnets
18214
18280
  if client_routing_policy is not None:
@@ -18281,6 +18347,17 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
18281
18347
  result = self._values.get("load_balancer_name")
18282
18348
  return typing.cast(typing.Optional[builtins.str], result)
18283
18349
 
18350
+ @builtins.property
18351
+ def minimum_capacity_unit(self) -> typing.Optional[jsii.Number]:
18352
+ '''The minimum capacity (LCU) for a load balancer.
18353
+
18354
+ :default: undefined - ELB default is 0 LCU
18355
+
18356
+ :see: https://exampleloadbalancer.com/ondemand_capacity_reservation_calculator.html
18357
+ '''
18358
+ result = self._values.get("minimum_capacity_unit")
18359
+ return typing.cast(typing.Optional[jsii.Number], result)
18360
+
18284
18361
  @builtins.property
18285
18362
  def vpc_subnets(self) -> typing.Optional[_SubnetSelection_e57d76df]:
18286
18363
  '''Which subnets place the load balancer in.
@@ -21280,6 +21357,7 @@ class ApplicationLoadBalancerLookupOptions(BaseLoadBalancerLookupOptions):
21280
21357
  "deny_all_igw_traffic": "denyAllIgwTraffic",
21281
21358
  "internet_facing": "internetFacing",
21282
21359
  "load_balancer_name": "loadBalancerName",
21360
+ "minimum_capacity_unit": "minimumCapacityUnit",
21283
21361
  "vpc_subnets": "vpcSubnets",
21284
21362
  "client_keep_alive": "clientKeepAlive",
21285
21363
  "desync_mitigation_mode": "desyncMitigationMode",
@@ -21305,6 +21383,7 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
21305
21383
  deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
21306
21384
  internet_facing: typing.Optional[builtins.bool] = None,
21307
21385
  load_balancer_name: typing.Optional[builtins.str] = None,
21386
+ minimum_capacity_unit: typing.Optional[jsii.Number] = None,
21308
21387
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
21309
21388
  client_keep_alive: typing.Optional[_Duration_4839e8c3] = None,
21310
21389
  desync_mitigation_mode: typing.Optional[DesyncMitigationMode] = None,
@@ -21327,6 +21406,7 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
21327
21406
  :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
21328
21407
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
21329
21408
  :param load_balancer_name: Name of the load balancer. Default: - Automatically generated name.
21409
+ :param minimum_capacity_unit: The minimum capacity (LCU) for a load balancer. Default: undefined - ELB default is 0 LCU
21330
21410
  :param vpc_subnets: Which subnets place the load balancer in. Default: - the Vpc default strategy.
21331
21411
  :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)
21332
21412
  :param desync_mitigation_mode: Determines how the load balancer handles requests that might pose a security risk to your application. Default: DesyncMitigationMode.DEFENSIVE
@@ -21386,6 +21466,7 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
21386
21466
  check_type(argname="argument deny_all_igw_traffic", value=deny_all_igw_traffic, expected_type=type_hints["deny_all_igw_traffic"])
21387
21467
  check_type(argname="argument internet_facing", value=internet_facing, expected_type=type_hints["internet_facing"])
21388
21468
  check_type(argname="argument load_balancer_name", value=load_balancer_name, expected_type=type_hints["load_balancer_name"])
21469
+ check_type(argname="argument minimum_capacity_unit", value=minimum_capacity_unit, expected_type=type_hints["minimum_capacity_unit"])
21389
21470
  check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
21390
21471
  check_type(argname="argument client_keep_alive", value=client_keep_alive, expected_type=type_hints["client_keep_alive"])
21391
21472
  check_type(argname="argument desync_mitigation_mode", value=desync_mitigation_mode, expected_type=type_hints["desync_mitigation_mode"])
@@ -21412,6 +21493,8 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
21412
21493
  self._values["internet_facing"] = internet_facing
21413
21494
  if load_balancer_name is not None:
21414
21495
  self._values["load_balancer_name"] = load_balancer_name
21496
+ if minimum_capacity_unit is not None:
21497
+ self._values["minimum_capacity_unit"] = minimum_capacity_unit
21415
21498
  if vpc_subnets is not None:
21416
21499
  self._values["vpc_subnets"] = vpc_subnets
21417
21500
  if client_keep_alive is not None:
@@ -21496,6 +21579,17 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
21496
21579
  result = self._values.get("load_balancer_name")
21497
21580
  return typing.cast(typing.Optional[builtins.str], result)
21498
21581
 
21582
+ @builtins.property
21583
+ def minimum_capacity_unit(self) -> typing.Optional[jsii.Number]:
21584
+ '''The minimum capacity (LCU) for a load balancer.
21585
+
21586
+ :default: undefined - ELB default is 0 LCU
21587
+
21588
+ :see: https://exampleloadbalancer.com/ondemand_capacity_reservation_calculator.html
21589
+ '''
21590
+ result = self._values.get("minimum_capacity_unit")
21591
+ return typing.cast(typing.Optional[jsii.Number], result)
21592
+
21499
21593
  @builtins.property
21500
21594
  def vpc_subnets(self) -> typing.Optional[_SubnetSelection_e57d76df]:
21501
21595
  '''Which subnets place the load balancer in.
@@ -23634,35 +23728,18 @@ class ApplicationLoadBalancer(
23634
23728
 
23635
23729
  Example::
23636
23730
 
23637
- from aws_cdk.aws_autoscaling import AutoScalingGroup
23638
- # asg: AutoScalingGroup
23639
23731
  # vpc: ec2.Vpc
23640
23732
 
23641
23733
 
23642
- # Create the load balancer in a VPC. 'internetFacing' is 'false'
23643
- # by default, which creates an internal load balancer.
23734
+ security_group1 = ec2.SecurityGroup(self, "SecurityGroup1", vpc=vpc)
23644
23735
  lb = elbv2.ApplicationLoadBalancer(self, "LB",
23645
23736
  vpc=vpc,
23646
- internet_facing=True
23647
- )
23648
-
23649
- # Add a listener and open up the load balancer's security group
23650
- # to the world.
23651
- listener = lb.add_listener("Listener",
23652
- port=80,
23653
-
23654
- # 'open: true' is the default, you can leave it out if you want. Set it
23655
- # to 'false' and use `listener.connections` if you want to be selective
23656
- # about who can access the load balancer.
23657
- open=True
23737
+ internet_facing=True,
23738
+ security_group=security_group1
23658
23739
  )
23659
23740
 
23660
- # Create an AutoScaling group and add it as a load balancing
23661
- # target to the listener.
23662
- listener.add_targets("ApplicationFleet",
23663
- port=8080,
23664
- targets=[asg]
23665
- )
23741
+ security_group2 = ec2.SecurityGroup(self, "SecurityGroup2", vpc=vpc)
23742
+ lb.add_security_group(security_group2)
23666
23743
  '''
23667
23744
 
23668
23745
  def __init__(
@@ -23688,6 +23765,7 @@ class ApplicationLoadBalancer(
23688
23765
  deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
23689
23766
  internet_facing: typing.Optional[builtins.bool] = None,
23690
23767
  load_balancer_name: typing.Optional[builtins.str] = None,
23768
+ minimum_capacity_unit: typing.Optional[jsii.Number] = None,
23691
23769
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
23692
23770
  ) -> None:
23693
23771
  '''
@@ -23711,6 +23789,7 @@ class ApplicationLoadBalancer(
23711
23789
  :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
23712
23790
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
23713
23791
  :param load_balancer_name: Name of the load balancer. Default: - Automatically generated name.
23792
+ :param minimum_capacity_unit: The minimum capacity (LCU) for a load balancer. Default: undefined - ELB default is 0 LCU
23714
23793
  :param vpc_subnets: Which subnets place the load balancer in. Default: - the Vpc default strategy.
23715
23794
  '''
23716
23795
  if __debug__:
@@ -23736,6 +23815,7 @@ class ApplicationLoadBalancer(
23736
23815
  deny_all_igw_traffic=deny_all_igw_traffic,
23737
23816
  internet_facing=internet_facing,
23738
23817
  load_balancer_name=load_balancer_name,
23818
+ minimum_capacity_unit=minimum_capacity_unit,
23739
23819
  vpc_subnets=vpc_subnets,
23740
23820
  )
23741
23821
 
@@ -26160,6 +26240,7 @@ def _typecheckingstub__36614588a5e075aa6e7ea0a4d41053b09874f2590b227cd5d62f34299
26160
26240
  deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
26161
26241
  internet_facing: typing.Optional[builtins.bool] = None,
26162
26242
  load_balancer_name: typing.Optional[builtins.str] = None,
26243
+ minimum_capacity_unit: typing.Optional[jsii.Number] = None,
26163
26244
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
26164
26245
  ) -> None:
26165
26246
  """Type checking stubs"""
@@ -27528,6 +27609,7 @@ def _typecheckingstub__e1c7a4c1332bdc807d1e25aa5d69eea6e1f3bf6a88ddd30dac9a64c93
27528
27609
  deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
27529
27610
  internet_facing: typing.Optional[builtins.bool] = None,
27530
27611
  load_balancer_name: typing.Optional[builtins.str] = None,
27612
+ minimum_capacity_unit: typing.Optional[jsii.Number] = None,
27531
27613
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
27532
27614
  ) -> None:
27533
27615
  """Type checking stubs"""
@@ -27621,6 +27703,7 @@ def _typecheckingstub__195ab659ca9cd1c401d6d2d1a1f5cb0aaf7dd80f06dbc724020ac0cc3
27621
27703
  deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
27622
27704
  internet_facing: typing.Optional[builtins.bool] = None,
27623
27705
  load_balancer_name: typing.Optional[builtins.str] = None,
27706
+ minimum_capacity_unit: typing.Optional[jsii.Number] = None,
27624
27707
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
27625
27708
  client_routing_policy: typing.Optional[ClientRoutingPolicy] = None,
27626
27709
  enable_prefix_for_ipv6_source_nat: typing.Optional[builtins.bool] = None,
@@ -27873,6 +27956,7 @@ def _typecheckingstub__e43cf75024913d9be0d5d621a5f2c2c7be60a57898a54967cd54179b2
27873
27956
  deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
27874
27957
  internet_facing: typing.Optional[builtins.bool] = None,
27875
27958
  load_balancer_name: typing.Optional[builtins.str] = None,
27959
+ minimum_capacity_unit: typing.Optional[jsii.Number] = None,
27876
27960
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
27877
27961
  client_keep_alive: typing.Optional[_Duration_4839e8c3] = None,
27878
27962
  desync_mitigation_mode: typing.Optional[DesyncMitigationMode] = None,
@@ -28272,6 +28356,7 @@ def _typecheckingstub__22d249b6cdbe3ce0dfc1a873ef276c65fe89ce6a5dba0603fae0a5755
28272
28356
  deny_all_igw_traffic: typing.Optional[builtins.bool] = None,
28273
28357
  internet_facing: typing.Optional[builtins.bool] = None,
28274
28358
  load_balancer_name: typing.Optional[builtins.str] = None,
28359
+ minimum_capacity_unit: typing.Optional[jsii.Number] = None,
28275
28360
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
28276
28361
  ) -> None:
28277
28362
  """Type checking stubs"""
@@ -102,6 +102,7 @@ class CfnVirtualCluster(
102
102
  name="name",
103
103
 
104
104
  # the properties below are optional
105
+ security_configuration_id="securityConfigurationId",
105
106
  tags=[CfnTag(
106
107
  key="key",
107
108
  value="value"
@@ -116,6 +117,7 @@ class CfnVirtualCluster(
116
117
  *,
117
118
  container_provider: typing.Union[_IResolvable_da3f097b, typing.Union["CfnVirtualCluster.ContainerProviderProperty", typing.Dict[builtins.str, typing.Any]]],
118
119
  name: builtins.str,
120
+ security_configuration_id: typing.Optional[builtins.str] = None,
119
121
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
120
122
  ) -> None:
121
123
  '''
@@ -123,6 +125,7 @@ class CfnVirtualCluster(
123
125
  :param id: Construct identifier for this resource (unique in its scope).
124
126
  :param container_provider: The container provider of the virtual cluster.
125
127
  :param name: The name of the virtual cluster.
128
+ :param security_configuration_id: The ID of the security configuration.
126
129
  :param tags: An array of key-value pairs to apply to this resource. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
127
130
  '''
128
131
  if __debug__:
@@ -130,7 +133,10 @@ class CfnVirtualCluster(
130
133
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
131
134
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
132
135
  props = CfnVirtualClusterProps(
133
- container_provider=container_provider, name=name, tags=tags
136
+ container_provider=container_provider,
137
+ name=name,
138
+ security_configuration_id=security_configuration_id,
139
+ tags=tags,
134
140
  )
135
141
 
136
142
  jsii.create(self.__class__, self, [scope, id, props])
@@ -225,6 +231,19 @@ class CfnVirtualCluster(
225
231
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
226
232
  jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
227
233
 
234
+ @builtins.property
235
+ @jsii.member(jsii_name="securityConfigurationId")
236
+ def security_configuration_id(self) -> typing.Optional[builtins.str]:
237
+ '''The ID of the security configuration.'''
238
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "securityConfigurationId"))
239
+
240
+ @security_configuration_id.setter
241
+ def security_configuration_id(self, value: typing.Optional[builtins.str]) -> None:
242
+ if __debug__:
243
+ type_hints = typing.get_type_hints(_typecheckingstub__d05d102efa2c9eb1d454519ceade8e11615a54a4a6a9f26f4883e2051aa27414)
244
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
245
+ jsii.set(self, "securityConfigurationId", value) # pyright: ignore[reportArgumentType]
246
+
228
247
  @builtins.property
229
248
  @jsii.member(jsii_name="tagsRaw")
230
249
  def tags_raw(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
@@ -463,6 +482,7 @@ class CfnVirtualCluster(
463
482
  name_mapping={
464
483
  "container_provider": "containerProvider",
465
484
  "name": "name",
485
+ "security_configuration_id": "securityConfigurationId",
466
486
  "tags": "tags",
467
487
  },
468
488
  )
@@ -472,12 +492,14 @@ class CfnVirtualClusterProps:
472
492
  *,
473
493
  container_provider: typing.Union[_IResolvable_da3f097b, typing.Union[CfnVirtualCluster.ContainerProviderProperty, typing.Dict[builtins.str, typing.Any]]],
474
494
  name: builtins.str,
495
+ security_configuration_id: typing.Optional[builtins.str] = None,
475
496
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
476
497
  ) -> None:
477
498
  '''Properties for defining a ``CfnVirtualCluster``.
478
499
 
479
500
  :param container_provider: The container provider of the virtual cluster.
480
501
  :param name: The name of the virtual cluster.
502
+ :param security_configuration_id: The ID of the security configuration.
481
503
  :param tags: An array of key-value pairs to apply to this resource. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
482
504
 
483
505
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html
@@ -502,6 +524,7 @@ class CfnVirtualClusterProps:
502
524
  name="name",
503
525
 
504
526
  # the properties below are optional
527
+ security_configuration_id="securityConfigurationId",
505
528
  tags=[CfnTag(
506
529
  key="key",
507
530
  value="value"
@@ -512,11 +535,14 @@ class CfnVirtualClusterProps:
512
535
  type_hints = typing.get_type_hints(_typecheckingstub__79f93ead2a436b8c5a2fc364fff5d9da849a851543aa1433cd7ab649d79d55f9)
513
536
  check_type(argname="argument container_provider", value=container_provider, expected_type=type_hints["container_provider"])
514
537
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
538
+ check_type(argname="argument security_configuration_id", value=security_configuration_id, expected_type=type_hints["security_configuration_id"])
515
539
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
516
540
  self._values: typing.Dict[builtins.str, typing.Any] = {
517
541
  "container_provider": container_provider,
518
542
  "name": name,
519
543
  }
544
+ if security_configuration_id is not None:
545
+ self._values["security_configuration_id"] = security_configuration_id
520
546
  if tags is not None:
521
547
  self._values["tags"] = tags
522
548
 
@@ -542,6 +568,15 @@ class CfnVirtualClusterProps:
542
568
  assert result is not None, "Required property 'name' is missing"
543
569
  return typing.cast(builtins.str, result)
544
570
 
571
+ @builtins.property
572
+ def security_configuration_id(self) -> typing.Optional[builtins.str]:
573
+ '''The ID of the security configuration.
574
+
575
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html#cfn-emrcontainers-virtualcluster-securityconfigurationid
576
+ '''
577
+ result = self._values.get("security_configuration_id")
578
+ return typing.cast(typing.Optional[builtins.str], result)
579
+
545
580
  @builtins.property
546
581
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
547
582
  '''An array of key-value pairs to apply to this resource.
@@ -578,6 +613,7 @@ def _typecheckingstub__a06dc2760ceb0de7a449a23941f15987094157d1a540c30fa67c9e49a
578
613
  *,
579
614
  container_provider: typing.Union[_IResolvable_da3f097b, typing.Union[CfnVirtualCluster.ContainerProviderProperty, typing.Dict[builtins.str, typing.Any]]],
580
615
  name: builtins.str,
616
+ security_configuration_id: typing.Optional[builtins.str] = None,
581
617
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
582
618
  ) -> None:
583
619
  """Type checking stubs"""
@@ -607,6 +643,12 @@ def _typecheckingstub__aea4d0052a5a6cb82d57b5655349988466e02d75bbcc22aec370e6810
607
643
  """Type checking stubs"""
608
644
  pass
609
645
 
646
+ def _typecheckingstub__d05d102efa2c9eb1d454519ceade8e11615a54a4a6a9f26f4883e2051aa27414(
647
+ value: typing.Optional[builtins.str],
648
+ ) -> None:
649
+ """Type checking stubs"""
650
+ pass
651
+
610
652
  def _typecheckingstub__b3436f23ae2ca4313aacb96519980906e71e5bc37e7a466a53353480f948e674(
611
653
  value: typing.Optional[typing.List[_CfnTag_f6864754]],
612
654
  ) -> None:
@@ -640,6 +682,7 @@ def _typecheckingstub__79f93ead2a436b8c5a2fc364fff5d9da849a851543aa1433cd7ab649d
640
682
  *,
641
683
  container_provider: typing.Union[_IResolvable_da3f097b, typing.Union[CfnVirtualCluster.ContainerProviderProperty, typing.Dict[builtins.str, typing.Any]]],
642
684
  name: builtins.str,
685
+ security_configuration_id: typing.Optional[builtins.str] = None,
643
686
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
644
687
  ) -> None:
645
688
  """Type checking stubs"""
@@ -10629,27 +10629,21 @@ class RuleProps(EventCommonOptions):
10629
10629
 
10630
10630
  Example::
10631
10631
 
10632
- import aws_cdk.aws_lambda as lambda_
10632
+ import aws_cdk.aws_redshiftserverless as redshiftserverless
10633
10633
 
10634
+ # workgroup: redshiftserverless.CfnWorkgroup
10634
10635
 
10635
- fn = lambda_.Function(self, "MyFunc",
10636
- runtime=lambda_.Runtime.NODEJS_LATEST,
10637
- handler="index.handler",
10638
- code=lambda_.Code.from_inline("exports.handler = handler.toString()")
10639
- )
10640
10636
 
10641
- rule = events.Rule(self, "rule",
10642
- event_pattern=events.EventPattern(
10643
- source=["aws.ec2"]
10644
- )
10637
+ rule = events.Rule(self, "Rule",
10638
+ schedule=events.Schedule.rate(cdk.Duration.hours(1))
10645
10639
  )
10646
10640
 
10647
- queue = sqs.Queue(self, "Queue")
10641
+ dlq = sqs.Queue(self, "DeadLetterQueue")
10648
10642
 
10649
- rule.add_target(targets.LambdaFunction(fn,
10650
- dead_letter_queue=queue, # Optional: add a dead letter queue
10651
- max_event_age=Duration.hours(2), # Optional: set the maxEventAge retry policy
10652
- retry_attempts=2
10643
+ rule.add_target(targets.RedshiftQuery(workgroup.attr_workgroup_workgroup_arn,
10644
+ database="dev",
10645
+ dead_letter_queue=dlq,
10646
+ sql=["SELECT * FROM foo", "SELECT * FROM baz"]
10653
10647
  ))
10654
10648
  '''
10655
10649
  if isinstance(event_pattern, dict):
@@ -11930,18 +11924,15 @@ class EventBus(
11930
11924
 
11931
11925
  Example::
11932
11926
 
11933
- bus = events.EventBus(self, "bus",
11934
- event_bus_name="MyCustomEventBus",
11935
- description="MyCustomEventBus"
11936
- )
11927
+ import aws_cdk.aws_events as events
11937
11928
 
11938
- bus.archive("MyArchive",
11939
- archive_name="MyCustomEventBusArchive",
11940
- description="MyCustomerEventBus Archive",
11941
- event_pattern=events.EventPattern(
11942
- account=[Stack.of(self).account]
11943
- ),
11944
- retention=Duration.days(365)
11929
+ # my_configuration_set: ses.ConfigurationSet
11930
+
11931
+
11932
+ bus = events.EventBus.from_event_bus_name(self, "EventBus", "default")
11933
+
11934
+ my_configuration_set.add_event_destination("ToEventBus",
11935
+ destination=ses.EventDestination.event_bus(bus)
11945
11936
  )
11946
11937
  '''
11947
11938