aws-cdk-lib 2.136.1__py3-none-any.whl → 2.138.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 (61) hide show
  1. aws_cdk/__init__.py +8 -0
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.136.1.jsii.tgz → aws-cdk-lib@2.138.0.jsii.tgz} +0 -0
  4. aws_cdk/assertions/__init__.py +152 -5
  5. aws_cdk/aws_amplify/__init__.py +29 -113
  6. aws_cdk/aws_appconfig/__init__.py +26 -33
  7. aws_cdk/aws_apprunner/__init__.py +5 -2
  8. aws_cdk/aws_appsync/__init__.py +400 -13
  9. aws_cdk/aws_aps/__init__.py +64 -47
  10. aws_cdk/aws_b2bi/__init__.py +2 -6
  11. aws_cdk/aws_backup/__init__.py +27 -23
  12. aws_cdk/aws_batch/__init__.py +103 -0
  13. aws_cdk/aws_bcmdataexports/__init__.py +1114 -0
  14. aws_cdk/aws_chatbot/__init__.py +6 -4
  15. aws_cdk/aws_cleanrooms/__init__.py +526 -3
  16. aws_cdk/aws_cleanroomsml/__init__.py +960 -0
  17. aws_cdk/aws_cloudfront/__init__.py +196 -15
  18. aws_cdk/aws_cloudtrail/__init__.py +10 -10
  19. aws_cdk/aws_cloudwatch/__init__.py +124 -8
  20. aws_cdk/aws_codebuild/__init__.py +27 -22
  21. aws_cdk/aws_codeconnections/__init__.py +435 -0
  22. aws_cdk/aws_cognito/__init__.py +175 -79
  23. aws_cdk/aws_deadline/__init__.py +5394 -0
  24. aws_cdk/aws_ec2/__init__.py +379 -173
  25. aws_cdk/aws_ecr_assets/__init__.py +3 -4
  26. aws_cdk/aws_ecs/__init__.py +240 -1
  27. aws_cdk/aws_efs/__init__.py +2 -2
  28. aws_cdk/aws_elasticache/__init__.py +86 -32
  29. aws_cdk/aws_elasticloadbalancingv2/__init__.py +275 -5
  30. aws_cdk/aws_emr/__init__.py +2 -2
  31. aws_cdk/aws_entityresolution/__init__.py +1982 -773
  32. aws_cdk/aws_globalaccelerator/__init__.py +443 -0
  33. aws_cdk/aws_iam/__init__.py +24 -40
  34. aws_cdk/aws_internetmonitor/__init__.py +14 -6
  35. aws_cdk/aws_ivs/__init__.py +1273 -71
  36. aws_cdk/aws_kms/__init__.py +8 -13
  37. aws_cdk/aws_mediatailor/__init__.py +41 -0
  38. aws_cdk/aws_personalize/__init__.py +8 -6
  39. aws_cdk/aws_pinpoint/__init__.py +5 -3
  40. aws_cdk/aws_pipes/__init__.py +5 -1
  41. aws_cdk/aws_quicksight/__init__.py +12 -6
  42. aws_cdk/aws_rds/__init__.py +355 -85
  43. aws_cdk/aws_route53/__init__.py +591 -18
  44. aws_cdk/aws_s3_deployment/__init__.py +84 -7
  45. aws_cdk/aws_sagemaker/__init__.py +233 -2
  46. aws_cdk/aws_securityhub/__init__.py +4940 -102
  47. aws_cdk/aws_securitylake/__init__.py +1237 -55
  48. aws_cdk/aws_sns/__init__.py +183 -4
  49. aws_cdk/aws_ssmcontacts/__init__.py +11 -4
  50. aws_cdk/aws_stepfunctions/__init__.py +8 -16
  51. aws_cdk/aws_stepfunctions_tasks/__init__.py +676 -1
  52. aws_cdk/aws_transfer/__init__.py +4 -4
  53. aws_cdk/aws_verifiedpermissions/__init__.py +114 -37
  54. aws_cdk/aws_workspacesthinclient/__init__.py +8 -8
  55. aws_cdk/custom_resources/__init__.py +248 -26
  56. {aws_cdk_lib-2.136.1.dist-info → aws_cdk_lib-2.138.0.dist-info}/METADATA +3 -3
  57. {aws_cdk_lib-2.136.1.dist-info → aws_cdk_lib-2.138.0.dist-info}/RECORD +61 -57
  58. {aws_cdk_lib-2.136.1.dist-info → aws_cdk_lib-2.138.0.dist-info}/LICENSE +0 -0
  59. {aws_cdk_lib-2.136.1.dist-info → aws_cdk_lib-2.138.0.dist-info}/NOTICE +0 -0
  60. {aws_cdk_lib-2.136.1.dist-info → aws_cdk_lib-2.138.0.dist-info}/WHEEL +0 -0
  61. {aws_cdk_lib-2.136.1.dist-info → aws_cdk_lib-2.138.0.dist-info}/top_level.txt +0 -0
