aws-sdk-wafv2 1.109.0 → 1.111.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8326752753afb84dfdb818720a241be433da10d1041ac21556264813366e075e
4
- data.tar.gz: 1693b99587d3963be3d233c9c058c6164507c355a87be8a42b2ee98ffbd561ab
3
+ metadata.gz: 16c4a613a2811c0ef62664488a672cdf019d94c82e0c78c3296f66509d18373d
4
+ data.tar.gz: '09450619c095fb4dfedd5e4b7a67bb93f17570abc3885ef348e7cd1822f07032'
5
5
  SHA512:
6
- metadata.gz: 4274929dcecbc4406206d5b6b5fbc34c1823ae2769e709c282337d33ea99c1c931157e198302e86caeda479fa7938d361db823299aa9041fbf1e6c2d5030cda3
7
- data.tar.gz: b16943feaa940f9fe433d36fb7523e1274ec1130d62cd9cfac60ad241b770551dffc33f3fbac6d80a9d0659d371b76a446930b302832c4f8bb7caf337315fe39
6
+ metadata.gz: 3a6b7c59627c5c228a54d884acb476829057cfd9777e5778fead4d1e690ac32727014a238545636f59645c9936590cbe4980d5114b2c969d6f8b76683ee445ee
7
+ data.tar.gz: 6d5a464ff5b9f0ef250b98bfa65e67e36cacae276c73ebfb6f38cb33416f2f8eeac0b43233328a0fd044d55b736e596c4ea30f8dc892134dc769d4687c33f84a
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.111.0 (2025-06-11)
5
+ ------------------
6
+
7
+ * Feature - WAF now provides two DDoS protection options: resource-level monitoring for Application Load Balancers and the AWSManagedRulesAntiDDoSRuleSet managed rule group for CloudFront distributions.
8
+
9
+ 1.110.0 (2025-06-05)
10
+ ------------------
11
+
12
+ * Feature - AWS WAF adds support for ASN-based traffic filtering and support for ASN-based rate limiting.
13
+
4
14
  1.109.0 (2025-06-02)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.109.0
1
+ 1.111.0
@@ -1123,6 +1123,8 @@ module Aws::WAFV2
1123
1123
  # ja4_fingerprint: {
1124
1124
  # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
1125
1125
  # },
1126
+ # asn: {
1127
+ # },
1126
1128
  # },
1127
1129
  # ],
1128
1130
  # },
@@ -1251,6 +1253,20 @@ module Aws::WAFV2
1251
1253
  # },
1252
1254
  # enable_regex_in_path: false,
1253
1255
  # },
1256
+ # aws_managed_rules_anti_d_do_s_rule_set: {
1257
+ # client_side_action_config: { # required
1258
+ # challenge: { # required
1259
+ # usage_of_action: "ENABLED", # required, accepts ENABLED, DISABLED
1260
+ # sensitivity: "LOW", # accepts LOW, MEDIUM, HIGH
1261
+ # exempt_uri_regular_expressions: [
1262
+ # {
1263
+ # regex_string: "RegexPatternString",
1264
+ # },
1265
+ # ],
1266
+ # },
1267
+ # },
1268
+ # sensitivity_to_block: "LOW", # accepts LOW, MEDIUM, HIGH
1269
+ # },
1254
1270
  # },
1255
1271
  # ],
1256
1272
  # rule_action_overrides: [
@@ -1387,6 +1403,13 @@ module Aws::WAFV2
1387
1403
  # },
1388
1404
  # ],
1389
1405
  # },
1406
+ # asn_match_statement: {
1407
+ # asn_list: [1], # required
1408
+ # forwarded_ip_config: {
1409
+ # header_name: "ForwardedIPHeaderName", # required
1410
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
1411
+ # },
1412
+ # },
1390
1413
  # },
1391
1414
  # action: {
1392
1415
  # block: {
@@ -2332,6 +2355,8 @@ module Aws::WAFV2
2332
2355
  # ja4_fingerprint: {
2333
2356
  # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
2334
2357
  # },
2358
+ # asn: {
2359
+ # },
2335
2360
  # },
2336
2361
  # ],
2337
2362
  # },
@@ -2460,6 +2485,20 @@ module Aws::WAFV2
2460
2485
  # },
2461
2486
  # enable_regex_in_path: false,
2462
2487
  # },
2488
+ # aws_managed_rules_anti_d_do_s_rule_set: {
2489
+ # client_side_action_config: { # required
2490
+ # challenge: { # required
2491
+ # usage_of_action: "ENABLED", # required, accepts ENABLED, DISABLED
2492
+ # sensitivity: "LOW", # accepts LOW, MEDIUM, HIGH
2493
+ # exempt_uri_regular_expressions: [
2494
+ # {
2495
+ # regex_string: "RegexPatternString",
2496
+ # },
2497
+ # ],
2498
+ # },
2499
+ # },
2500
+ # sensitivity_to_block: "LOW", # accepts LOW, MEDIUM, HIGH
2501
+ # },
2463
2502
  # },
