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

@@ -2280,6 +2280,7 @@ class CfnRuleGroup(
2280
2280
  # all: Any
2281
2281
  # all_query_arguments: Any
2282
2282
  # and_statement_property_: wafv2.CfnRuleGroup.AndStatementProperty
2283
+ # asn: Any
2283
2284
  # forwarded_ip: Any
2284
2285
  # http_method: Any
2285
2286
  # ip: Any
@@ -2293,6 +2294,13 @@ class CfnRuleGroup(
2293
2294
  and_statement_property = wafv2.CfnRuleGroup.AndStatementProperty(
2294
2295
  statements=[wafv2.CfnRuleGroup.StatementProperty(
2295
2296
  and_statement=and_statement_property_,
2297
+ asn_match_statement=wafv2.CfnRuleGroup.AsnMatchStatementProperty(
2298
+ asn_list=[123],
2299
+ forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
2300
+ fallback_behavior="fallbackBehavior",
2301
+ header_name="headerName"
2302
+ )
2303
+ ),
2296
2304
  byte_match_statement=wafv2.CfnRuleGroup.ByteMatchStatementProperty(
2297
2305
  field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
2298
2306
  all_query_arguments=all_query_arguments,
@@ -2386,6 +2394,7 @@ class CfnRuleGroup(
2386
2394
 
2387
2395
  # the properties below are optional
2388
2396
  custom_keys=[wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
2397
+ asn=asn,
2389
2398
  cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
2390
2399
  name="name",
2391
2400
  text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
@@ -2756,6 +2765,83 @@ class CfnRuleGroup(
2756
2765
  k + "=" + repr(v) for k, v in self._values.items()
2757
2766
  )
2758
2767
 
2768
+ @jsii.data_type(
2769
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.AsnMatchStatementProperty",
2770
+ jsii_struct_bases=[],
2771
+ name_mapping={
2772
+ "asn_list": "asnList",
2773
+ "forwarded_ip_config": "forwardedIpConfig",
2774
+ },
2775
+ )
2776
+ class AsnMatchStatementProperty:
2777
+ def __init__(
2778
+ self,
2779
+ *,
2780
+ asn_list: typing.Optional[typing.Union[typing.Sequence[jsii.Number], _IResolvable_da3f097b]] = None,
2781
+ forwarded_ip_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.ForwardedIPConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2782
+ ) -> None:
2783
+ '''
2784
+ :param asn_list:
2785
+ :param forwarded_ip_config:
2786
+
2787
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-asnmatchstatement.html
2788
+ :exampleMetadata: fixture=_generated
2789
+
2790
+ Example::
2791
+
2792
+ # The code below shows an example of how to instantiate this type.
2793
+ # The values are placeholders you should change.
2794
+ from aws_cdk import aws_wafv2 as wafv2
2795
+
2796
+ asn_match_statement_property = wafv2.CfnRuleGroup.AsnMatchStatementProperty(
2797
+ asn_list=[123],
2798
+ forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
2799
+ fallback_behavior="fallbackBehavior",
2800
+ header_name="headerName"
2801
+ )
2802
+ )
2803
+ '''
2804
+ if __debug__:
2805
+ type_hints = typing.get_type_hints(_typecheckingstub__1b7bfd70c769fabe423acc42aa4ce7a934b8907c56a69421327294c209c8da78)
2806
+ check_type(argname="argument asn_list", value=asn_list, expected_type=type_hints["asn_list"])
2807
+ check_type(argname="argument forwarded_ip_config", value=forwarded_ip_config, expected_type=type_hints["forwarded_ip_config"])
2808
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
2809
+ if asn_list is not None:
2810
+ self._values["asn_list"] = asn_list
2811
+ if forwarded_ip_config is not None:
2812
+ self._values["forwarded_ip_config"] = forwarded_ip_config
2813
+
2814
+ @builtins.property
2815
+ def asn_list(
2816
+ self,
2817
+ ) -> typing.Optional[typing.Union[typing.List[jsii.Number], _IResolvable_da3f097b]]:
2818
+ '''
2819
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-asnmatchstatement.html#cfn-wafv2-rulegroup-asnmatchstatement-asnlist
2820
+ '''
2821
+ result = self._values.get("asn_list")
2822
+ return typing.cast(typing.Optional[typing.Union[typing.List[jsii.Number], _IResolvable_da3f097b]], result)
2823
+
2824
+ @builtins.property
2825
+ def forwarded_ip_config(
2826
+ self,
2827
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.ForwardedIPConfigurationProperty"]]:
2828
+ '''
2829
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-asnmatchstatement.html#cfn-wafv2-rulegroup-asnmatchstatement-forwardedipconfig
2830
+ '''
2831
+ result = self._values.get("forwarded_ip_config")
2832
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.ForwardedIPConfigurationProperty"]], result)
2833
+
2834
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2835
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2836
+
2837
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2838
+ return not (rhs == self)
2839
+
2840
+ def __repr__(self) -> str:
2841
+ return "AsnMatchStatementProperty(%s)" % ", ".join(
2842
+ k + "=" + repr(v) for k, v in self._values.items()
2843
+ )
2844
+
2759
2845
  @jsii.data_type(
2760
2846
  jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.BlockProperty",
2761
2847
  jsii_struct_bases=[],
@@ -5615,6 +5701,7 @@ class CfnRuleGroup(
5615
5701
 
5616
5702
  # all: Any
5617
5703
  # all_query_arguments: Any
5704
+ # asn: Any
5618
5705
  # forwarded_ip: Any
5619
5706
  # http_method: Any
5620
5707
  # ip: Any
@@ -5631,6 +5718,13 @@ class CfnRuleGroup(
5631
5718
  and_statement=wafv2.CfnRuleGroup.AndStatementProperty(
5632
5719
  statements=[statement_property_]
5633
5720
  ),
5721
+ asn_match_statement=wafv2.CfnRuleGroup.AsnMatchStatementProperty(
5722
+ asn_list=[123],
5723
+ forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
5724
+ fallback_behavior="fallbackBehavior",
5725
+ header_name="headerName"
5726
+ )
5727
+ ),
5634
5728
  byte_match_statement=wafv2.CfnRuleGroup.ByteMatchStatementProperty(
5635
5729
  field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
5636
5730
  all_query_arguments=all_query_arguments,
@@ -5722,6 +5816,7 @@ class CfnRuleGroup(
5722
5816
 
5723
5817
  # the properties below are optional
5724
5818
  custom_keys=[wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
5819
+ asn=asn,
5725
5820
  cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
5726
5821
  name="name",
5727
5822
  text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
@@ -6120,6 +6215,7 @@ class CfnRuleGroup(
6120
6215
 
6121
6216
  # all: Any
6122
6217
  # all_query_arguments: Any
6218
+ # asn: Any
6123
6219
  # forwarded_ip: Any
6124
6220
  # http_method: Any
6125
6221
  # ip: Any
@@ -6136,6 +6232,13 @@ class CfnRuleGroup(
6136
6232
  and_statement=wafv2.CfnRuleGroup.AndStatementProperty(
6137
6233
  statements=[statement_property_]
6138
6234
  ),
6235
+ asn_match_statement=wafv2.CfnRuleGroup.AsnMatchStatementProperty(
6236
+ asn_list=[123],
6237
+ forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
6238
+ fallback_behavior="fallbackBehavior",
6239
+ header_name="headerName"
6240
+ )
6241
+ ),
6139
6242
  byte_match_statement=wafv2.CfnRuleGroup.ByteMatchStatementProperty(
6140
6243
  field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
6141
6244
  all_query_arguments=all_query_arguments,
@@ -6227,6 +6330,7 @@ class CfnRuleGroup(
6227
6330
 
6228
6331
  # the properties below are optional
6229
6332
  custom_keys=[wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
6333
+ asn=asn,
6230
6334
  cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
6231
6335
  name="name",
6232
6336
  text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
@@ -6601,6 +6705,7 @@ class CfnRuleGroup(
6601
6705
  jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty",
6602
6706
  jsii_struct_bases=[],
6603
6707
  name_mapping={
6708
+ "asn": "asn",
6604
6709
  "cookie": "cookie",
6605
6710
  "forwarded_ip": "forwardedIp",
6606
6711
  "header": "header",
@@ -6618,6 +6723,7 @@ class CfnRuleGroup(
6618
6723
  def __init__(
6619
6724
  self,
6620
6725
  *,
6726
+ asn: typing.Any = None,
6621
6727
  cookie: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.RateLimitCookieProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6622
6728
  forwarded_ip: typing.Any = None,
6623
6729
  header: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.RateLimitHeaderProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -6636,6 +6742,7 @@ class CfnRuleGroup(
6636
6742
 
6637
6743
  Web requests that are missing any of the components specified in the aggregation keys are omitted from the rate-based rule evaluation and handling.
6638
6744
 
6745
+ :param asn: Specifies the request's ASN as an aggregate key for a rate-based rule.
6639
6746
  :param cookie: Use the value of a cookie in the request as an aggregate key. Each distinct value in the cookie contributes to the aggregation instance. If you use a single cookie as your custom key, then each value fully defines an aggregation instance.
6640
6747
  :param forwarded_ip: Use the first IP address in an HTTP header as an aggregate key. Each distinct forwarded IP address contributes to the aggregation instance. When you specify an IP or forwarded IP in the custom key settings, you must also specify at least one other key to use. You can aggregate on only the forwarded IP address by specifying ``FORWARDED_IP`` in your rate-based statement's ``AggregateKeyType`` . With this option, you must specify the header to use in the rate-based rule's ``ForwardedIPConfig`` property.
6641
6748
  :param header: Use the value of a header in the request as an aggregate key. Each distinct value in the header contributes to the aggregation instance. If you use a single header as your custom key, then each value fully defines an aggregation instance.
@@ -6657,11 +6764,13 @@ class CfnRuleGroup(
6657
6764
  # The values are placeholders you should change.
6658
6765
  from aws_cdk import aws_wafv2 as wafv2
6659
6766
 
6767
+ # asn: Any
6660
6768
  # forwarded_ip: Any
6661
6769
  # http_method: Any
6662
6770
  # ip: Any
6663
6771
 
6664
6772
  rate_based_statement_custom_key_property = wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
6773
+ asn=asn,
6665
6774
  cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
6666
6775
  name="name",
6667
6776
  text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
@@ -6711,6 +6820,7 @@ class CfnRuleGroup(
6711
6820
  '''
6712
6821
  if __debug__:
6713
6822
  type_hints = typing.get_type_hints(_typecheckingstub__6bc232408309212f7b145d76c0106073269f111e106ab6d74a4d2168f41f248b)
6823
+ check_type(argname="argument asn", value=asn, expected_type=type_hints["asn"])
6714
6824
  check_type(argname="argument cookie", value=cookie, expected_type=type_hints["cookie"])
6715
6825
  check_type(argname="argument forwarded_ip", value=forwarded_ip, expected_type=type_hints["forwarded_ip"])
6716
6826
  check_type(argname="argument header", value=header, expected_type=type_hints["header"])
@@ -6723,6 +6833,8 @@ class CfnRuleGroup(
6723
6833
  check_type(argname="argument query_string", value=query_string, expected_type=type_hints["query_string"])
6724
6834
  check_type(argname="argument uri_path", value=uri_path, expected_type=type_hints["uri_path"])
6725
6835
  self._values: typing.Dict[builtins.str, typing.Any] = {}
6836
+ if asn is not None:
6837
+ self._values["asn"] = asn
6726
6838
  if cookie is not None:
6727
6839
  self._values["cookie"] = cookie
6728
6840
  if forwarded_ip is not None:
@@ -6746,6 +6858,15 @@ class CfnRuleGroup(
6746
6858
  if uri_path is not None:
6747
6859
  self._values["uri_path"] = uri_path
6748
6860
 
6861
+ @builtins.property
6862
+ def asn(self) -> typing.Any:
6863
+ '''Specifies the request's ASN as an aggregate key for a rate-based rule.
6864
+
6865
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratebasedstatementcustomkey.html#cfn-wafv2-rulegroup-ratebasedstatementcustomkey-asn
6866
+ '''
6867
+ result = self._values.get("asn")
6868
+ return typing.cast(typing.Any, result)
6869
+
6749
6870
  @builtins.property
6750
6871
  def cookie(
6751
6872
  self,
@@ -6986,6 +7107,7 @@ class CfnRuleGroup(
6986
7107
 
6987
7108
  # all: Any
6988
7109
  # all_query_arguments: Any
7110
+ # asn: Any
6989
7111
  # forwarded_ip: Any
6990
7112
  # http_method: Any
6991
7113
  # ip: Any
@@ -7003,6 +7125,7 @@ class CfnRuleGroup(
7003
7125
 
7004
7126
  # the properties below are optional
7005
7127
  custom_keys=[wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
7128
+ asn=asn,
7006
7129
  cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
7007
7130
  name="name",
7008
7131
  text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
@@ -7058,6 +7181,13 @@ class CfnRuleGroup(
7058
7181
  and_statement=wafv2.CfnRuleGroup.AndStatementProperty(
7059
7182
  statements=[statement_property_]
7060
7183
  ),
7184
+ asn_match_statement=wafv2.CfnRuleGroup.AsnMatchStatementProperty(
7185
+ asn_list=[123],
7186
+ forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
7187
+ fallback_behavior="fallbackBehavior",
7188
+ header_name="headerName"
7189
+ )
7190
+ ),
7061
7191
  byte_match_statement=wafv2.CfnRuleGroup.ByteMatchStatementProperty(
7062
7192
  field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
7063
7193
  all_query_arguments=all_query_arguments,
@@ -8625,6 +8755,7 @@ class CfnRuleGroup(
8625
8755
  # all: Any
8626
8756
  # allow: Any
8627
8757
  # all_query_arguments: Any
8758
+ # asn: Any
8628
8759
  # block: Any
8629
8760
  # captcha: Any
8630
8761
  # challenge: Any
@@ -8646,6 +8777,13 @@ class CfnRuleGroup(
8646
8777
  and_statement=wafv2.CfnRuleGroup.AndStatementProperty(
8647
8778
  statements=[statement_property_]
8648
8779
  ),
8780
+ asn_match_statement=wafv2.CfnRuleGroup.AsnMatchStatementProperty(
8781
+ asn_list=[123],
8782
+ forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
8783
+ fallback_behavior="fallbackBehavior",
8784
+ header_name="headerName"
8785
+ )
8786
+ ),
8649
8787
  byte_match_statement=wafv2.CfnRuleGroup.ByteMatchStatementProperty(
8650
8788
  field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
8651
8789
  all_query_arguments=all_query_arguments,
@@ -8739,6 +8877,7 @@ class CfnRuleGroup(
8739
8877
 
8740
8878
  # the properties below are optional
8741
8879
  custom_keys=[wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
8880
+ asn=asn,
8742
8881
  cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
8743
8882
  name="name",
8744
8883
  text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
@@ -9721,6 +9860,7 @@ class CfnRuleGroup(
9721
9860
  jsii_struct_bases=[],
9722
9861
  name_mapping={
9723
9862
  "and_statement": "andStatement",
9863
+ "asn_match_statement": "asnMatchStatement",
9724
9864
  "byte_match_statement": "byteMatchStatement",
9725
9865
  "geo_match_statement": "geoMatchStatement",
9726
9866
  "ip_set_reference_statement": "ipSetReferenceStatement",
@@ -9740,6 +9880,7 @@ class CfnRuleGroup(
9740
9880
  self,
9741
9881
  *,
9742
9882
  and_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.AndStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
9883
+ asn_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.AsnMatchStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
9743
9884
  byte_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.ByteMatchStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
9744
9885
  geo_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.GeoMatchStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
9745
9886
  ip_set_reference_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.IPSetReferenceStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -9756,6 +9897,7 @@ class CfnRuleGroup(
9756
9897
  '''The processing guidance for a rule, used by AWS WAF to determine whether a web request matches the rule.
9757
9898
 
9758
9899
  :param and_statement: A logical rule statement used to combine other rule statements with AND logic. You provide more than one ``Statement`` within the ``AndStatement`` .
9900
+ :param asn_match_statement:
9759
9901
  :param byte_match_statement: A rule statement that defines a string match search for AWS WAF to apply to web requests. The byte match statement provides the bytes to search for, the location in requests that you want AWS WAF to search, and other settings. The bytes to search for are typically a string that corresponds with ASCII characters. In the AWS WAF console and the developer guide, this is called a string match statement.
9760
9902
  :param geo_match_statement: A rule statement that labels web requests by country and region and that matches against web requests based on country code. A geo match rule labels every request that it inspects regardless of whether it finds a match. - To manage requests only by country, you can use this statement by itself and specify the countries that you want to match against in the ``CountryCodes`` array. - Otherwise, configure your geo match rule with Count action so that it only labels requests. Then, add one or more label match rules to run after the geo match rule and configure them to match against the geographic labels and handle the requests as needed. AWS WAF labels requests using the alpha-2 country and region codes from the International Organization for Standardization (ISO) 3166 standard. AWS WAF determines the codes using either the IP address in the web request origin or, if you specify it, the address in the geo match ``ForwardedIPConfig`` . If you use the web request origin, the label formats are ``awswaf:clientip:geo:region:<ISO country code>-<ISO region code>`` and ``awswaf:clientip:geo:country:<ISO country code>`` . If you use a forwarded IP address, the label formats are ``awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code>`` and ``awswaf:forwardedip:geo:country:<ISO country code>`` . For additional details, see `Geographic match rule statement <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-geo-match.html>`_ in the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`_ .
9761
9903
  :param ip_set_reference_statement: A rule statement used to detect web requests coming from particular IP addresses or address ranges. To use this, create an ``IPSet`` that specifies the addresses you want to detect, then use the ARN of that set in this statement. Each IP set rule statement references an IP set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, AWS WAF automatically updates all rules that reference it.
@@ -9780,6 +9922,7 @@ class CfnRuleGroup(
9780
9922
 
9781
9923
  # all: Any
9782
9924
  # all_query_arguments: Any
9925
+ # asn: Any
9783
9926
  # forwarded_ip: Any
9784
9927
  # http_method: Any
9785
9928
  # ip: Any
@@ -9794,6 +9937,13 @@ class CfnRuleGroup(
9794
9937
  and_statement=wafv2.CfnRuleGroup.AndStatementProperty(
9795
9938
  statements=[statement_property_]
9796
9939
  ),
9940
+ asn_match_statement=wafv2.CfnRuleGroup.AsnMatchStatementProperty(
9941
+ asn_list=[123],
9942
+ forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
9943
+ fallback_behavior="fallbackBehavior",
9944
+ header_name="headerName"
9945
+ )
9946
+ ),
9797
9947
  byte_match_statement=wafv2.CfnRuleGroup.ByteMatchStatementProperty(
9798
9948
  field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
9799
9949
  all_query_arguments=all_query_arguments,
@@ -9887,6 +10037,7 @@ class CfnRuleGroup(
9887
10037
 
9888
10038
  # the properties below are optional
9889
10039
  custom_keys=[wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
10040
+ asn=asn,
9890
10041
  cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
9891
10042
  name="name",
9892
10043
  text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
@@ -10227,6 +10378,7 @@ class CfnRuleGroup(
10227
10378
  if __debug__:
10228
10379
  type_hints = typing.get_type_hints(_typecheckingstub__c10bc3e3f69d89ad06f25a44daee62e7de586ae4280e39230f29c24092fe4a4f)
10229
10380
  check_type(argname="argument and_statement", value=and_statement, expected_type=type_hints["and_statement"])
10381
+ check_type(argname="argument asn_match_statement", value=asn_match_statement, expected_type=type_hints["asn_match_statement"])
10230
10382
  check_type(argname="argument byte_match_statement", value=byte_match_statement, expected_type=type_hints["byte_match_statement"])
10231
10383
  check_type(argname="argument geo_match_statement", value=geo_match_statement, expected_type=type_hints["geo_match_statement"])
10232
10384
  check_type(argname="argument ip_set_reference_statement", value=ip_set_reference_statement, expected_type=type_hints["ip_set_reference_statement"])
@@ -10242,6 +10394,8 @@ class CfnRuleGroup(
10242
10394
  self._values: typing.Dict[builtins.str, typing.Any] = {}
10243
10395
  if and_statement is not None:
10244
10396
  self._values["and_statement"] = and_statement
10397
+ if asn_match_statement is not None:
10398
+ self._values["asn_match_statement"] = asn_match_statement
10245
10399
  if byte_match_statement is not None:
10246
10400
  self._values["byte_match_statement"] = byte_match_statement
10247
10401
  if geo_match_statement is not None:
@@ -10280,6 +10434,16 @@ class CfnRuleGroup(
10280
10434
  result = self._values.get("and_statement")
10281
10435
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.AndStatementProperty"]], result)
10282
10436
 
10437
+ @builtins.property
10438
+ def asn_match_statement(
10439
+ self,
10440
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.AsnMatchStatementProperty"]]:
10441
+ '''
10442
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-asnmatchstatement
10443
+ '''
10444
+ result = self._values.get("asn_match_statement")
10445
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.AsnMatchStatementProperty"]], result)
10446
+
10283
10447
  @builtins.property
10284
10448
  def byte_match_statement(
10285
10449
  self,
@@ -11191,7 +11355,7 @@ class CfnWebACL(
11191
11355
  :param data_protection_config: Specifies data protection to apply to the web request data for the web ACL. This is a web ACL level data protection option. The data protection that you configure for the web ACL alters the data that's available for any other data collection activity, including your AWS WAF logging destinations, web ACL request sampling, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging.
11192
11356
  :param description: A description of the web ACL that helps with identification.
11193
11357
  :param name: The name of the web ACL. You cannot change the name of a web ACL after you create it.
11194
- :param on_source_d_do_s_protection_config:
11358
+ :param on_source_d_do_s_protection_config: Configures the level of DDoS protection that applies to web ACLs associated with Application Load Balancers.
11195
11359
  :param rules: The rule statements used to identify the web requests that you want to manage. Each rule includes one top-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.
11196
11360
  :param tags: Key:value pairs associated with an AWS resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each AWS resource. .. epigraph:: To modify tags on existing resources, use the AWS WAF APIs or command line interface. With AWS CloudFormation , you can only add tags to AWS WAF resources during resource creation.
11197
11361
  :param token_domains: Specifies the domains that AWS WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When AWS WAF provides a token, it uses the domain of the AWS resource that the web ACL is protecting. If you don't specify a list of token domains, AWS WAF accepts tokens only for the domain of the protected resource. With a token domain list, AWS WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.
@@ -11472,6 +11636,7 @@ class CfnWebACL(
11472
11636
  @builtins.property
11473
11637
  @jsii.member(jsii_name="onSourceDDoSProtectionConfig")
11474
11638
  def on_source_d_do_s_protection_config(self) -> typing.Any:
11639
+ '''Configures the level of DDoS protection that applies to web ACLs associated with Application Load Balancers.'''
11475
11640
  return typing.cast(typing.Any, jsii.get(self, "onSourceDDoSProtectionConfig"))
11476
11641
 
11477
11642
  @on_source_d_do_s_protection_config.setter
@@ -11550,6 +11715,8 @@ class CfnWebACL(
11550
11715
 
11551
11716
  This configuration is used in ``ManagedRuleGroupConfig`` .
11552
11717
 
11718
+ For additional information about this and the other intelligent threat mitigation rule groups, see `Intelligent threat mitigation in AWS WAF <https://docs.aws.amazon.com/waf/latest/developerguide/waf-managed-protections>`_ and `AWS Managed Rules rule groups list <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list>`_ in the *AWS WAF Developer Guide* .
11719
+
11553
11720
  :param creation_path: The path of the account creation endpoint for your application. This is the page on your website that accepts the completed registration form for a new user. This page must accept ``POST`` requests. For example, for the URL ``https://example.com/web/newaccount`` , you would provide the path ``/web/newaccount`` . Account creation page paths that start with the path that you provide are considered a match. For example ``/web/newaccount`` matches the account creation paths ``/web/newaccount`` , ``/web/newaccount/`` , ``/web/newaccountPage`` , and ``/web/newaccount/thisPage`` , but doesn't match the path ``/home/web/newaccount`` or ``/website/newaccount`` .
11554
11721
  :param registration_page_path: The path of the account registration endpoint for your application. This is the page on your website that presents the registration form to new users. .. epigraph:: This page must accept ``GET`` text/html requests. For example, for the URL ``https://example.com/web/registration`` , you would provide the path ``/web/registration`` . Registration page paths that start with the path that you provide are considered a match. For example ``/web/registration`` matches the registration paths ``/web/registration`` , ``/web/registration/`` , ``/web/registrationPage`` , and ``/web/registration/thisPage`` , but doesn't match the path ``/home/web/registration`` or ``/website/registration`` .
11555
11722
  :param request_inspection: The criteria for inspecting account creation requests, used by the ACFP rule group to validate and track account creation attempts.
@@ -11735,6 +11902,8 @@ class CfnWebACL(
11735
11902
 
11736
11903
  This configuration is used in ``ManagedRuleGroupConfig`` .
11737
11904
 
11905
+ For additional information about this and the other intelligent threat mitigation rule groups, see `Intelligent threat mitigation in AWS WAF <https://docs.aws.amazon.com/waf/latest/developerguide/waf-managed-protections>`_ and `AWS Managed Rules rule groups list <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list>`_ in the *AWS WAF Developer Guide* .
11906
+
11738
11907
  :param login_path: The path of the login endpoint for your application. For example, for the URL ``https://example.com/web/login`` , you would provide the path ``/web/login`` . Login paths that start with the path that you provide are considered a match. For example ``/web/login`` matches the login paths ``/web/login`` , ``/web/login/`` , ``/web/loginPage`` , and ``/web/login/thisPage`` , but doesn't match the login path ``/home/web/login`` or ``/website/login`` . The rule group inspects only HTTP ``POST`` requests to your specified login endpoint.
11739
11908
  :param enable_regex_in_path: Allow the use of regular expressions in the login page path.
11740
11909
  :param request_inspection: The criteria for inspecting login requests, used by the ATP rule group to validate credentials usage.
@@ -11865,6 +12034,93 @@ class CfnWebACL(
11865
12034
  k + "=" + repr(v) for k, v in self._values.items()
11866
12035
  )
11867
12036
 
12037
+ @jsii.data_type(
12038
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.AWSManagedRulesAntiDDoSRuleSetProperty",
12039
+ jsii_struct_bases=[],
12040
+ name_mapping={
12041
+ "client_side_action_config": "clientSideActionConfig",
12042
+ "sensitivity_to_block": "sensitivityToBlock",
12043
+ },
12044
+ )
12045
+ class AWSManagedRulesAntiDDoSRuleSetProperty:
12046
+ def __init__(
12047
+ self,
12048
+ *,
12049
+ client_side_action_config: typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.ClientSideActionConfigProperty", typing.Dict[builtins.str, typing.Any]]],
12050
+ sensitivity_to_block: typing.Optional[builtins.str] = None,
12051
+ ) -> None:
12052
+ '''Configures how to use the AntiDDOS AWS managed rule group in the web ACL.
12053
+
12054
+ :param client_side_action_config: Client side action config for AntiDDOS AMR.
12055
+ :param sensitivity_to_block:
12056
+
12057
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-awsmanagedrulesantiddosruleset.html
12058
+ :exampleMetadata: fixture=_generated
12059
+
12060
+ Example::
12061
+
12062
+ # The code below shows an example of how to instantiate this type.
12063
+ # The values are placeholders you should change.
12064
+ from aws_cdk import aws_wafv2 as wafv2
12065
+
12066
+ a_wSManaged_rules_anti_dDo_sRule_set_property = wafv2.CfnWebACL.AWSManagedRulesAntiDDoSRuleSetProperty(
12067
+ client_side_action_config=wafv2.CfnWebACL.ClientSideActionConfigProperty(
12068
+ challenge=wafv2.CfnWebACL.ClientSideActionProperty(
12069
+ usage_of_action="usageOfAction",
12070
+
12071
+ # the properties below are optional
12072
+ exempt_uri_regular_expressions=[wafv2.CfnWebACL.RegexProperty(
12073
+ regex_string="regexString"
12074
+ )],
12075
+ sensitivity="sensitivity"
12076
+ )
12077
+ ),
12078
+
12079
+ # the properties below are optional
12080
+ sensitivity_to_block="sensitivityToBlock"
12081
+ )
12082
+ '''
12083
+ if __debug__:
12084
+ type_hints = typing.get_type_hints(_typecheckingstub__9315d92e3528c134a601f6cf9b27df2b90e082b1e29a17eadf8fbf68ac10e8c4)
12085
+ check_type(argname="argument client_side_action_config", value=client_side_action_config, expected_type=type_hints["client_side_action_config"])
12086
+ check_type(argname="argument sensitivity_to_block", value=sensitivity_to_block, expected_type=type_hints["sensitivity_to_block"])
12087
+ self._values: typing.Dict[builtins.str, typing.Any] = {
12088
+ "client_side_action_config": client_side_action_config,
12089
+ }
12090
+ if sensitivity_to_block is not None:
12091
+ self._values["sensitivity_to_block"] = sensitivity_to_block
12092
+
12093
+ @builtins.property
12094
+ def client_side_action_config(
12095
+ self,
12096
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnWebACL.ClientSideActionConfigProperty"]:
12097
+ '''Client side action config for AntiDDOS AMR.
12098
+
12099
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-awsmanagedrulesantiddosruleset.html#cfn-wafv2-webacl-awsmanagedrulesantiddosruleset-clientsideactionconfig
12100
+ '''
12101
+ result = self._values.get("client_side_action_config")
12102
+ assert result is not None, "Required property 'client_side_action_config' is missing"
12103
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnWebACL.ClientSideActionConfigProperty"], result)
12104
+
12105
+ @builtins.property
12106
+ def sensitivity_to_block(self) -> typing.Optional[builtins.str]:
12107
+ '''
12108
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-awsmanagedrulesantiddosruleset.html#cfn-wafv2-webacl-awsmanagedrulesantiddosruleset-sensitivitytoblock
12109
+ '''
12110
+ result = self._values.get("sensitivity_to_block")
12111
+ return typing.cast(typing.Optional[builtins.str], result)
12112
+
12113
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
12114
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12115
+
12116
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12117
+ return not (rhs == self)
12118
+
12119
+ def __repr__(self) -> str:
12120
+ return "AWSManagedRulesAntiDDoSRuleSetProperty(%s)" % ", ".join(
12121
+ k + "=" + repr(v) for k, v in self._values.items()
12122
+ )
12123
+
11868
12124
  @jsii.data_type(
11869
12125
  jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.AWSManagedRulesBotControlRuleSetProperty",
11870
12126
  jsii_struct_bases=[],
@@ -11884,6 +12140,8 @@ class CfnWebACL(
11884
12140
 
11885
12141
  This configuration is used in ``ManagedRuleGroupConfig`` .
11886
12142
 
12143
+ For additional information about this and the other intelligent threat mitigation rule groups, see `Intelligent threat mitigation in AWS WAF <https://docs.aws.amazon.com/waf/latest/developerguide/waf-managed-protections>`_ and `AWS Managed Rules rule groups list <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list>`_ in the *AWS WAF Developer Guide* .
12144
+
11887
12145
  :param inspection_level: The inspection level to use for the Bot Control rule group. The common level is the least expensive. The targeted level includes all common level rules and adds rules with more advanced inspection criteria. For details, see `AWS WAF Bot Control rule group <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html>`_ in the *AWS WAF Developer Guide* .
11888
12146
  :param enable_machine_learning: Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Machine learning is required for the Bot Control rules ``TGT_ML_CoordinatedActivityLow`` and ``TGT_ML_CoordinatedActivityMedium`` , which inspect for anomalous behavior that might indicate distributed, coordinated bot activity. For more information about this choice, see the listing for these rules in the table at `Bot Control rules listing <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html#aws-managed-rule-groups-bot-rules>`_ in the *AWS WAF Developer Guide* . Default: ``TRUE``
11889
12147
 
@@ -12076,6 +12334,83 @@ class CfnWebACL(
12076
12334
  k + "=" + repr(v) for k, v in self._values.items()
12077
12335
  )
12078
12336
 
12337
+ @jsii.data_type(
12338
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.AsnMatchStatementProperty",
12339
+ jsii_struct_bases=[],
12340
+ name_mapping={
12341
+ "asn_list": "asnList",
12342
+ "forwarded_ip_config": "forwardedIpConfig",
12343
+ },
12344
+ )
12345
+ class AsnMatchStatementProperty:
12346
+ def __init__(
12347
+ self,
12348
+ *,
12349
+ asn_list: typing.Optional[typing.Union[typing.Sequence[jsii.Number], _IResolvable_da3f097b]] = None,
12350
+ forwarded_ip_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.ForwardedIPConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
12351
+ ) -> None:
12352
+ '''
12353
+ :param asn_list:
12354
+ :param forwarded_ip_config:
12355
+
12356
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-asnmatchstatement.html
12357
+ :exampleMetadata: fixture=_generated
12358
+
12359
+ Example::
12360
+
12361
+ # The code below shows an example of how to instantiate this type.
12362
+ # The values are placeholders you should change.
12363
+ from aws_cdk import aws_wafv2 as wafv2
12364
+
12365
+ asn_match_statement_property = wafv2.CfnWebACL.AsnMatchStatementProperty(
12366
+ asn_list=[123],
12367
+ forwarded_ip_config=wafv2.CfnWebACL.ForwardedIPConfigurationProperty(
12368
+ fallback_behavior="fallbackBehavior",
12369
+ header_name="headerName"
12370
+ )
12371
+ )
12372
+ '''
12373
+ if __debug__:
12374
+ type_hints = typing.get_type_hints(_typecheckingstub__8995ed18208bf9dcca46075f2ba4072467a8327472896fee5efcf1415648dfe8)
12375
+ check_type(argname="argument asn_list", value=asn_list, expected_type=type_hints["asn_list"])
12376
+ check_type(argname="argument forwarded_ip_config", value=forwarded_ip_config, expected_type=type_hints["forwarded_ip_config"])
12377
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
12378
+ if asn_list is not None:
12379
+ self._values["asn_list"] = asn_list
12380
+ if forwarded_ip_config is not None:
12381
+ self._values["forwarded_ip_config"] = forwarded_ip_config
12382
+
12383
+ @builtins.property
12384
+ def asn_list(
12385
+ self,
12386
+ ) -> typing.Optional[typing.Union[typing.List[jsii.Number], _IResolvable_da3f097b]]:
12387
+ '''
12388
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-asnmatchstatement.html#cfn-wafv2-webacl-asnmatchstatement-asnlist
12389
+ '''
12390
+ result = self._values.get("asn_list")
12391
+ return typing.cast(typing.Optional[typing.Union[typing.List[jsii.Number], _IResolvable_da3f097b]], result)
12392
+
12393
+ @builtins.property
12394
+ def forwarded_ip_config(
12395
+ self,
12396
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.ForwardedIPConfigurationProperty"]]:
12397
+ '''
12398
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-asnmatchstatement.html#cfn-wafv2-webacl-asnmatchstatement-forwardedipconfig
12399
+ '''
12400
+ result = self._values.get("forwarded_ip_config")
12401
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.ForwardedIPConfigurationProperty"]], result)
12402
+
12403
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
12404
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12405
+
12406
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12407
+ return not (rhs == self)
12408
+
12409
+ def __repr__(self) -> str:
12410
+ return "AsnMatchStatementProperty(%s)" % ", ".join(
12411
+ k + "=" + repr(v) for k, v in self._values.items()
12412
+ )
12413
+
12079
12414
  @jsii.data_type(
12080
12415
  jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.AssociationConfigProperty",
12081
12416
  jsii_struct_bases=[],
@@ -12805,6 +13140,165 @@ class CfnWebACL(
12805
13140
  k + "=" + repr(v) for k, v in self._values.items()
12806
13141
  )
12807
13142
 
13143
+ @jsii.data_type(
13144
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.ClientSideActionConfigProperty",
13145
+ jsii_struct_bases=[],
13146
+ name_mapping={"challenge": "challenge"},
13147
+ )
13148
+ class ClientSideActionConfigProperty:
13149
+ def __init__(
13150
+ self,
13151
+ *,
13152
+ challenge: typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.ClientSideActionProperty", typing.Dict[builtins.str, typing.Any]]],
13153
+ ) -> None:
13154
+ '''Client side action config for AntiDDOS AMR.
13155
+
13156
+ :param challenge: Client side action config for AntiDDOS AMR.
13157
+
13158
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-clientsideactionconfig.html
13159
+ :exampleMetadata: fixture=_generated
13160
+
13161
+ Example::
13162
+
13163
+ # The code below shows an example of how to instantiate this type.
13164
+ # The values are placeholders you should change.
13165
+ from aws_cdk import aws_wafv2 as wafv2
13166
+
13167
+ client_side_action_config_property = wafv2.CfnWebACL.ClientSideActionConfigProperty(
13168
+ challenge=wafv2.CfnWebACL.ClientSideActionProperty(
13169
+ usage_of_action="usageOfAction",
13170
+
13171
+ # the properties below are optional
13172
+ exempt_uri_regular_expressions=[wafv2.CfnWebACL.RegexProperty(
13173
+ regex_string="regexString"
13174
+ )],
13175
+ sensitivity="sensitivity"
13176
+ )
13177
+ )
13178
+ '''
13179
+ if __debug__:
13180
+ type_hints = typing.get_type_hints(_typecheckingstub__776e223dfae595baf3dc144792b2d7158c77847ddf24785048d19516ebcb955b)
13181
+ check_type(argname="argument challenge", value=challenge, expected_type=type_hints["challenge"])
13182
+ self._values: typing.Dict[builtins.str, typing.Any] = {
13183
+ "challenge": challenge,
13184
+ }
13185
+
13186
+ @builtins.property
13187
+ def challenge(
13188
+ self,
13189
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnWebACL.ClientSideActionProperty"]:
13190
+ '''Client side action config for AntiDDOS AMR.
13191
+
13192
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-clientsideactionconfig.html#cfn-wafv2-webacl-clientsideactionconfig-challenge
13193
+ '''
13194
+ result = self._values.get("challenge")
13195
+ assert result is not None, "Required property 'challenge' is missing"
13196
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnWebACL.ClientSideActionProperty"], result)
13197
+
13198
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
13199
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
13200
+
13201
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
13202
+ return not (rhs == self)
13203
+
13204
+ def __repr__(self) -> str:
13205
+ return "ClientSideActionConfigProperty(%s)" % ", ".join(
13206
+ k + "=" + repr(v) for k, v in self._values.items()
13207
+ )
13208
+
13209
+ @jsii.data_type(
13210
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.ClientSideActionProperty",
13211
+ jsii_struct_bases=[],
13212
+ name_mapping={
13213
+ "usage_of_action": "usageOfAction",
13214
+ "exempt_uri_regular_expressions": "exemptUriRegularExpressions",
13215
+ "sensitivity": "sensitivity",
13216
+ },
13217
+ )
13218
+ class ClientSideActionProperty:
13219
+ def __init__(
13220
+ self,
13221
+ *,
13222
+ usage_of_action: builtins.str,
13223
+ exempt_uri_regular_expressions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.RegexProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
13224
+ sensitivity: typing.Optional[builtins.str] = None,
13225
+ ) -> None:
13226
+ '''Client side action config for AntiDDOS AMR.
13227
+
13228
+ :param usage_of_action:
13229
+ :param exempt_uri_regular_expressions:
13230
+ :param sensitivity:
13231
+
13232
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-clientsideaction.html
13233
+ :exampleMetadata: fixture=_generated
13234
+
13235
+ Example::
13236
+
13237
+ # The code below shows an example of how to instantiate this type.
13238
+ # The values are placeholders you should change.
13239
+ from aws_cdk import aws_wafv2 as wafv2
13240
+
13241
+ client_side_action_property = wafv2.CfnWebACL.ClientSideActionProperty(
13242
+ usage_of_action="usageOfAction",
13243
+
13244
+ # the properties below are optional
13245
+ exempt_uri_regular_expressions=[wafv2.CfnWebACL.RegexProperty(
13246
+ regex_string="regexString"
13247
+ )],
13248
+ sensitivity="sensitivity"
13249
+ )
13250
+ '''
13251
+ if __debug__:
13252
+ type_hints = typing.get_type_hints(_typecheckingstub__de331114f33ba80cf8bd042358ad9467ab930574012abea7782f175fd2a7b649)
13253
+ check_type(argname="argument usage_of_action", value=usage_of_action, expected_type=type_hints["usage_of_action"])
13254
+ check_type(argname="argument exempt_uri_regular_expressions", value=exempt_uri_regular_expressions, expected_type=type_hints["exempt_uri_regular_expressions"])
13255
+ check_type(argname="argument sensitivity", value=sensitivity, expected_type=type_hints["sensitivity"])
13256
+ self._values: typing.Dict[builtins.str, typing.Any] = {
13257
+ "usage_of_action": usage_of_action,
13258
+ }
13259
+ if exempt_uri_regular_expressions is not None:
13260
+ self._values["exempt_uri_regular_expressions"] = exempt_uri_regular_expressions
13261
+ if sensitivity is not None:
13262
+ self._values["sensitivity"] = sensitivity
13263
+
13264
+ @builtins.property
13265
+ def usage_of_action(self) -> builtins.str:
13266
+ '''
13267
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-clientsideaction.html#cfn-wafv2-webacl-clientsideaction-usageofaction
13268
+ '''
13269
+ result = self._values.get("usage_of_action")
13270
+ assert result is not None, "Required property 'usage_of_action' is missing"
13271
+ return typing.cast(builtins.str, result)
13272
+
13273
+ @builtins.property
13274
+ def exempt_uri_regular_expressions(
13275
+ self,
13276
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnWebACL.RegexProperty"]]]]:
13277
+ '''
13278
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-clientsideaction.html#cfn-wafv2-webacl-clientsideaction-exempturiregularexpressions
13279
+ '''
13280
+ result = self._values.get("exempt_uri_regular_expressions")
13281
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnWebACL.RegexProperty"]]]], result)
13282
+
13283
+ @builtins.property
13284
+ def sensitivity(self) -> typing.Optional[builtins.str]:
13285
+ '''
13286
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-clientsideaction.html#cfn-wafv2-webacl-clientsideaction-sensitivity
13287
+ '''
13288
+ result = self._values.get("sensitivity")
13289
+ return typing.cast(typing.Optional[builtins.str], result)
13290
+
13291
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
13292
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
13293
+
13294
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
13295
+ return not (rhs == self)
13296
+
13297
+ def __repr__(self) -> str:
13298
+ return "ClientSideActionProperty(%s)" % ", ".join(
13299
+ k + "=" + repr(v) for k, v in self._values.items()
13300
+ )
13301
+
12808
13302
  @jsii.data_type(
12809
13303
  jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.CookieMatchPatternProperty",
12810
13304
  jsii_struct_bases=[],
@@ -15456,6 +15950,7 @@ class CfnWebACL(
15456
15950
  jsii_struct_bases=[],
15457
15951
  name_mapping={
15458
15952
  "aws_managed_rules_acfp_rule_set": "awsManagedRulesAcfpRuleSet",
15953
+ "aws_managed_rules_anti_d_do_s_rule_set": "awsManagedRulesAntiDDoSRuleSet",
15459
15954
  "aws_managed_rules_atp_rule_set": "awsManagedRulesAtpRuleSet",
15460
15955
  "aws_managed_rules_bot_control_rule_set": "awsManagedRulesBotControlRuleSet",
15461
15956
  "login_path": "loginPath",
@@ -15469,6 +15964,7 @@ class CfnWebACL(
15469
15964
  self,
15470
15965
  *,
15471
15966
  aws_managed_rules_acfp_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.AWSManagedRulesACFPRuleSetProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
15967
+ aws_managed_rules_anti_d_do_s_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.AWSManagedRulesAntiDDoSRuleSetProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
15472
15968
  aws_managed_rules_atp_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.AWSManagedRulesATPRuleSetProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
15473
15969
  aws_managed_rules_bot_control_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.AWSManagedRulesBotControlRuleSetProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
15474
15970
  login_path: typing.Optional[builtins.str] = None,
@@ -15485,6 +15981,7 @@ class CfnWebACL(
15485
15981
  - Use the ``AWSManagedRulesBotControlRuleSet`` configuration object to configure the protection level that you want the Bot Control rule group to use.
15486
15982
 
15487
15983
  :param aws_managed_rules_acfp_rule_set: Additional configuration for using the account creation fraud prevention (ACFP) managed rule group, ``AWSManagedRulesACFPRuleSet`` . Use this to provide account creation request information to the rule group. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to account creation requests. For information about using the ACFP managed rule group, see `AWS WAF Fraud Control account creation fraud prevention (ACFP) rule group <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-acfp.html>`_ and `AWS WAF Fraud Control account creation fraud prevention (ACFP) <https://docs.aws.amazon.com/waf/latest/developerguide/waf-acfp.html>`_ in the *AWS WAF Developer Guide* .
15984
+ :param aws_managed_rules_anti_d_do_s_rule_set: Configures how to use the AntiDDOS AWS managed rule group in the web ACL.
15488
15985
  :param aws_managed_rules_atp_rule_set: Additional configuration for using the account takeover prevention (ATP) managed rule group, ``AWSManagedRulesATPRuleSet`` . Use this to provide login request information to the rule group. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to login requests. This configuration replaces the individual configuration fields in ``ManagedRuleGroupConfig`` and provides additional feature configuration. For information about using the ATP managed rule group, see `AWS WAF Fraud Control account takeover prevention (ATP) rule group <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-atp.html>`_ and `AWS WAF Fraud Control account takeover prevention (ATP) <https://docs.aws.amazon.com/waf/latest/developerguide/waf-atp.html>`_ in the *AWS WAF Developer Guide* .
15489
15986
  :param aws_managed_rules_bot_control_rule_set: Additional configuration for using the Bot Control managed rule group. Use this to specify the inspection level that you want to use. For information about using the Bot Control managed rule group, see `AWS WAF Bot Control rule group <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html>`_ and `AWS WAF Bot Control <https://docs.aws.amazon.com/waf/latest/developerguide/waf-bot-control.html>`_ in the *AWS WAF Developer Guide* .
15490
15987
  :param login_path: .. epigraph:: Instead of this setting, provide your configuration under ``AWSManagedRulesATPRuleSet`` .
@@ -15549,6 +16046,22 @@ class CfnWebACL(
15549
16046
  )
15550
16047
  )
15551
16048
  ),
16049
+ aws_managed_rules_anti_dDo_sRule_set=wafv2.CfnWebACL.AWSManagedRulesAntiDDoSRuleSetProperty(
16050
+ client_side_action_config=wafv2.CfnWebACL.ClientSideActionConfigProperty(
16051
+ challenge=wafv2.CfnWebACL.ClientSideActionProperty(
16052
+ usage_of_action="usageOfAction",
16053
+
16054
+ # the properties below are optional
16055
+ exempt_uri_regular_expressions=[wafv2.CfnWebACL.RegexProperty(
16056
+ regex_string="regexString"
16057
+ )],
16058
+ sensitivity="sensitivity"
16059
+ )
16060
+ ),
16061
+
16062
+ # the properties below are optional
16063
+ sensitivity_to_block="sensitivityToBlock"
16064
+ ),
15552
16065
  aws_managed_rules_atp_rule_set=wafv2.CfnWebACL.AWSManagedRulesATPRuleSetProperty(
15553
16066
  login_path="loginPath",
15554
16067
 
@@ -15603,6 +16116,7 @@ class CfnWebACL(
15603
16116
  if __debug__:
15604
16117
  type_hints = typing.get_type_hints(_typecheckingstub__517661cb97cc58c609587fc6ca9907b2e23d8f3cd6e1e4034f3f6d82b85d2d77)
15605
16118
  check_type(argname="argument aws_managed_rules_acfp_rule_set", value=aws_managed_rules_acfp_rule_set, expected_type=type_hints["aws_managed_rules_acfp_rule_set"])
16119
+ check_type(argname="argument aws_managed_rules_anti_d_do_s_rule_set", value=aws_managed_rules_anti_d_do_s_rule_set, expected_type=type_hints["aws_managed_rules_anti_d_do_s_rule_set"])
15606
16120
  check_type(argname="argument aws_managed_rules_atp_rule_set", value=aws_managed_rules_atp_rule_set, expected_type=type_hints["aws_managed_rules_atp_rule_set"])
15607
16121
  check_type(argname="argument aws_managed_rules_bot_control_rule_set", value=aws_managed_rules_bot_control_rule_set, expected_type=type_hints["aws_managed_rules_bot_control_rule_set"])
15608
16122
  check_type(argname="argument login_path", value=login_path, expected_type=type_hints["login_path"])
@@ -15612,6 +16126,8 @@ class CfnWebACL(
15612
16126
  self._values: typing.Dict[builtins.str, typing.Any] = {}
15613
16127
  if aws_managed_rules_acfp_rule_set is not None:
15614
16128
  self._values["aws_managed_rules_acfp_rule_set"] = aws_managed_rules_acfp_rule_set
16129
+ if aws_managed_rules_anti_d_do_s_rule_set is not None:
16130
+ self._values["aws_managed_rules_anti_d_do_s_rule_set"] = aws_managed_rules_anti_d_do_s_rule_set
15615
16131
  if aws_managed_rules_atp_rule_set is not None:
15616
16132
  self._values["aws_managed_rules_atp_rule_set"] = aws_managed_rules_atp_rule_set
15617
16133
  if aws_managed_rules_bot_control_rule_set is not None:
@@ -15640,6 +16156,17 @@ class CfnWebACL(
15640
16156
  result = self._values.get("aws_managed_rules_acfp_rule_set")
15641
16157
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.AWSManagedRulesACFPRuleSetProperty"]], result)
15642
16158
 
16159
+ @builtins.property
16160
+ def aws_managed_rules_anti_d_do_s_rule_set(
16161
+ self,
16162
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.AWSManagedRulesAntiDDoSRuleSetProperty"]]:
16163
+ '''Configures how to use the AntiDDOS AWS managed rule group in the web ACL.
16164
+
16165
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-managedrulegroupconfig.html#cfn-wafv2-webacl-managedrulegroupconfig-awsmanagedrulesantiddosruleset
16166
+ '''
16167
+ result = self._values.get("aws_managed_rules_anti_d_do_s_rule_set")
16168
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.AWSManagedRulesAntiDDoSRuleSetProperty"]], result)
16169
+
15643
16170
  @builtins.property
15644
16171
  def aws_managed_rules_atp_rule_set(
15645
16172
  self,
@@ -15766,8 +16293,8 @@ class CfnWebACL(
15766
16293
  :param name: The name of the managed rule group. You use this, along with the vendor name, to identify the rule group.
15767
16294
  :param vendor_name: The name of the managed rule group vendor. You use this, along with the rule group name, to identify a rule group.
15768
16295
  :param excluded_rules: Rules in the referenced rule group whose actions are set to ``Count`` . .. epigraph:: Instead of this option, use ``RuleActionOverrides`` . It accepts any valid action setting, including ``Count`` .
15769
- :param managed_rule_group_configs: Additional information that's used by a managed rule group. Many managed rule groups don't require this. The rule groups used for intelligent threat mitigation require additional configuration: - Use the ``AWSManagedRulesACFPRuleSet`` configuration object to configure the account creation fraud prevention managed rule group. The configuration includes the registration and sign-up pages of your application and the locations in the account creation request payload of data, such as the user email and phone number fields. - Use the ``AWSManagedRulesATPRuleSet`` configuration object to configure the account takeover prevention managed rule group. The configuration includes the sign-in page of your application and the locations in the login request payload of data such as the username and password. - Use the ``AWSManagedRulesBotControlRuleSet`` configuration object to configure the protection level that you want the Bot Control rule group to use.
15770
- :param rule_action_overrides: Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. .. epigraph:: Take care to verify the rule names in your overrides. If you provide a rule name that doesn't match the name of any rule in the rule group, AWS WAF doesn't return an error and doesn't apply the override setting. You can use overrides for testing, for example you can override all of rule actions to ``Count`` and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.
16296
+ :param managed_rule_group_configs: Additional information that's used by a managed rule group. Many managed rule groups don't require this. The rule groups used for intelligent threat mitigation require additional configuration: - Use the ``AWSManagedRulesACFPRuleSet`` configuration object to configure the account creation fraud prevention managed rule group. The configuration includes the registration and sign-up pages of your application and the locations in the account creation request payload of data, such as the user email and phone number fields. - Use the ``AWSManagedRulesAntiDDoSRuleSet`` configuration object to configure the anti-DDoS managed rule group. The configuration includes the sensitivity levels to use in the rules that typically block and challenge requests that might be participating in DDoS attacks and the specification to use to indicate whether a request can handle a silent browser challenge. - Use the ``AWSManagedRulesATPRuleSet`` configuration object to configure the account takeover prevention managed rule group. The configuration includes the sign-in page of your application and the locations in the login request payload of data such as the username and password. - Use the ``AWSManagedRulesBotControlRuleSet`` configuration object to configure the protection level that you want the Bot Control rule group to use.
16297
+ :param rule_action_overrides: Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. .. epigraph:: Verify the rule names in your overrides carefully. With managed rule groups, AWS WAF silently ignores any override that uses an invalid rule name. With customer-owned rule groups, invalid rule names in your overrides will cause web ACL updates to fail. An invalid rule name is any name that doesn't exactly match the case-sensitive name of an existing rule in the rule group. You can use overrides for testing, for example you can override all of rule actions to ``Count`` and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.
15771
16298
  :param scope_down_statement: An optional nested statement that narrows the scope of the web requests that are evaluated by the managed rule group. Requests are only evaluated by the rule group if they match the scope-down statement. You can use any nestable ``Statement`` in the scope-down statement, and you can nest statements at any level, the same as you can for a rule statement.
15772
16299
  :param version: The version of the managed rule group to use. If you specify this, the version setting is fixed until you change it. If you don't specify this, AWS WAF uses the vendor's default version, and then keeps the version at the vendor's default when the vendor updates the managed rule group settings.
15773
16300
 
@@ -15850,6 +16377,7 @@ class CfnWebACL(
15850
16377
  The rule groups used for intelligent threat mitigation require additional configuration:
15851
16378
 
15852
16379
  - Use the ``AWSManagedRulesACFPRuleSet`` configuration object to configure the account creation fraud prevention managed rule group. The configuration includes the registration and sign-up pages of your application and the locations in the account creation request payload of data, such as the user email and phone number fields.
16380
+ - Use the ``AWSManagedRulesAntiDDoSRuleSet`` configuration object to configure the anti-DDoS managed rule group. The configuration includes the sensitivity levels to use in the rules that typically block and challenge requests that might be participating in DDoS attacks and the specification to use to indicate whether a request can handle a silent browser challenge.
15853
16381
  - Use the ``AWSManagedRulesATPRuleSet`` configuration object to configure the account takeover prevention managed rule group. The configuration includes the sign-in page of your application and the locations in the login request payload of data such as the username and password.
15854
16382
  - Use the ``AWSManagedRulesBotControlRuleSet`` configuration object to configure the protection level that you want the Bot Control rule group to use.
15855
16383
 
@@ -15867,7 +16395,7 @@ class CfnWebACL(
15867
16395
  You specify one override for each rule whose action you want to change.
15868
16396
  .. epigraph::
15869
16397
 
15870
- Take care to verify the rule names in your overrides. If you provide a rule name that doesn't match the name of any rule in the rule group, AWS WAF doesn't return an error and doesn't apply the override setting.
16398
+ Verify the rule names in your overrides carefully. With managed rule groups, AWS WAF silently ignores any override that uses an invalid rule name. With customer-owned rule groups, invalid rule names in your overrides will cause web ACL updates to fail. An invalid rule name is any name that doesn't exactly match the case-sensitive name of an existing rule in the rule group.
15871
16399
 
15872
16400
  You can use overrides for testing, for example you can override all of rule actions to ``Count`` and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.
15873
16401
 
@@ -15967,6 +16495,57 @@ class CfnWebACL(
15967
16495
  k + "=" + repr(v) for k, v in self._values.items()
15968
16496
  )
15969
16497
 
16498
+ @jsii.data_type(
16499
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.OnSourceDDoSProtectionConfigProperty",
16500
+ jsii_struct_bases=[],
16501
+ name_mapping={"alb_low_reputation_mode": "albLowReputationMode"},
16502
+ )
16503
+ class OnSourceDDoSProtectionConfigProperty:
16504
+ def __init__(self, *, alb_low_reputation_mode: builtins.str) -> None:
16505
+ '''Configures the options for on-source DDoS protection provided by supported resource type.
16506
+
16507
+ :param alb_low_reputation_mode:
16508
+
16509
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-onsourceddosprotectionconfig.html
16510
+ :exampleMetadata: fixture=_generated
16511
+
16512
+ Example::
16513
+
16514
+ # The code below shows an example of how to instantiate this type.
16515
+ # The values are placeholders you should change.
16516
+ from aws_cdk import aws_wafv2 as wafv2
16517
+
16518
+ on_source_dDo_sProtection_config_property = wafv2.CfnWebACL.OnSourceDDoSProtectionConfigProperty(
16519
+ alb_low_reputation_mode="albLowReputationMode"
16520
+ )
16521
+ '''
16522
+ if __debug__:
16523
+ type_hints = typing.get_type_hints(_typecheckingstub__b1d55e97c88ee1084655df55da4bb940ea39dc6807c3b4f425073a3a747e0dbc)
16524
+ check_type(argname="argument alb_low_reputation_mode", value=alb_low_reputation_mode, expected_type=type_hints["alb_low_reputation_mode"])
16525
+ self._values: typing.Dict[builtins.str, typing.Any] = {
16526
+ "alb_low_reputation_mode": alb_low_reputation_mode,
16527
+ }
16528
+
16529
+ @builtins.property
16530
+ def alb_low_reputation_mode(self) -> builtins.str:
16531
+ '''
16532
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-onsourceddosprotectionconfig.html#cfn-wafv2-webacl-onsourceddosprotectionconfig-alblowreputationmode
16533
+ '''
16534
+ result = self._values.get("alb_low_reputation_mode")
16535
+ assert result is not None, "Required property 'alb_low_reputation_mode' is missing"
16536
+ return typing.cast(builtins.str, result)
16537
+
16538
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
16539
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
16540
+
16541
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
16542
+ return not (rhs == self)
16543
+
16544
+ def __repr__(self) -> str:
16545
+ return "OnSourceDDoSProtectionConfigProperty(%s)" % ", ".join(
16546
+ k + "=" + repr(v) for k, v in self._values.items()
16547
+ )
16548
+
15970
16549
  @jsii.data_type(
15971
16550
  jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.OrStatementProperty",
15972
16551
  jsii_struct_bases=[],
@@ -16113,6 +16692,7 @@ class CfnWebACL(
16113
16692
  jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.RateBasedStatementCustomKeyProperty",
16114
16693
  jsii_struct_bases=[],
16115
16694
  name_mapping={
16695
+ "asn": "asn",
16116
16696
  "cookie": "cookie",
16117
16697
  "forwarded_ip": "forwardedIp",
16118
16698
  "header": "header",
@@ -16130,6 +16710,7 @@ class CfnWebACL(
16130
16710
  def __init__(
16131
16711
  self,
16132
16712
  *,
16713
+ asn: typing.Any = None,
16133
16714
  cookie: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.RateLimitCookieProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
16134
16715
  forwarded_ip: typing.Any = None,
16135
16716
  header: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.RateLimitHeaderProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -16148,6 +16729,7 @@ class CfnWebACL(
16148
16729
 
16149
16730
  Web requests that are missing any of the components specified in the aggregation keys are omitted from the rate-based rule evaluation and handling.
16150
16731
 
16732
+ :param asn: Specifies the request's ASN as an aggregate key for a rate-based rule.
16151
16733
  :param cookie: Use the value of a cookie in the request as an aggregate key. Each distinct value in the cookie contributes to the aggregation instance. If you use a single cookie as your custom key, then each value fully defines an aggregation instance.
16152
16734
  :param forwarded_ip: Use the first IP address in an HTTP header as an aggregate key. Each distinct forwarded IP address contributes to the aggregation instance. When you specify an IP or forwarded IP in the custom key settings, you must also specify at least one other key to use. You can aggregate on only the forwarded IP address by specifying ``FORWARDED_IP`` in your rate-based statement's ``AggregateKeyType`` . With this option, you must specify the header to use in the rate-based rule's ``ForwardedIPConfig`` property.
16153
16735
  :param header: Use the value of a header in the request as an aggregate key. Each distinct value in the header contributes to the aggregation instance. If you use a single header as your custom key, then each value fully defines an aggregation instance.
@@ -16169,11 +16751,13 @@ class CfnWebACL(
16169
16751
  # The values are placeholders you should change.
16170
16752
  from aws_cdk import aws_wafv2 as wafv2
16171
16753
 
16754
+ # asn: Any
16172
16755
  # forwarded_ip: Any
16173
16756
  # http_method: Any
16174
16757
  # ip: Any
16175
16758
 
16176
16759
  rate_based_statement_custom_key_property = wafv2.CfnWebACL.RateBasedStatementCustomKeyProperty(
16760
+ asn=asn,
16177
16761
  cookie=wafv2.CfnWebACL.RateLimitCookieProperty(
16178
16762
  name="name",
16179
16763
  text_transformations=[wafv2.CfnWebACL.TextTransformationProperty(
@@ -16223,6 +16807,7 @@ class CfnWebACL(
16223
16807
  '''
16224
16808
  if __debug__:
16225
16809
  type_hints = typing.get_type_hints(_typecheckingstub__2edac52bcb13f69d4349ba55a4d083851908f1dd71831794e88ac043e1ade5a3)
16810
+ check_type(argname="argument asn", value=asn, expected_type=type_hints["asn"])
16226
16811
  check_type(argname="argument cookie", value=cookie, expected_type=type_hints["cookie"])
16227
16812
  check_type(argname="argument forwarded_ip", value=forwarded_ip, expected_type=type_hints["forwarded_ip"])
16228
16813
  check_type(argname="argument header", value=header, expected_type=type_hints["header"])
@@ -16235,6 +16820,8 @@ class CfnWebACL(
16235
16820
  check_type(argname="argument query_string", value=query_string, expected_type=type_hints["query_string"])
16236
16821
  check_type(argname="argument uri_path", value=uri_path, expected_type=type_hints["uri_path"])
16237
16822
  self._values: typing.Dict[builtins.str, typing.Any] = {}
16823
+ if asn is not None:
16824
+ self._values["asn"] = asn
16238
16825
  if cookie is not None:
16239
16826
  self._values["cookie"] = cookie
16240
16827
  if forwarded_ip is not None:
@@ -16258,6 +16845,15 @@ class CfnWebACL(
16258
16845
  if uri_path is not None:
16259
16846
  self._values["uri_path"] = uri_path
16260
16847
 
16848
+ @builtins.property
16849
+ def asn(self) -> typing.Any:
16850
+ '''Specifies the request's ASN as an aggregate key for a rate-based rule.
16851
+
16852
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html#cfn-wafv2-webacl-ratebasedstatementcustomkey-asn
16853
+ '''
16854
+ result = self._values.get("asn")
16855
+ return typing.cast(typing.Any, result)
16856
+
16261
16857
  @builtins.property
16262
16858
  def cookie(
16263
16859
  self,
@@ -17494,6 +18090,60 @@ class CfnWebACL(
17494
18090
  k + "=" + repr(v) for k, v in self._values.items()
17495
18091
  )
17496
18092
 
18093
+ @jsii.data_type(
18094
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.RegexProperty",
18095
+ jsii_struct_bases=[],
18096
+ name_mapping={"regex_string": "regexString"},
18097
+ )
18098
+ class RegexProperty:
18099
+ def __init__(
18100
+ self,
18101
+ *,
18102
+ regex_string: typing.Optional[builtins.str] = None,
18103
+ ) -> None:
18104
+ '''Regex.
18105
+
18106
+ :param regex_string:
18107
+
18108
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-regex.html
18109
+ :exampleMetadata: fixture=_generated
18110
+
18111
+ Example::
18112
+
18113
+ # The code below shows an example of how to instantiate this type.
18114
+ # The values are placeholders you should change.
18115
+ from aws_cdk import aws_wafv2 as wafv2
18116
+
18117
+ regex_property = wafv2.CfnWebACL.RegexProperty(
18118
+ regex_string="regexString"
18119
+ )
18120
+ '''
18121
+ if __debug__:
18122
+ type_hints = typing.get_type_hints(_typecheckingstub__91e754c074f286d30a035b0cb9d25503568a265d4426fe4f4bfc0766c9c71d90)
18123
+ check_type(argname="argument regex_string", value=regex_string, expected_type=type_hints["regex_string"])
18124
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
18125
+ if regex_string is not None:
18126
+ self._values["regex_string"] = regex_string
18127
+
18128
+ @builtins.property
18129
+ def regex_string(self) -> typing.Optional[builtins.str]:
18130
+ '''
18131
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-regex.html#cfn-wafv2-webacl-regex-regexstring
18132
+ '''
18133
+ result = self._values.get("regex_string")
18134
+ return typing.cast(typing.Optional[builtins.str], result)
18135
+
18136
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
18137
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
18138
+
18139
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
18140
+ return not (rhs == self)
18141
+
18142
+ def __repr__(self) -> str:
18143
+ return "RegexProperty(%s)" % ", ".join(
18144
+ k + "=" + repr(v) for k, v in self._values.items()
18145
+ )
18146
+
17497
18147
  @jsii.data_type(
17498
18148
  jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.RequestBodyAssociatedResourceTypeConfigProperty",
17499
18149
  jsii_struct_bases=[],
@@ -18762,7 +19412,7 @@ class CfnWebACL(
18762
19412
 
18763
19413
  :param arn: The Amazon Resource Name (ARN) of the entity.
18764
19414
  :param excluded_rules: Rules in the referenced rule group whose actions are set to ``Count`` . .. epigraph:: Instead of this option, use ``RuleActionOverrides`` . It accepts any valid action setting, including ``Count`` .
18765
- :param rule_action_overrides: Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. .. epigraph:: Take care to verify the rule names in your overrides. If you provide a rule name that doesn't match the name of any rule in the rule group, AWS WAF doesn't return an error and doesn't apply the override setting. You can use overrides for testing, for example you can override all of rule actions to ``Count`` and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.
19415
+ :param rule_action_overrides: Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. .. epigraph:: Verify the rule names in your overrides carefully. With managed rule groups, AWS WAF silently ignores any override that uses an invalid rule name. With customer-owned rule groups, invalid rule names in your overrides will cause web ACL updates to fail. An invalid rule name is any name that doesn't exactly match the case-sensitive name of an existing rule in the rule group. You can use overrides for testing, for example you can override all of rule actions to ``Count`` and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.
18766
19416
 
18767
19417
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-rulegroupreferencestatement.html
18768
19418
  :exampleMetadata: fixture=_generated
@@ -18878,7 +19528,7 @@ class CfnWebACL(
18878
19528
  You specify one override for each rule whose action you want to change.
18879
19529
  .. epigraph::
18880
19530
 
18881
- Take care to verify the rule names in your overrides. If you provide a rule name that doesn't match the name of any rule in the rule group, AWS WAF doesn't return an error and doesn't apply the override setting.
19531
+ Verify the rule names in your overrides carefully. With managed rule groups, AWS WAF silently ignores any override that uses an invalid rule name. With customer-owned rule groups, invalid rule names in your overrides will cause web ACL updates to fail. An invalid rule name is any name that doesn't exactly match the case-sensitive name of an existing rule in the rule group.
18882
19532
 
18883
19533
  You can use overrides for testing, for example you can override all of rule actions to ``Count`` and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.
18884
19534
 
@@ -19595,6 +20245,7 @@ class CfnWebACL(
19595
20245
  jsii_struct_bases=[],
19596
20246
  name_mapping={
19597
20247
  "and_statement": "andStatement",
20248
+ "asn_match_statement": "asnMatchStatement",
19598
20249
  "byte_match_statement": "byteMatchStatement",
19599
20250
  "geo_match_statement": "geoMatchStatement",
19600
20251
  "ip_set_reference_statement": "ipSetReferenceStatement",
@@ -19616,6 +20267,7 @@ class CfnWebACL(
19616
20267
  self,
19617
20268
  *,
19618
20269
  and_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.AndStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
20270
+ asn_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.AsnMatchStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
19619
20271
  byte_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.ByteMatchStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
19620
20272
  geo_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.GeoMatchStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
19621
20273
  ip_set_reference_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.IPSetReferenceStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -19634,6 +20286,7 @@ class CfnWebACL(
19634
20286
  '''The processing guidance for a rule, used by AWS WAF to determine whether a web request matches the rule.
19635
20287
 
19636
20288
  :param and_statement: A logical rule statement used to combine other rule statements with AND logic. You provide more than one ``Statement`` within the ``AndStatement`` .
20289
+ :param asn_match_statement:
19637
20290
  :param byte_match_statement: A rule statement that defines a string match search for AWS WAF to apply to web requests. The byte match statement provides the bytes to search for, the location in requests that you want AWS WAF to search, and other settings. The bytes to search for are typically a string that corresponds with ASCII characters. In the AWS WAF console and the developer guide, this is called a string match statement.
19638
20291
  :param geo_match_statement: A rule statement that labels web requests by country and region and that matches against web requests based on country code. A geo match rule labels every request that it inspects regardless of whether it finds a match. - To manage requests only by country, you can use this statement by itself and specify the countries that you want to match against in the ``CountryCodes`` array. - Otherwise, configure your geo match rule with Count action so that it only labels requests. Then, add one or more label match rules to run after the geo match rule and configure them to match against the geographic labels and handle the requests as needed. AWS WAF labels requests using the alpha-2 country and region codes from the International Organization for Standardization (ISO) 3166 standard. AWS WAF determines the codes using either the IP address in the web request origin or, if you specify it, the address in the geo match ``ForwardedIPConfig`` . If you use the web request origin, the label formats are ``awswaf:clientip:geo:region:<ISO country code>-<ISO region code>`` and ``awswaf:clientip:geo:country:<ISO country code>`` . If you use a forwarded IP address, the label formats are ``awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code>`` and ``awswaf:forwardedip:geo:country:<ISO country code>`` . For additional details, see `Geographic match rule statement <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-geo-match.html>`_ in the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`_ .
19639
20292
  :param ip_set_reference_statement: A rule statement used to detect web requests coming from particular IP addresses or address ranges. To use this, create an ``IPSet`` that specifies the addresses you want to detect, then use the ARN of that set in this statement. Each IP set rule statement references an IP set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, AWS WAF automatically updates all rules that reference it.
@@ -19659,6 +20312,7 @@ class CfnWebACL(
19659
20312
  if __debug__:
19660
20313
  type_hints = typing.get_type_hints(_typecheckingstub__0382dea984940e1444b28282683162580df37103e33ab59384736c3a85a2ec11)
19661
20314
  check_type(argname="argument and_statement", value=and_statement, expected_type=type_hints["and_statement"])
20315
+ check_type(argname="argument asn_match_statement", value=asn_match_statement, expected_type=type_hints["asn_match_statement"])
19662
20316
  check_type(argname="argument byte_match_statement", value=byte_match_statement, expected_type=type_hints["byte_match_statement"])
19663
20317
  check_type(argname="argument geo_match_statement", value=geo_match_statement, expected_type=type_hints["geo_match_statement"])
19664
20318
  check_type(argname="argument ip_set_reference_statement", value=ip_set_reference_statement, expected_type=type_hints["ip_set_reference_statement"])
@@ -19676,6 +20330,8 @@ class CfnWebACL(
19676
20330
  self._values: typing.Dict[builtins.str, typing.Any] = {}
19677
20331
  if and_statement is not None:
19678
20332
  self._values["and_statement"] = and_statement
20333
+ if asn_match_statement is not None:
20334
+ self._values["asn_match_statement"] = asn_match_statement
19679
20335
  if byte_match_statement is not None:
19680
20336
  self._values["byte_match_statement"] = byte_match_statement
19681
20337
  if geo_match_statement is not None:
@@ -19718,6 +20374,16 @@ class CfnWebACL(
19718
20374
  result = self._values.get("and_statement")
19719
20375
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.AndStatementProperty"]], result)
19720
20376
 
20377
+ @builtins.property
20378
+ def asn_match_statement(
20379
+ self,
20380
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.AsnMatchStatementProperty"]]:
20381
+ '''
20382
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html#cfn-wafv2-webacl-statement-asnmatchstatement
20383
+ '''
20384
+ result = self._values.get("asn_match_statement")
20385
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.AsnMatchStatementProperty"]], result)
20386
+
19721
20387
  @builtins.property
19722
20388
  def byte_match_statement(
19723
20389
  self,
@@ -20632,7 +21298,7 @@ class CfnWebACLProps:
20632
21298
  :param data_protection_config: Specifies data protection to apply to the web request data for the web ACL. This is a web ACL level data protection option. The data protection that you configure for the web ACL alters the data that's available for any other data collection activity, including your AWS WAF logging destinations, web ACL request sampling, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging.
20633
21299
  :param description: A description of the web ACL that helps with identification.
20634
21300
  :param name: The name of the web ACL. You cannot change the name of a web ACL after you create it.
20635
- :param on_source_d_do_s_protection_config:
21301
+ :param on_source_d_do_s_protection_config: Configures the level of DDoS protection that applies to web ACLs associated with Application Load Balancers.
20636
21302
  :param rules: The rule statements used to identify the web requests that you want to manage. Each rule includes one top-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.
20637
21303
  :param tags: Key:value pairs associated with an AWS resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each AWS resource. .. epigraph:: To modify tags on existing resources, use the AWS WAF APIs or command line interface. With AWS CloudFormation , you can only add tags to AWS WAF resources during resource creation.
20638
21304
  :param token_domains: Specifies the domains that AWS WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When AWS WAF provides a token, it uses the domain of the AWS resource that the web ACL is protecting. If you don't specify a list of token domains, AWS WAF accepts tokens only for the domain of the protected resource. With a token domain list, AWS WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.
@@ -20827,7 +21493,8 @@ class CfnWebACLProps:
20827
21493
 
20828
21494
  @builtins.property
20829
21495
  def on_source_d_do_s_protection_config(self) -> typing.Any:
20830
- '''
21496
+ '''Configures the level of DDoS protection that applies to web ACLs associated with Application Load Balancers.
21497
+
20831
21498
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html#cfn-wafv2-webacl-onsourceddosprotectionconfig
20832
21499
  '''
20833
21500
  result = self._values.get("on_source_d_do_s_protection_config")
@@ -21276,6 +21943,14 @@ def _typecheckingstub__563d7c7c3c7b0cea107ea61895bf83f08deacaa77dd306915bce97452
21276
21943
  """Type checking stubs"""
21277
21944
  pass
21278
21945
 
21946
+ def _typecheckingstub__1b7bfd70c769fabe423acc42aa4ce7a934b8907c56a69421327294c209c8da78(
21947
+ *,
21948
+ asn_list: typing.Optional[typing.Union[typing.Sequence[jsii.Number], _IResolvable_da3f097b]] = None,
21949
+ forwarded_ip_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.ForwardedIPConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21950
+ ) -> None:
21951
+ """Type checking stubs"""
21952
+ pass
21953
+
21279
21954
  def _typecheckingstub__48d37744c2bde6e8969fbbe9f60128093f4d69360ff6c086fcb635ca42f3ae63(
21280
21955
  *,
21281
21956
  custom_response: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.CustomResponseProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -21533,6 +22208,7 @@ def _typecheckingstub__ac0f7a31c2c062eaaca70b7d43c11c1e6b78ce7502ec2206e832cabc7
21533
22208
 
21534
22209
  def _typecheckingstub__6bc232408309212f7b145d76c0106073269f111e106ab6d74a4d2168f41f248b(
21535
22210
  *,
22211
+ asn: typing.Any = None,
21536
22212
  cookie: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.RateLimitCookieProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21537
22213
  forwarded_ip: typing.Any = None,
21538
22214
  header: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.RateLimitHeaderProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -21698,6 +22374,7 @@ def _typecheckingstub__b9ae549bd77f9cf10d97954d1e78a797db181843dcc5510b91fc32672
21698
22374
  def _typecheckingstub__c10bc3e3f69d89ad06f25a44daee62e7de586ae4280e39230f29c24092fe4a4f(
21699
22375
  *,
21700
22376
  and_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.AndStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22377
+ asn_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.AsnMatchStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21701
22378
  byte_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.ByteMatchStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21702
22379
  geo_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.GeoMatchStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21703
22380
  ip_set_reference_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.IPSetReferenceStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -21901,6 +22578,14 @@ def _typecheckingstub__f9aee7f94c21473b0495313f92d8a99724499d3f5a99e7229679efb1e
21901
22578
  """Type checking stubs"""
21902
22579
  pass
21903
22580
 
22581
+ def _typecheckingstub__9315d92e3528c134a601f6cf9b27df2b90e082b1e29a17eadf8fbf68ac10e8c4(
22582
+ *,
22583
+ client_side_action_config: typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ClientSideActionConfigProperty, typing.Dict[builtins.str, typing.Any]]],
22584
+ sensitivity_to_block: typing.Optional[builtins.str] = None,
22585
+ ) -> None:
22586
+ """Type checking stubs"""
22587
+ pass
22588
+
21904
22589
  def _typecheckingstub__23917b7bd12237aafb58493973b8f61366778e01800aad21ea2f95a01294dc76(
21905
22590
  *,
21906
22591
  inspection_level: builtins.str,
@@ -21923,6 +22608,14 @@ def _typecheckingstub__e3977b616ebe935b8882258fb7fe1261468bceabf99977afc1c05b1df
21923
22608
  """Type checking stubs"""
21924
22609
  pass
21925
22610
 
22611
+ def _typecheckingstub__8995ed18208bf9dcca46075f2ba4072467a8327472896fee5efcf1415648dfe8(
22612
+ *,
22613
+ asn_list: typing.Optional[typing.Union[typing.Sequence[jsii.Number], _IResolvable_da3f097b]] = None,
22614
+ forwarded_ip_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ForwardedIPConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22615
+ ) -> None:
22616
+ """Type checking stubs"""
22617
+ pass
22618
+
21926
22619
  def _typecheckingstub__889bff55ba91160187275a11669025b829161457b27db183745c6a70c6fb0947(
21927
22620
  *,
21928
22621
  request_body: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RequestBodyAssociatedResourceTypeConfigProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
@@ -21983,6 +22676,22 @@ def _typecheckingstub__e59d4e09b55c6fb1e18f3dbf3d0659f147db2659c300a744e836928d4
21983
22676
  """Type checking stubs"""
21984
22677
  pass
21985
22678
 
22679
+ def _typecheckingstub__776e223dfae595baf3dc144792b2d7158c77847ddf24785048d19516ebcb955b(
22680
+ *,
22681
+ challenge: typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ClientSideActionProperty, typing.Dict[builtins.str, typing.Any]]],
22682
+ ) -> None:
22683
+ """Type checking stubs"""
22684
+ pass
22685
+
22686
+ def _typecheckingstub__de331114f33ba80cf8bd042358ad9467ab930574012abea7782f175fd2a7b649(
22687
+ *,
22688
+ usage_of_action: builtins.str,
22689
+ exempt_uri_regular_expressions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RegexProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
22690
+ sensitivity: typing.Optional[builtins.str] = None,
22691
+ ) -> None:
22692
+ """Type checking stubs"""
22693
+ pass
22694
+
21986
22695
  def _typecheckingstub__11e565e9aad1b474694cbb7c884715be324a3c5b38238a45e13e0d2ed78d816d(
21987
22696
  *,
21988
22697
  all: typing.Any = None,
@@ -22214,6 +22923,7 @@ def _typecheckingstub__bf81be90baf4410ecf4fe3290d007b8b6c18da545bbac600a4ec86a29
22214
22923
  def _typecheckingstub__517661cb97cc58c609587fc6ca9907b2e23d8f3cd6e1e4034f3f6d82b85d2d77(
22215
22924
  *,
22216
22925
  aws_managed_rules_acfp_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AWSManagedRulesACFPRuleSetProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22926
+ aws_managed_rules_anti_d_do_s_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AWSManagedRulesAntiDDoSRuleSetProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22217
22927
  aws_managed_rules_atp_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AWSManagedRulesATPRuleSetProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22218
22928
  aws_managed_rules_bot_control_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AWSManagedRulesBotControlRuleSetProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22219
22929
  login_path: typing.Optional[builtins.str] = None,
@@ -22244,6 +22954,13 @@ def _typecheckingstub__6323d964e28230f9d2649acc0c25b70ee57b1f6721b37df85848f3c96
22244
22954
  """Type checking stubs"""
22245
22955
  pass
22246
22956
 
22957
+ def _typecheckingstub__b1d55e97c88ee1084655df55da4bb940ea39dc6807c3b4f425073a3a747e0dbc(
22958
+ *,
22959
+ alb_low_reputation_mode: builtins.str,
22960
+ ) -> None:
22961
+ """Type checking stubs"""
22962
+ pass
22963
+
22247
22964
  def _typecheckingstub__857a9b37018dee0d151e0a05984b557cea8bf5f8e57f6957cacb75335b7f4985(
22248
22965
  *,
22249
22966
  statements: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.StatementProperty, typing.Dict[builtins.str, typing.Any]]]]],
@@ -22261,6 +22978,7 @@ def _typecheckingstub__799e1b838f491914647df091fcbac72eb8119756fda0c013be732c461
22261
22978
 
22262
22979
  def _typecheckingstub__2edac52bcb13f69d4349ba55a4d083851908f1dd71831794e88ac043e1ade5a3(
22263
22980
  *,
22981
+ asn: typing.Any = None,
22264
22982
  cookie: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RateLimitCookieProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22265
22983
  forwarded_ip: typing.Any = None,
22266
22984
  header: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RateLimitHeaderProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -22365,6 +23083,13 @@ def _typecheckingstub__02b7d36560bfd4ed2bd6508818cf89b216972c719200032cdc4b3a04e
22365
23083
  """Type checking stubs"""
22366
23084
  pass
22367
23085
 
23086
+ def _typecheckingstub__91e754c074f286d30a035b0cb9d25503568a265d4426fe4f4bfc0766c9c71d90(
23087
+ *,
23088
+ regex_string: typing.Optional[builtins.str] = None,
23089
+ ) -> None:
23090
+ """Type checking stubs"""
23091
+ pass
23092
+
22368
23093
  def _typecheckingstub__22d5e10d054b4857a7983cdc47094a04c46a1c4d98b791e6c9aa5b16fe172d31(
22369
23094
  *,
22370
23095
  default_size_inspection_limit: builtins.str,
@@ -22516,6 +23241,7 @@ def _typecheckingstub__58178c25f953747f989ea51846855e784a44825b0202fe8e0a5c3920a
22516
23241
  def _typecheckingstub__0382dea984940e1444b28282683162580df37103e33ab59384736c3a85a2ec11(
22517
23242
  *,
22518
23243
  and_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AndStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23244
+ asn_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AsnMatchStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22519
23245
  byte_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ByteMatchStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22520
23246
  geo_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.GeoMatchStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22521
23247
  ip_set_reference_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.IPSetReferenceStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,