@@ -234,7 +234,22 @@ lb = elbv2.ApplicationLoadBalancer(self, "LB",
234
234
  cross_zone_enabled=True,
235
235
 
236
236
  # Whether the load balancer blocks traffic through the Internet Gateway (IGW).
237
- deny_all_igw_traffic=False
237
+ deny_all_igw_traffic=False,
238
+
239
+ # Whether to preserve host header in the request to the target
240
+ preserve_host_header=True,
241
+
242
+ # Whether to add the TLS information header to the request
243
+ x_amzn_tls_version_and_cipher_suite_headers=True,
244
+
245
+ # Whether the X-Forwarded-For header should preserve the source port
246
+ preserve_xff_client_port=True,
247
+
248
+ # The processing mode for X-Forwarded-For headers
249
+ xff_header_processing_mode=elbv2.XffHeaderProcessingMode.APPEND,
250
+
251
+ # Whether to allow a load balancer to route requests to targets if it is unable to forward the request to AWS WAF.
252
+ waf_fail_open=True
238
253
  )
239
254
  ```
240
255
 
@@ -770,6 +785,19 @@ target_group = elbv2.ApplicationTargetGroup.from_target_group_attributes(self, "
770
785
 
771
786
  target_group_metrics = target_group.metrics
772
787
  ```
788
+
789
+ ## logicalIds on ExternalApplicationListener.addTargetGroups() and .addAction()
790
+
791
+ By default, the `addTargetGroups()` method does not follow the standard behavior
792
+ of adding a `Rule` suffix to the logicalId of the `ListenerRule` it creates.
793
+ If you are deploying new `ListenerRule`s using `addTargetGroups()` the recommendation
794
+ is to set the `removeRuleSuffixFromLogicalId: false` property.
795
+ If you have `ListenerRule`s deployed using the legacy behavior of `addTargetGroups()`,
796
+ which you need to switch over to being managed by the `addAction()` method,
797
+ then you will need to enable the `removeRuleSuffixFromLogicalId: true` property in the `addAction()` method.
798
+
799
+ `ListenerRule`s have a unique `priority` for a given `Listener`.
800
+ Because the `priority` must be unique, CloudFormation will always fail when creating a new `ListenerRule` to replace the existing one, unless you change the `priority` as well as the logicalId.
773
801
  '''
774
802
  from pkgutil import extend_path
775
803
  __path__ = extend_path(__path__, __name__)
@@ -10597,7 +10625,22 @@ class DesyncMitigationMode(enum.Enum):
10597
10625
  cross_zone_enabled=True,
10598
10626
 
10599
10627
  # Whether the load balancer blocks traffic through the Internet Gateway (IGW).
10600
- deny_all_igw_traffic=False
10628
+ deny_all_igw_traffic=False,
10629
+
10630
+ # Whether to preserve host header in the request to the target
10631
+ preserve_host_header=True,
10632
+
10633
+ # Whether to add the TLS information header to the request
10634
+ x_amzn_tls_version_and_cipher_suite_headers=True,
10635
+
10636
+ # Whether the X-Forwarded-For header should preserve the source port
10637
+ preserve_xff_client_port=True,
10638
+
10639
+ # The processing mode for X-Forwarded-For headers
10640
+ xff_header_processing_mode=elbv2.XffHeaderProcessingMode.APPEND,
10641
+
10642
+ # Whether to allow a load balancer to route requests to targets if it is unable to forward the request to AWS WAF.
10643
+ waf_fail_open=True
10601
10644
  )
10602
10645
  '''
10603
10646
 
@@ -14730,7 +14773,22 @@ class IpAddressType(enum.Enum):
14730
14773
  cross_zone_enabled=True,
14731
14774
 
14732
14775
  # Whether the load balancer blocks traffic through the Internet Gateway (IGW).
14733
- deny_all_igw_traffic=False
14776
+ deny_all_igw_traffic=False,
14777
+
14778
+ # Whether to preserve host header in the request to the target
14779
+ preserve_host_header=True,
14780
+
14781
+ # Whether to add the TLS information header to the request
14782
+ x_amzn_tls_version_and_cipher_suite_headers=True,
14783
+
14784
+ # Whether the X-Forwarded-For header should preserve the source port
14785
+ preserve_xff_client_port=True,
14786
+
14787
+ # The processing mode for X-Forwarded-For headers
14788
+ xff_header_processing_mode=elbv2.XffHeaderProcessingMode.APPEND,
14789
+
14790
+ # Whether to allow a load balancer to route requests to targets if it is unable to forward the request to AWS WAF.
14791
+ waf_fail_open=True
14734
14792
  )