2464
2503
  # ],
2465
2504
  # rule_action_overrides: [
@@ -2596,6 +2635,13 @@ module Aws::WAFV2
2596
2635
  # },
2597
2636
  # ],
2598
2637
  # },
2638
+ # asn_match_statement: {
2639
+ # asn_list: [1], # required
2640
+ # forwarded_ip_config: {
2641
+ # header_name: "ForwardedIPHeaderName", # required
2642
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
2643
+ # },
2644
+ # },
2599
2645
  # },
2600
2646
  # action: {
2601
2647
  # block: {
@@ -2853,6 +2899,14 @@ module Aws::WAFV2
2853
2899
  #
2854
2900
  # [1]: http://aws.amazon.com/waf/pricing/
2855
2901
  #
2902
+ # @option params [Types::OnSourceDDoSProtectionConfig] :on_source_d_do_s_protection_config
2903
+ # Specifies the type of DDoS protection to apply to web request data for
2904
+ # a web ACL. For most scenarios, it is recommended to use the default
2905
+ # protection level, `ACTIVE_UNDER_DDOS`. If a web ACL is associated with
2906
+ # multiple Application Load Balancers, the changes you make to DDoS
2907
+ # protection in that web ACL will apply to all associated Application
2908
+ # Load Balancers.
2909
+ #
2856
2910
  # @return [Types::CreateWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2857
2911
  #
2858
2912
  # * {Types::CreateWebACLResponse#summary #summary} => Types::WebACLSummary
@@ -3396,6 +3450,8 @@ module Aws::WAFV2
3396
3450
  # ja4_fingerprint: {
3397
3451
  # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
3398
3452
  # },
3453
+ # asn: {
3454
+ # },
3399
3455
  # },
3400
3456
  # ],
3401
3457
  # },
@@ -3524,6 +3580,20 @@ module Aws::WAFV2
3524
3580
  # },
3525
3581
  # enable_regex_in_path: false,
3526
3582
  # },
3583
+ # aws_managed_rules_anti_d_do_s_rule_set: {
3584
+ # client_side_action_config: { # required
3585
+ # challenge: { # required
3586
+ # usage_of_action: "ENABLED", # required, accepts ENABLED, DISABLED
3587
+ # sensitivity: "LOW", # accepts LOW, MEDIUM, HIGH
3588
+ # exempt_uri_regular_expressions: [
3589
+ # {
3590
+ # regex_string: "RegexPatternString",
3591
+ # },
3592
+ # ],
3593
+ # },
3594
+ # },
3595
+ # sensitivity_to_block: "LOW", # accepts LOW, MEDIUM, HIGH
3596
+ # },
3527
3597
  # },
3528
3598
  # ],
3529
3599
  # rule_action_overrides: [
@@ -3660,6 +3730,13 @@ module Aws::WAFV2
3660
3730
  # },
3661
3731
  # ],
3662
3732
  # },
3733
+ # asn_match_statement: {
3734
+ # asn_list: [1], # required
3735
+ # forwarded_ip_config: {
3736
+ # header_name: "ForwardedIPHeaderName", # required
3737
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
3738
+ # },
3739
+ # },
3663
3740
  # },
3664
3741
  # action: {
3665
3742
  # block: {
@@ -3799,6 +3876,9 @@ module Aws::WAFV2
3799
3876
  # },
3800
3877
  # },
3801
3878
  # },
3879
+ # on_source_d_do_s_protection_config: {
3880
+ # alb_low_reputation_mode: "ACTIVE_UNDER_DDOS", # required, accepts ACTIVE_UNDER_DDOS, ALWAYS_ON
3881
+ # },
3802
3882
  # })
3803
3883
  #
3804
3884
  # @example Response structure
@@ -5331,6 +5411,11 @@ module Aws::WAFV2
5331
5411
  # resp.rule_group.rules[0].statement.managed_rule_group_statement.managed_rule_group_configs[0].aws_managed_rules_acfp_rule_set.response_inspection.json.failure_values #=> Array
5332
5412
  # resp.rule_group.rules[0].statement.managed_rule_group_statement.managed_rule_group_configs[0].aws_managed_rules_acfp_rule_set.response_inspection.json.failure_values[0] #=> String
5333
5413
  # resp.rule_group.rules[0].statement.managed_rule_group_statement.managed_rule_group_configs[0].aws_managed_rules_acfp_rule_set.enable_regex_in_path #=> Boolean
5414
+ # resp.rule_group.rules[0].statement.managed_rule_group_statement.managed_rule_group_configs[0].aws_managed_rules_anti_d_do_s_rule_set.client_side_action_config.challenge.usage_of_action #=> String, one of "ENABLED", "DISABLED"
5415
+ # resp.rule_group.rules[0].statement.managed_rule_group_statement.managed_rule_group_configs[0].aws_managed_rules_anti_d_do_s_rule_set.client_side_action_config.challenge.sensitivity #=> String, one of "LOW", "MEDIUM", "HIGH"
5416
+ # resp.rule_group.rules[0].statement.managed_rule_group_statement.managed_rule_group_configs[0].aws_managed_rules_anti_d_do_s_rule_set.client_side_action_config.challenge.exempt_uri_regular_expressions #=> Array
5417
+ # resp.rule_group.rules[0].statement.managed_rule_group_statement.managed_rule_group_configs[0].aws_managed_rules_anti_d_do_s_rule_set.client_side_action_config.challenge.exempt_uri_regular_expressions[0].regex_string #=> String
5418
+ # resp.rule_group.rules[0].statement.managed_rule_group_statement.managed_rule_group_configs[0].aws_managed_rules_anti_d_do_s_rule_set.sensitivity_to_block #=> String, one of "LOW", "MEDIUM", "HIGH"
5334
5419
  # resp.rule_group.rules[0].statement.managed_rule_group_statement.rule_action_overrides #=> Array
5335
5420
  # resp.rule_group.rules[0].statement.managed_rule_group_statement.rule_action_overrides[0].name #=> String
5336
5421
  # resp.rule_group.rules[0].statement.managed_rule_group_statement.rule_action_overrides[0].action_to_use.block.custom_response.response_code #=> Integer
@@ -5380,6 +5465,10 @@ module Aws::WAFV2
5380
5465
  # resp.rule_group.rules[0].statement.regex_match_statement.text_transformations #=> Array
5381
5466
  # resp.rule_group.rules[0].statement.regex_match_statement.text_transformations[0].priority #=> Integer
5382
5467
  # resp.rule_group.rules[0].statement.regex_match_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE", "BASE64_DECODE", "HEX_DECODE", "MD5", "REPLACE_COMMENTS", "ESCAPE_SEQ_DECODE", "SQL_HEX_DECODE", "CSS_DECODE", "JS_DECODE", "NORMALIZE_PATH", "NORMALIZE_PATH_WIN", "REMOVE_NULLS", "REPLACE_NULLS", "BASE64_DECODE_EXT", "URL_DECODE_UNI", "UTF8_TO_UNICODE"
5468
+ # resp.rule_group.rules[0].statement.asn_match_statement.asn_list #=> Array
5469
+ # resp.rule_group.rules[0].statement.asn_match_statement.asn_list[0] #=> Integer
5470
+ # resp.rule_group.rules[0].statement.asn_match_statement.forwarded_ip_config.header_name #=> String
5471
+ # resp.rule_group.rules[0].statement.asn_match_statement.forwarded_ip_config.fallback_behavior #=> String, one of "MATCH", "NO_MATCH"
5383
5472
  # resp.rule_group.rules[0].action.block.custom_response.response_code #=> Integer
5384
5473
  # resp.rule_group.rules[0].action.block.custom_response.custom_response_body_key #=> String
5385
5474
  # resp.rule_group.rules[0].action.block.custom_response.response_headers #=> Array
@@ -7892,6 +7981,8 @@ module Aws::WAFV2
7892
7981
  # ja4_fingerprint: {
7893
7982
  # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
7894
7983
  # },
7984
+ # asn: {
7985
+ # },
7895
7986
  # },
7896
7987
  # ],
7897
7988
  # },
@@ -8020,6 +8111,20 @@ module Aws::WAFV2
8020
8111
  # },
8021
8112
  # enable_regex_in_path: false,
8022
8113
  # },
8114
+ # aws_managed_rules_anti_d_do_s_rule_set: {
8115
+ # client_side_action_config: { # required
8116
+ # challenge: { # required
8117
+ # usage_of_action: "ENABLED", # required, accepts ENABLED, DISABLED
8118
+ # sensitivity: "LOW", # accepts LOW, MEDIUM, HIGH
8119
+ # exempt_uri_regular_expressions: [
8120
+ # {
8121
+ # regex_string: "RegexPatternString",
8122
+ # },
8123
+ # ],
8124
+ # },
8125
+ # },
8126
+ # sensitivity_to_block: "LOW", # accepts LOW, MEDIUM, HIGH
8127
+ # },
8023
8128
  # },