14735
14793
  '''
14736
14794
 
@@ -18095,6 +18153,72 @@ class WeightedTargetGroup:
18095
18153
  )
18096
18154
 
18097
18155
 
18156
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.XffHeaderProcessingMode")
18157
+ class XffHeaderProcessingMode(enum.Enum):
18158
+ '''Processing mode of the X-Forwarded-For header in the HTTP request before the Application Load Balancer sends the request to the target.
18159
+
18160
+ :exampleMetadata: infused
18161
+
18162
+ Example::
18163
+
18164
+ # vpc: ec2.Vpc
18165
+
18166
+
18167
+ lb = elbv2.ApplicationLoadBalancer(self, "LB",
18168
+ vpc=vpc,
18169
+ internet_facing=True,
18170
+
18171
+ # Whether HTTP/2 is enabled
18172
+ http2_enabled=False,
18173
+
18174
+ # The idle timeout value, in seconds
18175
+ idle_timeout=Duration.seconds(1000),
18176
+
18177
+ # Whether HTTP headers with header fields thatare not valid
18178
+ # are removed by the load balancer (true), or routed to targets
18179
+ drop_invalid_header_fields=True,
18180
+
18181
+ # How the load balancer handles requests that might
18182
+ # pose a security risk to your application
18183
+ desync_mitigation_mode=elbv2.DesyncMitigationMode.DEFENSIVE,
18184
+
18185
+ # The type of IP addresses to use.
18186
+ ip_address_type=elbv2.IpAddressType.IPV4,
18187
+
18188
+ # The duration of client keep-alive connections
18189
+ client_keep_alive=Duration.seconds(500),
18190
+
18191
+ # Whether cross-zone load balancing is enabled.
18192
+ cross_zone_enabled=True,
18193
+
18194
+ # Whether the load balancer blocks traffic through the Internet Gateway (IGW).
18195
+ deny_all_igw_traffic=False,
18196
+
18197
+ # Whether to preserve host header in the request to the target
18198
+ preserve_host_header=True,
18199
+
18200
+ # Whether to add the TLS information header to the request
18201
+ x_amzn_tls_version_and_cipher_suite_headers=True,
18202
+
18203
+ # Whether the X-Forwarded-For header should preserve the source port
18204
+ preserve_xff_client_port=True,
18205
+
18206
+ # The processing mode for X-Forwarded-For headers
18207
+ xff_header_processing_mode=elbv2.XffHeaderProcessingMode.APPEND,
18208
+
18209
+ # Whether to allow a load balancer to route requests to targets if it is unable to forward the request to AWS WAF.
18210
+ waf_fail_open=True
18211
+ )
18212
+ '''
18213
+
18214
+ APPEND = "APPEND"
18215
+ '''Application Load Balancer adds the client IP address (of the last hop) to the X-Forwarded-For header in the HTTP request before it sends it to targets.'''
18216
+ PRESERVE = "PRESERVE"
18217
+ '''Application Load Balancer preserves the X-Forwarded-For header in the HTTP request, and sends it to targets without any change.'''
18218
+ REMOVE = "REMOVE"
18219
+ '''Application Load Balancer removes the X-Forwarded-For header in the HTTP request before it sends it to targets.'''
18220
+
18221
+
18098
18222
  @jsii.data_type(
18099
18223
  jsii_type="aws-cdk-lib.aws_elasticloadbalancingv2.AddApplicationActionProps",
18100
18224
  jsii_struct_bases=[AddRuleProps],
@@ -18102,6 +18226,7 @@ class WeightedTargetGroup:
18102
18226
  "conditions": "conditions",
18103
18227
  "priority": "priority",
18104
18228
  "action": "action",
18229
+ "remove_suffix": "removeSuffix",
18105
18230
  },
18106
18231
  )
18107
18232
  class AddApplicationActionProps(AddRuleProps):
@@ -18111,12 +18236,14 @@ class AddApplicationActionProps(AddRuleProps):
18111
18236
  conditions: typing.Optional[typing.Sequence[ListenerCondition]] = None,
18112
18237
  priority: typing.Optional[jsii.Number] = None,
18113
18238
  action: ListenerAction,
18239
+ remove_suffix: typing.Optional[builtins.bool] = None,
18114
18240
  ) -> None:
18115
18241
  '''Properties for adding a new action to a listener.
18116
18242
 
18117
18243
  :param conditions: Rule applies if matches the conditions. Default: - No conditions.
18118
18244
  :param priority: Priority of this target group. The rule with the lowest priority will be used for every request. If priority is not given, these target groups will be added as defaults, and must not have conditions. Priorities must be unique. Default: Target groups are used as defaults
18119
18245
  :param action: Action to perform.
18246
+ :param remove_suffix: ``ListenerRule``s have a ``Rule`` suffix on their logicalId by default. This allows you to remove that suffix. Legacy behavior of the ``addTargetGroups()`` convenience method did not include the ``Rule`` suffix on the logicalId of the generated ``ListenerRule``. At some point, increasing complexity of requirements can require users to switch from the ``addTargetGroups()`` method to the ``addAction()`` method. When migrating ``ListenerRule``s deployed by a legacy version of ``addTargetGroups()``, you will need to enable this flag to avoid changing the logicalId of your resource. Otherwise Cfn will attempt to replace the ``ListenerRule`` and fail. Default: - use standard logicalId with the ``Rule`` suffix
18120
18247
 
18121
18248
  :exampleMetadata: infused
18122
18249
 
@@ -18141,6 +18268,7 @@ class AddApplicationActionProps(AddRuleProps):
18141
18268
  check_type(argname="argument conditions", value=conditions, expected_type=type_hints["conditions"])
18142
18269
  check_type(argname="argument priority", value=priority, expected_type=type_hints["priority"])
18143
18270
  check_type(argname="argument action", value=action, expected_type=type_hints["action"])
18271
+ check_type(argname="argument remove_suffix", value=remove_suffix, expected_type=type_hints["remove_suffix"])
18144
18272
  self._values: typing.Dict[builtins.str, typing.Any] = {
18145
18273
  "action": action,
18146
18274
  }
@@ -18148,6 +18276,8 @@ class AddApplicationActionProps(AddRuleProps):
18148
18276
  self._values["conditions"] = conditions
18149
18277
  if priority is not None:
18150
18278
  self._values["priority"] = priority