8024
8129
  # ],
8025
8130
  # rule_action_overrides: [
@@ -8156,6 +8261,13 @@ module Aws::WAFV2
8156
8261
  # },
8157
8262
  # ],
8158
8263
  # },
8264
+ # asn_match_statement: {
8265
+ # asn_list: [1], # required
8266
+ # forwarded_ip_config: {
8267
+ # header_name: "ForwardedIPHeaderName", # required
8268
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
8269
+ # },
8270
+ # },
8159
8271
  # },
8160
8272
  # action: {
8161
8273
  # block: {
@@ -8457,6 +8569,14 @@ module Aws::WAFV2
8457
8569
  #
8458
8570
  # [1]: http://aws.amazon.com/waf/pricing/
8459
8571
  #
8572
+ # @option params [Types::OnSourceDDoSProtectionConfig] :on_source_d_do_s_protection_config
8573
+ # Specifies the type of DDoS protection to apply to web request data for
8574
+ # a web ACL. For most scenarios, it is recommended to use the default
8575
+ # protection level, `ACTIVE_UNDER_DDOS`. If a web ACL is associated with
8576
+ # multiple Application Load Balancers, the changes you make to DDoS
8577
+ # protection in that web ACL will apply to all associated Application
8578
+ # Load Balancers.
8579
+ #
8460
8580
  # @return [Types::UpdateWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
8461
8581
  #
8462
8582
  # * {Types::UpdateWebACLResponse#next_lock_token #next_lock_token} => String
@@ -9001,6 +9121,8 @@ module Aws::WAFV2
9001
9121
  # ja4_fingerprint: {
9002
9122
  # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
9003
9123
  # },
9124
+ # asn: {
9125
+ # },
9004
9126
  # },
9005
9127
  # ],
9006
9128
  # },
@@ -9129,6 +9251,20 @@ module Aws::WAFV2
9129
9251
  # },
9130
9252
  # enable_regex_in_path: false,
9131
9253
  # },
9254
+ # aws_managed_rules_anti_d_do_s_rule_set: {
9255
+ # client_side_action_config: { # required
9256
+ # challenge: { # required
9257
+ # usage_of_action: "ENABLED", # required, accepts ENABLED, DISABLED
9258
+ # sensitivity: "LOW", # accepts LOW, MEDIUM, HIGH
9259
+ # exempt_uri_regular_expressions: [
9260
+ # {
9261
+ # regex_string: "RegexPatternString",
9262
+ # },
9263
+ # ],
9264
+ # },
9265
+ # },
9266
+ # sensitivity_to_block: "LOW", # accepts LOW, MEDIUM, HIGH
9267
+ # },
9132
9268
  # },
9133
9269
  # ],
9134
9270
  # rule_action_overrides: [
@@ -9265,6 +9401,13 @@ module Aws::WAFV2
9265
9401
  # },
9266
9402
  # ],
9267
9403
  # },
9404
+ # asn_match_statement: {
9405
+ # asn_list: [1], # required
9406
+ # forwarded_ip_config: {
9407
+ # header_name: "ForwardedIPHeaderName", # required
9408
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
9409
+ # },
9410
+ # },
9268
9411
  # },
9269
9412
  # action: {
9270
9413
  # block: {
@@ -9399,6 +9542,9 @@ module Aws::WAFV2
9399
9542
  # },
9400
9543
  # },
9401
9544
  # },
9545
+ # on_source_d_do_s_protection_config: {
9546
+ # alb_low_reputation_mode: "ACTIVE_UNDER_DDOS", # required, accepts ACTIVE_UNDER_DDOS, ALWAYS_ON
9547
+ # },
9402
9548
  # })
9403
9549
  #
9404
9550
  # @example Response structure
@@ -9432,7 +9578,7 @@ module Aws::WAFV2
9432
9578
  tracer: tracer
9433
9579
  )
9434
9580
  context[:gem_name] = 'aws-sdk-wafv2'
9435
- context[:gem_version] = '1.109.0'
9581
+ context[:gem_version] = '1.111.0'
9436
9582
  Seahorse::Client::Request.new(handlers, context)
9437
9583
  end
9438
9584
 
@@ -19,8 +19,10 @@ module Aws::WAFV2
19
19
  APIKeySummary = Shapes::StructureShape.new(name: 'APIKeySummary')
20
20
  APIKeyTokenDomains = Shapes::ListShape.new(name: 'APIKeyTokenDomains')
21
21
  APIKeyVersion = Shapes::IntegerShape.new(name: 'APIKeyVersion')
22
+ ASN = Shapes::IntegerShape.new(name: 'ASN')
22
23
  AWSManagedRulesACFPRuleSet = Shapes::StructureShape.new(name: 'AWSManagedRulesACFPRuleSet')
23
24
  AWSManagedRulesATPRuleSet = Shapes::StructureShape.new(name: 'AWSManagedRulesATPRuleSet')
25
+ AWSManagedRulesAntiDDoSRuleSet = Shapes::StructureShape.new(name: 'AWSManagedRulesAntiDDoSRuleSet')
24
26
  AWSManagedRulesBotControlRuleSet = Shapes::StructureShape.new(name: 'AWSManagedRulesBotControlRuleSet')
25
27
  Action = Shapes::StringShape.new(name: 'Action')
26
28
  ActionCondition = Shapes::StructureShape.new(name: 'ActionCondition')
@@ -31,6 +33,8 @@ module Aws::WAFV2
31
33
  AllQueryArguments = Shapes::StructureShape.new(name: 'AllQueryArguments')
32
34
  AllowAction = Shapes::StructureShape.new(name: 'AllowAction')
33
35
  AndStatement = Shapes::StructureShape.new(name: 'AndStatement')
36
+ AsnList = Shapes::ListShape.new(name: 'AsnList')
37
+ AsnMatchStatement = Shapes::StructureShape.new(name: 'AsnMatchStatement')
34
38
  AssociateWebACLRequest = Shapes::StructureShape.new(name: 'AssociateWebACLRequest')
35
39
  AssociateWebACLResponse = Shapes::StructureShape.new(name: 'AssociateWebACLResponse')
36
40
  AssociatedResourceType = Shapes::StringShape.new(name: 'AssociatedResourceType')
@@ -49,6 +53,8 @@ module Aws::WAFV2
49
53
  ChallengeResponse = Shapes::StructureShape.new(name: 'ChallengeResponse')
50
54
  CheckCapacityRequest = Shapes::StructureShape.new(name: 'CheckCapacityRequest')
51
55
  CheckCapacityResponse = Shapes::StructureShape.new(name: 'CheckCapacityResponse')
56
+ ClientSideAction = Shapes::StructureShape.new(name: 'ClientSideAction')
57
+ ClientSideActionConfig = Shapes::StructureShape.new(name: 'ClientSideActionConfig')
52
58
  ComparisonOperator = Shapes::StringShape.new(name: 'ComparisonOperator')
53
59
  Condition = Shapes::StructureShape.new(name: 'Condition')
54
60
  Conditions = Shapes::ListShape.new(name: 'Conditions')
@@ -239,6 +245,7 @@ module Aws::WAFV2
239
245
  LoggingConfigurations = Shapes::ListShape.new(name: 'LoggingConfigurations')
240
246
  LoggingFilter = Shapes::StructureShape.new(name: 'LoggingFilter')
241
247
  LoginPathString = Shapes::StringShape.new(name: 'LoginPathString')
248
+ LowReputationMode = Shapes::StringShape.new(name: 'LowReputationMode')
242
249
  ManagedProductDescriptor = Shapes::StructureShape.new(name: 'ManagedProductDescriptor')
243
250
  ManagedProductDescriptors = Shapes::ListShape.new(name: 'ManagedProductDescriptors')
244
251
  ManagedRuleGroupConfig = Shapes::StructureShape.new(name: 'ManagedRuleGroupConfig')
@@ -259,6 +266,7 @@ module Aws::WAFV2
259
266
  NextMarker = Shapes::StringShape.new(name: 'NextMarker')
260
267
  NoneAction = Shapes::StructureShape.new(name: 'NoneAction')
261
268
  NotStatement = Shapes::StructureShape.new(name: 'NotStatement')
269
+ OnSourceDDoSProtectionConfig = Shapes::StructureShape.new(name: 'OnSourceDDoSProtectionConfig')
262
270
  OrStatement = Shapes::StructureShape.new(name: 'OrStatement')
263
271
  OutputUrl = Shapes::StringShape.new(name: 'OutputUrl')
264
272
  OverrideAction = Shapes::StructureShape.new(name: 'OverrideAction')
@@ -292,6 +300,7 @@ module Aws::WAFV2
292
300
  RateBasedStatementCustomKeys = Shapes::ListShape.new(name: 'RateBasedStatementCustomKeys')
293
301
  RateBasedStatementManagedKeysIPSet = Shapes::StructureShape.new(name: 'RateBasedStatementManagedKeysIPSet')
294
302
  RateLimit = Shapes::IntegerShape.new(name: 'RateLimit')
303
+ RateLimitAsn = Shapes::StructureShape.new(name: 'RateLimitAsn')
295
304
  RateLimitCookie = Shapes::StructureShape.new(name: 'RateLimitCookie')
296
305
  RateLimitForwardedIP = Shapes::StructureShape.new(name: 'RateLimitForwardedIP')