18279
+ if remove_suffix is not None:
18280
+ self._values["remove_suffix"] = remove_suffix
18151
18281
 
18152
18282
  @builtins.property
18153
18283
  def conditions(self) -> typing.Optional[typing.List[ListenerCondition]]:
@@ -18182,6 +18312,22 @@ class AddApplicationActionProps(AddRuleProps):
18182
18312
  assert result is not None, "Required property 'action' is missing"
18183
18313
  return typing.cast(ListenerAction, result)
18184
18314
 
18315
+ @builtins.property
18316
+ def remove_suffix(self) -> typing.Optional[builtins.bool]:
18317
+ '''``ListenerRule``s have a ``Rule`` suffix on their logicalId by default. This allows you to remove that suffix.
18318
+
18319
+ Legacy behavior of the ``addTargetGroups()`` convenience method did not include the ``Rule`` suffix on the logicalId of the generated ``ListenerRule``.
18320
+ At some point, increasing complexity of requirements can require users to switch from the ``addTargetGroups()`` method
18321
+ to the ``addAction()`` method.
18322
+ When migrating ``ListenerRule``s deployed by a legacy version of ``addTargetGroups()``,
18323
+ you will need to enable this flag to avoid changing the logicalId of your resource.
18324
+ Otherwise Cfn will attempt to replace the ``ListenerRule`` and fail.
18325
+
18326
+ :default: - use standard logicalId with the ``Rule`` suffix
18327
+ '''
18328
+ result = self._values.get("remove_suffix")
18329
+ return typing.cast(typing.Optional[builtins.bool], result)
18330
+
18185
18331
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
18186
18332
  return isinstance(rhs, self.__class__) and rhs._values == self._values
18187
18333
 
@@ -19128,7 +19274,12 @@ class ApplicationLoadBalancerLookupOptions(BaseLoadBalancerLookupOptions):
19128
19274
  "http2_enabled": "http2Enabled",
19129
19275
  "idle_timeout": "idleTimeout",
19130
19276
  "ip_address_type": "ipAddressType",
19277
+ "preserve_host_header": "preserveHostHeader",
19278
+ "preserve_xff_client_port": "preserveXffClientPort",
19131
19279
  "security_group": "securityGroup",
19280
+ "waf_fail_open": "wafFailOpen",
19281
+ "x_amzn_tls_version_and_cipher_suite_headers": "xAmznTlsVersionAndCipherSuiteHeaders",
19282
+ "xff_header_processing_mode": "xffHeaderProcessingMode",
19132
19283
  },
19133
19284
  )
19134
19285
  class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
@@ -19148,7 +19299,12 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
19148
19299
  http2_enabled: typing.Optional[builtins.bool] = None,
19149
19300
  idle_timeout: typing.Optional[_Duration_4839e8c3] = None,
19150
19301
  ip_address_type: typing.Optional[IpAddressType] = None,
19302
+ preserve_host_header: typing.Optional[builtins.bool] = None,
19303
+ preserve_xff_client_port: typing.Optional[builtins.bool] = None,
19151
19304
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
19305
+ waf_fail_open: typing.Optional[builtins.bool] = None,
19306
+ x_amzn_tls_version_and_cipher_suite_headers: typing.Optional[builtins.bool] = None,
19307
+ xff_header_processing_mode: typing.Optional[XffHeaderProcessingMode] = None,
19152
19308
  ) -> None:
19153
19309
  '''Properties for defining an Application Load Balancer.
19154
19310
 
@@ -19165,8 +19321,14 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
19165
19321
  :param http2_enabled: Indicates whether HTTP/2 is enabled. Default: true
19166
19322
  :param idle_timeout: The load balancer idle timeout, in seconds. Default: 60
19167
19323
  :param ip_address_type: The type of IP addresses to use. Default: IpAddressType.IPV4
19324
+ :param preserve_host_header: Indicates whether the Application Load Balancer should preserve the host header in the HTTP request and send it to the target without any change. Default: false
19325
+ :param preserve_xff_client_port: Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer. Default: false
19168
19326
  :param security_group: Security group to associate with this load balancer. Default: A security group is created
19327
+ :param waf_fail_open: Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Default: false
19328
+ :param x_amzn_tls_version_and_cipher_suite_headers: Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The x-amzn-tls-version header has information about the TLS protocol version negotiated with the client, and the x-amzn-tls-cipher-suite header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. Default: false
19329
+ :param xff_header_processing_mode: Enables you to modify, preserve, or remove the X-Forwarded-For header in the HTTP request before the Application Load Balancer sends the request to the target. Default: XffHeaderProcessingMode.APPEND
19169
19330
 
19331
+ :see: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#load-balancer-attributes
19170
19332
  :exampleMetadata: infused
19171
19333
 
19172
19334
  Example::
@@ -19218,7 +19380,12 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
19218
19380
  check_type(argname="argument http2_enabled", value=http2_enabled, expected_type=type_hints["http2_enabled"])
19219
19381
  check_type(argname="argument idle_timeout", value=idle_timeout, expected_type=type_hints["idle_timeout"])
19220
19382
  check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
19383
+ check_type(argname="argument preserve_host_header", value=preserve_host_header, expected_type=type_hints["preserve_host_header"])
19384
+ check_type(argname="argument preserve_xff_client_port", value=preserve_xff_client_port, expected_type=type_hints["preserve_xff_client_port"])
19221
19385
  check_type(argname="argument security_group", value=security_group, expected_type=type_hints["security_group"])
19386
+ check_type(argname="argument waf_fail_open", value=waf_fail_open, expected_type=type_hints["waf_fail_open"])
19387
+ check_type(argname="argument x_amzn_tls_version_and_cipher_suite_headers", value=x_amzn_tls_version_and_cipher_suite_headers, expected_type=type_hints["x_amzn_tls_version_and_cipher_suite_headers"])
19388
+ check_type(argname="argument xff_header_processing_mode", value=xff_header_processing_mode, expected_type=type_hints["xff_header_processing_mode"])
19222
19389
  self._values: typing.Dict[builtins.str, typing.Any] = {
19223
19390
  "vpc": vpc,
19224
19391
  }
@@ -19246,8 +19413,18 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
19246
19413
  self._values["idle_timeout"] = idle_timeout
19247
19414
  if ip_address_type is not None:
19248
19415
  self._values["ip_address_type"] = ip_address_type
19416
+ if preserve_host_header is not None:
19417
+ self._values["preserve_host_header"] = preserve_host_header
19418
+ if preserve_xff_client_port is not None:
19419
+ self._values["preserve_xff_client_port"] = preserve_xff_client_port
19249
19420
  if security_group is not None:
19250
19421
  self._values["security_group"] = security_group
19422
+ if waf_fail_open is not None:
19423
+ self._values["waf_fail_open"] = waf_fail_open
19424
+ if x_amzn_tls_version_and_cipher_suite_headers is not None:
19425
+ self._values["x_amzn_tls_version_and_cipher_suite_headers"] = x_amzn_tls_version_and_cipher_suite_headers
19426
+ if xff_header_processing_mode is not None:
19427
+ self._values["xff_header_processing_mode"] = xff_header_processing_mode
19251
19428
 
19252
19429
  @builtins.property
19253
19430
  def vpc(self) -> _IVpc_f30d5663:
@@ -19366,6 +19543,24 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
19366
19543
  result = self._values.get("ip_address_type")
19367
19544
  return typing.cast(typing.Optional[IpAddressType], result)
19368
19545
 
19546
+ @builtins.property
19547
+ def preserve_host_header(self) -> typing.Optional[builtins.bool]:
19548
+ '''Indicates whether the Application Load Balancer should preserve the host header in the HTTP request and send it to the target without any change.
19549
+
19550
+ :default: false
19551
+ '''
19552
+ result = self._values.get("preserve_host_header")
19553
+ return typing.cast(typing.Optional[builtins.bool], result)
19554
+
19555
+ @builtins.property
19556
+ def preserve_xff_client_port(self) -> typing.Optional[builtins.bool]:
19557
+ '''Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer.
19558
+
19559
+ :default: false
19560
+ '''
19561
+ result = self._values.get("preserve_xff_client_port")
19562
+ return typing.cast(typing.Optional[builtins.bool], result)
19563
+
19369
19564
  @builtins.property
19370
19565
  def security_group(self) -> typing.Optional[_ISecurityGroup_acf8a799]:
19371
19566
  '''Security group to associate with this load balancer.
@@ -19375,6 +19570,40 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
19375
19570
  result = self._values.get("security_group")
19376
19571
  return typing.cast(typing.Optional[_ISecurityGroup_acf8a799], result)
19377
19572
 
19573
+ @builtins.property
19574
+ def waf_fail_open(self) -> typing.Optional[builtins.bool]:
19575
+ '''Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF.
19576
+
19577
+ :default: false
19578
+ '''
19579
+ result = self._values.get("waf_fail_open")
19580
+ return typing.cast(typing.Optional[builtins.bool], result)
19581
+
19582
+ @builtins.property
19583
+ def x_amzn_tls_version_and_cipher_suite_headers(
19584
+ self,
19585
+ ) -> typing.Optional[builtins.bool]:
19586
+ '''Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target.
19587
+
19588
+ The x-amzn-tls-version header has information about the TLS protocol version negotiated with the client,
19589
+ and the x-amzn-tls-cipher-suite header has information about the cipher suite negotiated with the client.
19590
+
19591
+ Both headers are in OpenSSL format.
19592
+
19593
+ :default: false
19594
+ '''
19595
+ result = self._values.get("x_amzn_tls_version_and_cipher_suite_headers")
19596
+ return typing.cast(typing.Optional[builtins.bool], result)
19597
+
19598
+ @builtins.property
19599
+ def xff_header_processing_mode(self) -> typing.Optional[XffHeaderProcessingMode]:
19600
+ '''Enables you to modify, preserve, or remove the X-Forwarded-For header in the HTTP request before the Application Load Balancer sends the request to the target.
19601
+
19602
+ :default: XffHeaderProcessingMode.APPEND
19603
+ '''
19604
+ result = self._values.get("xff_header_processing_mode")
19605
+ return typing.cast(typing.Optional[XffHeaderProcessingMode], result)
19606
+
19378
19607
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
19379
19608
  return isinstance(rhs, self.__class__) and rhs._values == self._values
19380
19609
 