297
306
  RateLimitHTTPMethod = Shapes::StructureShape.new(name: 'RateLimitHTTPMethod')
@@ -359,6 +368,7 @@ module Aws::WAFV2
359
368
  Scope = Shapes::StringShape.new(name: 'Scope')
360
369
  SearchString = Shapes::BlobShape.new(name: 'SearchString')
361
370
  SensitivityLevel = Shapes::StringShape.new(name: 'SensitivityLevel')
371
+ SensitivityToAct = Shapes::StringShape.new(name: 'SensitivityToAct')
362
372
  SingleCookieName = Shapes::StringShape.new(name: 'SingleCookieName')
363
373
  SingleHeader = Shapes::StructureShape.new(name: 'SingleHeader')
364
374
  SingleQueryArgument = Shapes::StructureShape.new(name: 'SingleQueryArgument')
@@ -406,6 +416,7 @@ module Aws::WAFV2
406
416
  UpdateWebACLResponse = Shapes::StructureShape.new(name: 'UpdateWebACLResponse')
407
417
  UriFragment = Shapes::StructureShape.new(name: 'UriFragment')
408
418
  UriPath = Shapes::StructureShape.new(name: 'UriPath')
419
+ UsageOfAction = Shapes::StringShape.new(name: 'UsageOfAction')
409
420
  UsernameField = Shapes::StructureShape.new(name: 'UsernameField')
410
421
  VendorName = Shapes::StringShape.new(name: 'VendorName')
411
422
  VersionKeyString = Shapes::StringShape.new(name: 'VersionKeyString')
@@ -459,6 +470,10 @@ module Aws::WAFV2
459
470
  AWSManagedRulesATPRuleSet.add_member(:enable_regex_in_path, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnableRegexInPath"))
460
471
  AWSManagedRulesATPRuleSet.struct_class = Types::AWSManagedRulesATPRuleSet
461
472
 
473
+ AWSManagedRulesAntiDDoSRuleSet.add_member(:client_side_action_config, Shapes::ShapeRef.new(shape: ClientSideActionConfig, required: true, location_name: "ClientSideActionConfig"))
474
+ AWSManagedRulesAntiDDoSRuleSet.add_member(:sensitivity_to_block, Shapes::ShapeRef.new(shape: SensitivityToAct, location_name: "SensitivityToBlock"))
475
+ AWSManagedRulesAntiDDoSRuleSet.struct_class = Types::AWSManagedRulesAntiDDoSRuleSet
476
+
462
477
  AWSManagedRulesBotControlRuleSet.add_member(:inspection_level, Shapes::ShapeRef.new(shape: InspectionLevel, required: true, location_name: "InspectionLevel"))
463
478
  AWSManagedRulesBotControlRuleSet.add_member(:enable_machine_learning, Shapes::ShapeRef.new(shape: EnableMachineLearning, location_name: "EnableMachineLearning"))
464
479
  AWSManagedRulesBotControlRuleSet.struct_class = Types::AWSManagedRulesBotControlRuleSet
@@ -481,6 +496,12 @@ module Aws::WAFV2
481
496
  AndStatement.add_member(:statements, Shapes::ShapeRef.new(shape: Statements, required: true, location_name: "Statements"))
482
497
  AndStatement.struct_class = Types::AndStatement
483
498
 
499
+ AsnList.member = Shapes::ShapeRef.new(shape: ASN)
500
+
501
+ AsnMatchStatement.add_member(:asn_list, Shapes::ShapeRef.new(shape: AsnList, required: true, location_name: "AsnList"))
502
+ AsnMatchStatement.add_member(:forwarded_ip_config, Shapes::ShapeRef.new(shape: ForwardedIPConfig, location_name: "ForwardedIPConfig"))
503
+ AsnMatchStatement.struct_class = Types::AsnMatchStatement
504
+
484
505
  AssociateWebACLRequest.add_member(:web_acl_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "WebACLArn"))
485
506
  AssociateWebACLRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceArn"))
486
507
  AssociateWebACLRequest.struct_class = Types::AssociateWebACLRequest
@@ -531,6 +552,14 @@ module Aws::WAFV2
531
552
  CheckCapacityResponse.add_member(:capacity, Shapes::ShapeRef.new(shape: ConsumedCapacity, location_name: "Capacity"))
532
553
  CheckCapacityResponse.struct_class = Types::CheckCapacityResponse
533
554
 
555
+ ClientSideAction.add_member(:usage_of_action, Shapes::ShapeRef.new(shape: UsageOfAction, required: true, location_name: "UsageOfAction"))
556
+ ClientSideAction.add_member(:sensitivity, Shapes::ShapeRef.new(shape: SensitivityToAct, location_name: "Sensitivity"))
557
+ ClientSideAction.add_member(:exempt_uri_regular_expressions, Shapes::ShapeRef.new(shape: RegularExpressionList, location_name: "ExemptUriRegularExpressions"))
558
+ ClientSideAction.struct_class = Types::ClientSideAction
559
+
560
+ ClientSideActionConfig.add_member(:challenge, Shapes::ShapeRef.new(shape: ClientSideAction, required: true, location_name: "Challenge"))
561
+ ClientSideActionConfig.struct_class = Types::ClientSideActionConfig
562
+
534
563
  Condition.add_member(:action_condition, Shapes::ShapeRef.new(shape: ActionCondition, location_name: "ActionCondition"))
535
564
  Condition.add_member(:label_name_condition, Shapes::ShapeRef.new(shape: LabelNameCondition, location_name: "LabelNameCondition"))
536
565
  Condition.struct_class = Types::Condition
@@ -608,6 +637,7 @@ module Aws::WAFV2
608
637
  CreateWebACLRequest.add_member(:challenge_config, Shapes::ShapeRef.new(shape: ChallengeConfig, location_name: "ChallengeConfig"))
609
638
  CreateWebACLRequest.add_member(:token_domains, Shapes::ShapeRef.new(shape: TokenDomains, location_name: "TokenDomains"))
610
639
  CreateWebACLRequest.add_member(:association_config, Shapes::ShapeRef.new(shape: AssociationConfig, location_name: "AssociationConfig"))
640
+ CreateWebACLRequest.add_member(:on_source_d_do_s_protection_config, Shapes::ShapeRef.new(shape: OnSourceDDoSProtectionConfig, location_name: "OnSourceDDoSProtectionConfig"))
611
641
  CreateWebACLRequest.struct_class = Types::CreateWebACLRequest
612
642
 
613
643
  CreateWebACLResponse.add_member(:summary, Shapes::ShapeRef.new(shape: WebACLSummary, location_name: "Summary"))
@@ -1153,6 +1183,7 @@ module Aws::WAFV2
1153
1183
  ManagedRuleGroupConfig.add_member(:aws_managed_rules_bot_control_rule_set, Shapes::ShapeRef.new(shape: AWSManagedRulesBotControlRuleSet, location_name: "AWSManagedRulesBotControlRuleSet"))
1154
1184
  ManagedRuleGroupConfig.add_member(:aws_managed_rules_atp_rule_set, Shapes::ShapeRef.new(shape: AWSManagedRulesATPRuleSet, location_name: "AWSManagedRulesATPRuleSet"))
1155
1185
  ManagedRuleGroupConfig.add_member(:aws_managed_rules_acfp_rule_set, Shapes::ShapeRef.new(shape: AWSManagedRulesACFPRuleSet, location_name: "AWSManagedRulesACFPRuleSet"))
1186
+ ManagedRuleGroupConfig.add_member(:aws_managed_rules_anti_d_do_s_rule_set, Shapes::ShapeRef.new(shape: AWSManagedRulesAntiDDoSRuleSet, location_name: "AWSManagedRulesAntiDDoSRuleSet"))
1156
1187
  ManagedRuleGroupConfig.struct_class = Types::ManagedRuleGroupConfig
1157
1188
 
1158
1189
  ManagedRuleGroupConfigs.member = Shapes::ShapeRef.new(shape: ManagedRuleGroupConfig)
@@ -1220,6 +1251,9 @@ module Aws::WAFV2
1220
1251
  NotStatement.add_member(:statement, Shapes::ShapeRef.new(shape: Statement, required: true, location_name: "Statement"))
1221
1252
  NotStatement.struct_class = Types::NotStatement
1222
1253
 
1254
+ OnSourceDDoSProtectionConfig.add_member(:alb_low_reputation_mode, Shapes::ShapeRef.new(shape: LowReputationMode, required: true, location_name: "ALBLowReputationMode"))
1255
+ OnSourceDDoSProtectionConfig.struct_class = Types::OnSourceDDoSProtectionConfig
1256
+
1223
1257
  OrStatement.add_member(:statements, Shapes::ShapeRef.new(shape: Statements, required: true, location_name: "Statements"))
1224
1258
  OrStatement.struct_class = Types::OrStatement
1225
1259
 
@@ -1282,6 +1316,7 @@ module Aws::WAFV2
1282
1316
  RateBasedStatementCustomKey.add_member(:uri_path, Shapes::ShapeRef.new(shape: RateLimitUriPath, location_name: "UriPath"))
1283
1317
  RateBasedStatementCustomKey.add_member(:ja3_fingerprint, Shapes::ShapeRef.new(shape: RateLimitJA3Fingerprint, location_name: "JA3Fingerprint"))