@@ -19739,6 +19968,7 @@ class IApplicationListener(
19739
19968
  id: builtins.str,
19740
19969
  *,
19741
19970
  action: ListenerAction,
19971
+ remove_suffix: typing.Optional[builtins.bool] = None,
19742
19972
  conditions: typing.Optional[typing.Sequence[ListenerCondition]] = None,
19743
19973
  priority: typing.Optional[jsii.Number] = None,
19744
19974
  ) -> None:
@@ -19756,6 +19986,7 @@ class IApplicationListener(
19756
19986
 
19757
19987
  :param id: -
19758
19988
  :param action: Action to perform.
19989
+ :param remove_suffix: ``ListenerRule``s have a ``Rule`` suffix on their logicalId by default. This allows you to remove that suffix. Legacy behavior of the ``addTargetGroups()`` convenience method did not include the ``Rule`` suffix on the logicalId of the generated ``ListenerRule``. At some point, increasing complexity of requirements can require users to switch from the ``addTargetGroups()`` method to the ``addAction()`` method. When migrating ``ListenerRule``s deployed by a legacy version of ``addTargetGroups()``, you will need to enable this flag to avoid changing the logicalId of your resource. Otherwise Cfn will attempt to replace the ``ListenerRule`` and fail. Default: - use standard logicalId with the ``Rule`` suffix
19759
19990
  :param conditions: Rule applies if matches the conditions. Default: - No conditions.
19760
19991
  :param priority: Priority of this target group. The rule with the lowest priority will be used for every request. If priority is not given, these target groups will be added as defaults, and must not have conditions. Priorities must be unique. Default: Target groups are used as defaults
19761
19992
  '''
@@ -19871,6 +20102,7 @@ class _IApplicationListenerProxy(
19871
20102
  id: builtins.str,
19872
20103
  *,
19873
20104
  action: ListenerAction,
20105
+ remove_suffix: typing.Optional[builtins.bool] = None,
19874
20106
  conditions: typing.Optional[typing.Sequence[ListenerCondition]] = None,
19875
20107
  priority: typing.Optional[jsii.Number] = None,
19876
20108
  ) -> None:
@@ -19888,6 +20120,7 @@ class _IApplicationListenerProxy(
19888
20120
 
19889
20121
  :param id: -
19890
20122
  :param action: Action to perform.
20123
+ :param remove_suffix: ``ListenerRule``s have a ``Rule`` suffix on their logicalId by default. This allows you to remove that suffix. Legacy behavior of the ``addTargetGroups()`` convenience method did not include the ``Rule`` suffix on the logicalId of the generated ``ListenerRule``. At some point, increasing complexity of requirements can require users to switch from the ``addTargetGroups()`` method to the ``addAction()`` method. When migrating ``ListenerRule``s deployed by a legacy version of ``addTargetGroups()``, you will need to enable this flag to avoid changing the logicalId of your resource. Otherwise Cfn will attempt to replace the ``ListenerRule`` and fail. Default: - use standard logicalId with the ``Rule`` suffix
19891
20124
  :param conditions: Rule applies if matches the conditions. Default: - No conditions.
19892
20125
  :param priority: Priority of this target group. The rule with the lowest priority will be used for every request. If priority is not given, these target groups will be added as defaults, and must not have conditions. Priorities must be unique. Default: Target groups are used as defaults
19893
20126
  '''
@@ -19895,7 +20128,10 @@ class _IApplicationListenerProxy(
19895
20128
  type_hints = typing.get_type_hints(_typecheckingstub__078c8c060ef52d807e9a62da847c7c1f9a2fb0a3f7bf8900246c80b1d9ff0a2e)
19896
20129
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
19897
20130
  props = AddApplicationActionProps(
19898
- action=action, conditions=conditions, priority=priority
20131
+ action=action,
20132
+ remove_suffix=remove_suffix,
20133
+ conditions=conditions,
20134
+ priority=priority,
19899
20135
  )
19900
20136
 
19901
20137
  return typing.cast(None, jsii.invoke(self, "addAction", [id, props]))
@@ -21047,6 +21283,7 @@ class ApplicationListener(
21047
21283
  id: builtins.str,
21048
21284
  *,
21049
21285
  action: ListenerAction,
21286
+ remove_suffix: typing.Optional[builtins.bool] = None,
21050
21287
  conditions: typing.Optional[typing.Sequence[ListenerCondition]] = None,
21051
21288
  priority: typing.Optional[jsii.Number] = None,
21052
21289
  ) -> None:
@@ -21062,6 +21299,7 @@ class ApplicationListener(
21062
21299
 
21063
21300
  :param id: -
21064
21301
  :param action: Action to perform.
21302
+ :param remove_suffix: ``ListenerRule``s have a ``Rule`` suffix on their logicalId by default. This allows you to remove that suffix. Legacy behavior of the ``addTargetGroups()`` convenience method did not include the ``Rule`` suffix on the logicalId of the generated ``ListenerRule``. At some point, increasing complexity of requirements can require users to switch from the ``addTargetGroups()`` method to the ``addAction()`` method. When migrating ``ListenerRule``s deployed by a legacy version of ``addTargetGroups()``, you will need to enable this flag to avoid changing the logicalId of your resource. Otherwise Cfn will attempt to replace the ``ListenerRule`` and fail. Default: - use standard logicalId with the ``Rule`` suffix
21065
21303
  :param conditions: Rule applies if matches the conditions. Default: - No conditions.
21066
21304
  :param priority: Priority of this target group. The rule with the lowest priority will be used for every request. If priority is not given, these target groups will be added as defaults, and must not have conditions. Priorities must be unique. Default: Target groups are used as defaults
21067
21305
  '''
@@ -21069,7 +21307,10 @@ class ApplicationListener(
21069
21307
  type_hints = typing.get_type_hints(_typecheckingstub__646bd302ed3a63a28a30ea3b62d2e003bf976ae981493560776ad112cacb8001)
21070
21308
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
21071
21309
  props = AddApplicationActionProps(
21072
- action=action, conditions=conditions, priority=priority
21310
+ action=action,
21311
+ remove_suffix=remove_suffix,
21312
+ conditions=conditions,
21313
+ priority=priority,
21073
21314
  )
21074
21315
 
21075
21316
  return typing.cast(None, jsii.invoke(self, "addAction", [id, props]))
@@ -21287,7 +21528,12 @@ class ApplicationLoadBalancer(
21287
21528
  http2_enabled: typing.Optional[builtins.bool] = None,
21288
21529
  idle_timeout: typing.Optional[_Duration_4839e8c3] = None,
21289
21530
  ip_address_type: typing.Optional[IpAddressType] = None,
21531
+ preserve_host_header: typing.Optional[builtins.bool] = None,
21532
+ preserve_xff_client_port: typing.Optional[builtins.bool] = None,
21290
21533
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
21534
+ waf_fail_open: typing.Optional[builtins.bool] = None,
21535
+ x_amzn_tls_version_and_cipher_suite_headers: typing.Optional[builtins.bool] = None,
21536
+ xff_header_processing_mode: typing.Optional[XffHeaderProcessingMode] = None,
21291
21537
  vpc: _IVpc_f30d5663,
21292
21538
  cross_zone_enabled: typing.Optional[builtins.bool] = None,
21293
21539
  deletion_protection: typing.Optional[builtins.bool] = None,
@@ -21305,7 +21551,12 @@ class ApplicationLoadBalancer(
21305
21551
  :param http2_enabled: Indicates whether HTTP/2 is enabled. Default: true
21306
21552
  :param idle_timeout: The load balancer idle timeout, in seconds. Default: 60
21307
21553
  :param ip_address_type: The type of IP addresses to use. Default: IpAddressType.IPV4
21554
+ :param preserve_host_header: Indicates whether the Application Load Balancer should preserve the host header in the HTTP request and send it to the target without any change. Default: false
21555
+ :param preserve_xff_client_port: Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer. Default: false
21308
21556
  :param security_group: Security group to associate with this load balancer. Default: A security group is created
21557
+ :param waf_fail_open: Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Default: false
21558
+ :param x_amzn_tls_version_and_cipher_suite_headers: Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The x-amzn-tls-version header has information about the TLS protocol version negotiated with the client, and the x-amzn-tls-cipher-suite header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. Default: false
21559
+ :param xff_header_processing_mode: Enables you to modify, preserve, or remove the X-Forwarded-For header in the HTTP request before the Application Load Balancer sends the request to the target. Default: XffHeaderProcessingMode.APPEND
21309
21560
  :param vpc: The VPC network to place the load balancer in.
21310
21561
  :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers.
21311
21562
  :param deletion_protection: Indicates whether deletion protection is enabled. Default: false
@@ -21325,7 +21576,12 @@ class ApplicationLoadBalancer(
21325
21576
  http2_enabled=http2_enabled,
21326
21577
  idle_timeout=idle_timeout,
21327
21578
  ip_address_type=ip_address_type,
21579
+ preserve_host_header=preserve_host_header,
21580
+ preserve_xff_client_port=preserve_xff_client_port,
21328
21581
  security_group=security_group,
21582
+ waf_fail_open=waf_fail_open,
21583
+ x_amzn_tls_version_and_cipher_suite_headers=x_amzn_tls_version_and_cipher_suite_headers,
21584
+ xff_header_processing_mode=xff_header_processing_mode,
21329
21585
  vpc=vpc,
21330
21586
  cross_zone_enabled=cross_zone_enabled,
21331
21587
  deletion_protection=deletion_protection,
@@ -23298,6 +23554,7 @@ __all__ = [
23298
23554
  "TargetType",
23299
23555
  "UnauthenticatedAction",
23300
23556
  "WeightedTargetGroup",
23557
+ "XffHeaderProcessingMode",
23301
23558
  ]
23302
23559
 
23303
23560
  publication.publish()
@@ -24991,6 +25248,7 @@ def _typecheckingstub__4107bd237140ac5f517872385fdbe42c3d9200e34f993d6b71eb7a020
24991
25248
  conditions: typing.Optional[typing.Sequence[ListenerCondition]] = None,
24992
25249
  priority: typing.Optional[jsii.Number] = None,
24993
25250
  action: ListenerAction,
25251
+ remove_suffix: typing.Optional[builtins.bool] = None,
24994
25252
  ) -> None:
24995
25253
  """Type checking stubs"""
24996
25254
  pass
@@ -25082,7 +25340,12 @@ def _typecheckingstub__e43cf75024913d9be0d5d621a5f2c2c7be60a57898a54967cd54179b2
25082
25340
  http2_enabled: typing.Optional[builtins.bool] = None,
25083
25341
  idle_timeout: typing.Optional[_Duration_4839e8c3] = None,
25084
25342
  ip_address_type: typing.Optional[IpAddressType] = None,
25343
+ preserve_host_header: typing.Optional[builtins.bool] = None,
25344
+ preserve_xff_client_port: typing.Optional[builtins.bool] = None,
25085
25345
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
25346
+ waf_fail_open: typing.Optional[builtins.bool] = None,
25347
+ x_amzn_tls_version_and_cipher_suite_headers: typing.Optional[builtins.bool] = None,
25348
+ xff_header_processing_mode: typing.Optional[XffHeaderProcessingMode] = None,
25086
25349
  ) -> None:
25087
25350
  """Type checking stubs"""
25088
25351
  pass
@@ -25118,6 +25381,7 @@ def _typecheckingstub__078c8c060ef52d807e9a62da847c7c1f9a2fb0a3f7bf8900246c80b1d
25118
25381
  id: builtins.str,
25119
25382
  *,
25120
25383
  action: ListenerAction,
25384
+ remove_suffix: typing.Optional[builtins.bool] = None,
25121
25385
  conditions: typing.Optional[typing.Sequence[ListenerCondition]] = None,
25122
25386
  priority: typing.Optional[jsii.Number] = None,
25123
25387
  ) -> None:
@@ -25372,6 +25636,7 @@ def _typecheckingstub__646bd302ed3a63a28a30ea3b62d2e003bf976ae981493560776ad112c
25372
25636
  id: builtins.str,
25373
25637
  *,
25374
25638
  action: ListenerAction,
25639
+ remove_suffix: typing.Optional[builtins.bool] = None,
25375
25640
  conditions: typing.Optional[typing.Sequence[ListenerCondition]] = None,
25376
25641
  priority: typing.Optional[jsii.Number] = None,
25377
25642
  ) -> None:
@@ -25432,7 +25697,12 @@ def _typecheckingstub__22d249b6cdbe3ce0dfc1a873ef276c65fe89ce6a5dba0603fae0a5755
25432
25697
  http2_enabled: typing.Optional[builtins.bool] = None,
25433
25698
  idle_timeout: typing.Optional[_Duration_4839e8c3] = None,
25434
25699
  ip_address_type: typing.Optional[IpAddressType] = None,
25700
+ preserve_host_header: typing.Optional[builtins.bool] = None,
25701
+ preserve_xff_client_port: typing.Optional[builtins.bool] = None,
25435
25702
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
25703
+ waf_fail_open: typing.Optional[builtins.bool] = None,
25704
+ x_amzn_tls_version_and_cipher_suite_headers: typing.Optional[builtins.bool] = None,
25705
+ xff_header_processing_mode: typing.Optional[XffHeaderProcessingMode] = None,
25436
25706
  vpc: _IVpc_f30d5663,
25437
25707
  cross_zone_enabled: typing.Optional[builtins.bool] = None,
25438
25708
  deletion_protection: typing.Optional[builtins.bool] = None,
@@ -3047,7 +3047,7 @@ class CfnCluster(
3047
3047
  :param emr_managed_master_security_group: The identifier of the Amazon EC2 security group for the master node. If you specify ``EmrManagedMasterSecurityGroup`` , you must also specify ``EmrManagedSlaveSecurityGroup`` .
3048
3048
  :param emr_managed_slave_security_group: The identifier of the Amazon EC2 security group for the core and task nodes. If you specify ``EmrManagedSlaveSecurityGroup`` , you must also specify ``EmrManagedMasterSecurityGroup`` .
3049
3049
  :param hadoop_version: Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop version for the cluster. Valid inputs are "0.18" (no longer maintained), "0.20" (no longer maintained), "0.20.205" (no longer maintained), "1.0.3", "2.2.0", or "2.4.0". If you do not set this value, the default of 0.18 is used, unless the ``AmiVersion`` parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used.
3050
- :param keep_job_flow_alive_when_no_steps: Specifies whether the cluster should remain available after completing all steps. Defaults to ``true`` . For more information about configuring cluster termination, see `Control Cluster Termination <https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html>`_ in the *EMR Management Guide* .
3050
+ :param keep_job_flow_alive_when_no_steps: Specifies whether the cluster should remain available after completing all steps. Defaults to ``false`` . For more information about configuring cluster termination, see `Control Cluster Termination <https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html>`_ in the *EMR Management Guide* .
3051
3051
  :param master_instance_fleet: Describes the EC2 instances and instance configurations for the master instance fleet when using clusters with the instance fleet configuration.
3052
3052
  :param master_instance_group: Describes the EC2 instances and instance configurations for the master instance group when using clusters with the uniform instance group configuration.
3053
3053
  :param placement: The Availability Zone in which the cluster runs.
@@ -3637,7 +3637,7 @@ class CfnCluster(
3637
3637
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
3638
3638
  '''Specifies whether the cluster should remain available after completing all steps.
3639
3639
 
3640
- Defaults to ``true`` . For more information about configuring cluster termination, see `Control Cluster Termination <https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html>`_ in the *EMR Management Guide* .
3640
+ Defaults to ``false`` . For more information about configuring cluster termination, see `Control Cluster Termination <https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html>`_ in the *EMR Management Guide* .
3641
3641
 
3642
3642
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-jobflowinstancesconfig.html#cfn-emr-cluster-jobflowinstancesconfig-keepjobflowalivewhennosteps
3643
3643
  '''