1284
1318
  RateBasedStatementCustomKey.add_member(:ja4_fingerprint, Shapes::ShapeRef.new(shape: RateLimitJA4Fingerprint, location_name: "JA4Fingerprint"))
1319
+ RateBasedStatementCustomKey.add_member(:asn, Shapes::ShapeRef.new(shape: RateLimitAsn, location_name: "ASN"))
1285
1320
  RateBasedStatementCustomKey.struct_class = Types::RateBasedStatementCustomKey
1286
1321
 
1287
1322
  RateBasedStatementCustomKeys.member = Shapes::ShapeRef.new(shape: RateBasedStatementCustomKey)
@@ -1290,6 +1325,8 @@ module Aws::WAFV2
1290
1325
  RateBasedStatementManagedKeysIPSet.add_member(:addresses, Shapes::ShapeRef.new(shape: IPAddresses, location_name: "Addresses"))
1291
1326
  RateBasedStatementManagedKeysIPSet.struct_class = Types::RateBasedStatementManagedKeysIPSet
1292
1327
 
1328
+ RateLimitAsn.struct_class = Types::RateLimitAsn
1329
+
1293
1330
  RateLimitCookie.add_member(:name, Shapes::ShapeRef.new(shape: FieldToMatchData, required: true, location_name: "Name"))
1294
1331
  RateLimitCookie.add_member(:text_transformations, Shapes::ShapeRef.new(shape: TextTransformations, required: true, location_name: "TextTransformations"))
1295
1332
  RateLimitCookie.struct_class = Types::RateLimitCookie
@@ -1529,6 +1566,7 @@ module Aws::WAFV2
1529
1566
  Statement.add_member(:managed_rule_group_statement, Shapes::ShapeRef.new(shape: ManagedRuleGroupStatement, location_name: "ManagedRuleGroupStatement"))
1530
1567
  Statement.add_member(:label_match_statement, Shapes::ShapeRef.new(shape: LabelMatchStatement, location_name: "LabelMatchStatement"))
1531
1568
  Statement.add_member(:regex_match_statement, Shapes::ShapeRef.new(shape: RegexMatchStatement, location_name: "RegexMatchStatement"))
1569
+ Statement.add_member(:asn_match_statement, Shapes::ShapeRef.new(shape: AsnMatchStatement, location_name: "AsnMatchStatement"))
1532
1570
  Statement.struct_class = Types::Statement
1533
1571
 
1534
1572
  Statements.member = Shapes::ShapeRef.new(shape: Statement)
@@ -1631,6 +1669,7 @@ module Aws::WAFV2
1631
1669
  UpdateWebACLRequest.add_member(:challenge_config, Shapes::ShapeRef.new(shape: ChallengeConfig, location_name: "ChallengeConfig"))
1632
1670
  UpdateWebACLRequest.add_member(:token_domains, Shapes::ShapeRef.new(shape: TokenDomains, location_name: "TokenDomains"))
1633
1671
  UpdateWebACLRequest.add_member(:association_config, Shapes::ShapeRef.new(shape: AssociationConfig, location_name: "AssociationConfig"))
1672
+ UpdateWebACLRequest.add_member(:on_source_d_do_s_protection_config, Shapes::ShapeRef.new(shape: OnSourceDDoSProtectionConfig, location_name: "OnSourceDDoSProtectionConfig"))
1634
1673
  UpdateWebACLRequest.struct_class = Types::UpdateWebACLRequest
1635
1674
 
1636
1675
  UpdateWebACLResponse.add_member(:next_lock_token, Shapes::ShapeRef.new(shape: LockToken, location_name: "NextLockToken"))
@@ -1736,6 +1775,7 @@ module Aws::WAFV2
1736
1775
  WebACL.add_member(:token_domains, Shapes::ShapeRef.new(shape: TokenDomains, location_name: "TokenDomains"))
1737
1776
  WebACL.add_member(:association_config, Shapes::ShapeRef.new(shape: AssociationConfig, location_name: "AssociationConfig"))
1738
1777
  WebACL.add_member(:retrofitted_by_firewall_manager, Shapes::ShapeRef.new(shape: Boolean, location_name: "RetrofittedByFirewallManager"))
1778
+ WebACL.add_member(:on_source_d_do_s_protection_config, Shapes::ShapeRef.new(shape: OnSourceDDoSProtectionConfig, location_name: "OnSourceDDoSProtectionConfig"))
1739
1779
  WebACL.struct_class = Types::WebACL
1740
1780
 
1741
1781
  WebACLSummaries.member = Shapes::ShapeRef.new(shape: WebACLSummary)