aws-sdk-wafv2 1.42.0 → 1.44.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,18 +10,53 @@
10
10
  module Aws::WAFV2
11
11
  module Types
12
12
 
13
+ # Details for your use of the Bot Control managed rule group, used in
14
+ # `ManagedRuleGroupConfig`.
15
+ #
16
+ # @note When making an API call, you may pass AWSManagedRulesBotControlRuleSet
17
+ # data as a hash:
18
+ #
19
+ # {
20
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
21
+ # }
22
+ #
23
+ # @!attribute [rw] inspection_level
24
+ # The inspection level to use for the Bot Control rule group. The
25
+ # common level is the least expensive. The targeted level includes all
26
+ # common level rules and adds rules with more advanced inspection
27
+ # criteria. For details, see [WAF Bot Control rule group][1].
28
+ #
29
+ #
30
+ #
31
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html
32
+ # @return [String]
33
+ #
34
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/AWSManagedRulesBotControlRuleSet AWS API Documentation
35
+ #
36
+ class AWSManagedRulesBotControlRuleSet < Struct.new(
37
+ :inspection_level)
38
+ SENSITIVE = []
39
+ include Aws::Structure
40
+ end
41
+
13
42
  # A single action condition for a Condition in a logging filter.
14
43
  #
15
44
  # @note When making an API call, you may pass ActionCondition
16
45
  # data as a hash:
17
46
  #
18
47
  # {
19
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
48
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, CHALLENGE, EXCLUDED_AS_COUNT
20
49
  # }
21
50
  #
22
51
  # @!attribute [rw] action
23
52
  # The action setting that a log record must contain in order to meet
24
- # the condition.
53
+ # the condition. This is the action that WAF applied to the web
54
+ # request.
55
+ #
56
+ # For rule groups, this is either the configured rule action setting,
57
+ # or if you've applied a rule action override to the rule, it's the
58
+ # override action. The value `EXCLUDED_AS_COUNT` matches on excluded
59
+ # rules and also on rules that have a rule action override of Count.
25
60
  # @return [String]
26
61
  #
27
62
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ActionCondition AWS API Documentation
@@ -358,6 +393,65 @@ module Aws::WAFV2
358
393
  # name: "EntityName", # required
359
394
  # },
360
395
  # ],
396
+ # rule_action_overrides: [
397
+ # {
398
+ # name: "EntityName", # required
399
+ # action_to_use: { # required
400
+ # block: {
401
+ # custom_response: {
402
+ # response_code: 1, # required
403
+ # custom_response_body_key: "EntityName",
404
+ # response_headers: [
405
+ # {
406
+ # name: "CustomHTTPHeaderName", # required
407
+ # value: "CustomHTTPHeaderValue", # required
408
+ # },
409
+ # ],
410
+ # },
411
+ # },
412
+ # allow: {
413
+ # custom_request_handling: {
414
+ # insert_headers: [ # required
415
+ # {
416
+ # name: "CustomHTTPHeaderName", # required
417
+ # value: "CustomHTTPHeaderValue", # required
418
+ # },
419
+ # ],
420
+ # },
421
+ # },
422
+ # count: {
423
+ # custom_request_handling: {
424
+ # insert_headers: [ # required
425
+ # {
426
+ # name: "CustomHTTPHeaderName", # required
427
+ # value: "CustomHTTPHeaderValue", # required
428
+ # },
429
+ # ],
430
+ # },
431
+ # },
432
+ # captcha: {
433
+ # custom_request_handling: {
434
+ # insert_headers: [ # required
435
+ # {
436
+ # name: "CustomHTTPHeaderName", # required
437
+ # value: "CustomHTTPHeaderValue", # required
438
+ # },
439
+ # ],
440
+ # },
441
+ # },
442
+ # challenge: {
443
+ # custom_request_handling: {
444
+ # insert_headers: [ # required
445
+ # {
446
+ # name: "CustomHTTPHeaderName", # required
447
+ # value: "CustomHTTPHeaderValue", # required
448
+ # },
449
+ # ],
450
+ # },
451
+ # },
452
+ # },
453
+ # },
454
+ # ],
361
455
  # },
362
456
  # ip_set_reference_statement: {
363
457
  # arn: "ResourceArn", # required
@@ -473,6 +567,68 @@ module Aws::WAFV2
473
567
  # password_field: {
474
568
  # identifier: "FieldIdentifier", # required
475
569
  # },
570
+ # aws_managed_rules_bot_control_rule_set: {
571
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
572
+ # },
573
+ # },
574
+ # ],
575
+ # rule_action_overrides: [
576
+ # {
577
+ # name: "EntityName", # required
578
+ # action_to_use: { # required
579
+ # block: {
580
+ # custom_response: {
581
+ # response_code: 1, # required
582
+ # custom_response_body_key: "EntityName",
583
+ # response_headers: [
584
+ # {
585
+ # name: "CustomHTTPHeaderName", # required
586
+ # value: "CustomHTTPHeaderValue", # required
587
+ # },
588
+ # ],
589
+ # },
590
+ # },
591
+ # allow: {
592
+ # custom_request_handling: {
593
+ # insert_headers: [ # required
594
+ # {
595
+ # name: "CustomHTTPHeaderName", # required
596
+ # value: "CustomHTTPHeaderValue", # required
597
+ # },
598
+ # ],
599
+ # },
600
+ # },
601
+ # count: {
602
+ # custom_request_handling: {
603
+ # insert_headers: [ # required
604
+ # {
605
+ # name: "CustomHTTPHeaderName", # required
606
+ # value: "CustomHTTPHeaderValue", # required
607
+ # },
608
+ # ],
609
+ # },
610
+ # },
611
+ # captcha: {
612
+ # custom_request_handling: {
613
+ # insert_headers: [ # required
614
+ # {
615
+ # name: "CustomHTTPHeaderName", # required
616
+ # value: "CustomHTTPHeaderValue", # required
617
+ # },
618
+ # ],
619
+ # },
620
+ # },
621
+ # challenge: {
622
+ # custom_request_handling: {
623
+ # insert_headers: [ # required
624
+ # {
625
+ # name: "CustomHTTPHeaderName", # required
626
+ # value: "CustomHTTPHeaderValue", # required
627
+ # },
628
+ # ],
629
+ # },
630
+ # },
631
+ # },
476
632
  # },
477
633
  # ],
478
634
  # },
@@ -864,11 +1020,12 @@ module Aws::WAFV2
864
1020
  # Specifies that WAF should run a `CAPTCHA` check against the request:
865
1021
  #
866
1022
  # * If the request includes a valid, unexpired `CAPTCHA` token, WAF
867
- # allows the web request inspection to proceed to the next rule,
868
- # similar to a `CountAction`.
1023
+ # applies any custom request handling and labels that you've
1024
+ # configured and then allows the web request inspection to proceed to
1025
+ # the next rule, similar to a `CountAction`.
869
1026
  #
870
- # * If the request doesn't include a valid, unexpired `CAPTCHA` token,
871
- # WAF discontinues the web ACL evaluation of the request and blocks it
1027
+ # * If the request doesn't include a valid, unexpired token, WAF
1028
+ # discontinues the web ACL evaluation of the request and blocks it
872
1029
  # from going to its intended destination.
873
1030
  #
874
1031
  # WAF generates a response that it sends back to the client, which
@@ -879,7 +1036,8 @@ module Aws::WAFV2
879
1036
  # * The HTTP status code `405 Method Not Allowed`.
880
1037
  #
881
1038
  # * If the request contains an `Accept` header with a value of
882
- # `text/html`, the response includes a `CAPTCHA` challenge.
1039
+ # `text/html`, the response includes a `CAPTCHA` JavaScript page
1040
+ # interstitial.
883
1041
  #
884
1042
  # You can configure the expiration time in the `CaptchaConfig`
885
1043
  # `ImmunityTimeProperty` setting at the rule and web ACL level. The rule
@@ -903,7 +1061,9 @@ module Aws::WAFV2
903
1061
  # }
904
1062
  #
905
1063
  # @!attribute [rw] custom_request_handling
906
- # Defines custom handling for the web request.
1064
+ # Defines custom handling for the web request, used when the `CAPTCHA`
1065
+ # inspection determines that the request's token is valid and
1066
+ # unexpired.
907
1067
  #
908
1068
  # For information about customizing web requests and responses, see
909
1069
  # [Customizing web requests and responses in WAF][1] in the [WAF
@@ -936,8 +1096,8 @@ module Aws::WAFV2
936
1096
  # }
937
1097
  #
938
1098
  # @!attribute [rw] immunity_time_property
939
- # Determines how long a `CAPTCHA` token remains valid after the client
940
- # successfully solves a `CAPTCHA` puzzle.
1099
+ # Determines how long a `CAPTCHA` timestamp in the token remains valid
1100
+ # after the client successfully solves a `CAPTCHA` puzzle.
941
1101
  # @return [Types::ImmunityTimeProperty]
942
1102
  #
943
1103
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CaptchaConfig AWS API Documentation
@@ -958,8 +1118,7 @@ module Aws::WAFV2
958
1118
  # @return [Integer]
959
1119
  #
960
1120
  # @!attribute [rw] solve_timestamp
961
- # The time that the `CAPTCHA` puzzle was solved for the supplied
962
- # token.
1121
+ # The time that the `CAPTCHA` was last solved for the supplied token.
963
1122
  # @return [Integer]
964
1123
  #
965
1124
  # @!attribute [rw] failure_reason
@@ -977,6 +1136,138 @@ module Aws::WAFV2
977
1136
  include Aws::Structure
978
1137
  end
979
1138
 
1139
+ # Specifies that WAF should run a `Challenge` check against the request
1140
+ # to verify that the request is coming from a legitimate client session:
1141
+ #
1142
+ # * If the request includes a valid, unexpired challenge token, WAF
1143
+ # applies any custom request handling and labels that you've
1144
+ # configured and then allows the web request inspection to proceed to
1145
+ # the next rule, similar to a `CountAction`.
1146
+ #
1147
+ # * If the request doesn't include a valid, unexpired challenge token,
1148
+ # WAF discontinues the web ACL evaluation of the request and blocks it
1149
+ # from going to its intended destination.
1150
+ #
1151
+ # WAF then generates a challenge response that it sends back to the
1152
+ # client, which includes the following:
1153
+ #
1154
+ # * The header `x-amzn-waf-action` with a value of `challenge`.
1155
+ #
1156
+ # * The HTTP status code `202 Request Accepted`.
1157
+ #
1158
+ # * If the request contains an `Accept` header with a value of
1159
+ # `text/html`, the response includes a JavaScript page interstitial
1160
+ # with a challenge script.
1161
+ #
1162
+ # Challenges run silent browser interrogations in the background, and
1163
+ # don't generally affect the end user experience.
1164
+ #
1165
+ # A challenge enforces token acquisition using an interstitial
1166
+ # JavaScript challenge that inspects the client session for legitimate
1167
+ # behavior. The challenge blocks bots or at least increases the cost
1168
+ # of operating sophisticated bots.
1169
+ #
1170
+ # After the client session successfully responds to the challenge, it
1171
+ # receives a new token from WAF, which the challenge script uses to
1172
+ # resubmit the original request.
1173
+ #
1174
+ # You can configure the expiration time in the `ChallengeConfig`
1175
+ # `ImmunityTimeProperty` setting at the rule and web ACL level. The rule
1176
+ # setting overrides the web ACL setting.
1177
+ #
1178
+ # This action option is available for rules. It isn't available for web
1179
+ # ACL default actions.
1180
+ #
1181
+ # @note When making an API call, you may pass ChallengeAction
1182
+ # data as a hash:
1183
+ #
1184
+ # {
1185
+ # custom_request_handling: {
1186
+ # insert_headers: [ # required
1187
+ # {
1188
+ # name: "CustomHTTPHeaderName", # required
1189
+ # value: "CustomHTTPHeaderValue", # required
1190
+ # },
1191
+ # ],
1192
+ # },
1193
+ # }
1194
+ #
1195
+ # @!attribute [rw] custom_request_handling
1196
+ # Defines custom handling for the web request, used when the challenge
1197
+ # inspection determines that the request's token is valid and
1198
+ # unexpired.
1199
+ #
1200
+ # For information about customizing web requests and responses, see
1201
+ # [Customizing web requests and responses in WAF][1] in the [WAF
1202
+ # Developer Guide][2].
1203
+ #
1204
+ #
1205
+ #
1206
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
1207
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1208
+ # @return [Types::CustomRequestHandling]
1209
+ #
1210
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ChallengeAction AWS API Documentation
1211
+ #
1212
+ class ChallengeAction < Struct.new(
1213
+ :custom_request_handling)
1214
+ SENSITIVE = []
1215
+ include Aws::Structure
1216
+ end
1217
+
1218
+ # Specifies how WAF should handle `Challenge` evaluations. This is
1219
+ # available at the web ACL level and in each rule.
1220
+ #
1221
+ # @note When making an API call, you may pass ChallengeConfig
1222
+ # data as a hash:
1223
+ #
1224
+ # {
1225
+ # immunity_time_property: {
1226
+ # immunity_time: 1, # required
1227
+ # },
1228
+ # }
1229
+ #
1230
+ # @!attribute [rw] immunity_time_property
1231
+ # Determines how long a challenge timestamp in the token remains valid
1232
+ # after the client successfully responds to a challenge.
1233
+ # @return [Types::ImmunityTimeProperty]
1234
+ #
1235
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ChallengeConfig AWS API Documentation
1236
+ #
1237
+ class ChallengeConfig < Struct.new(
1238
+ :immunity_time_property)
1239
+ SENSITIVE = []
1240
+ include Aws::Structure
1241
+ end
1242
+
1243
+ # The result from the inspection of the web request for a valid
1244
+ # challenge token.
1245
+ #
1246
+ # @!attribute [rw] response_code
1247
+ # The HTTP response code indicating the status of the challenge token
1248
+ # in the web request. If the token is missing, invalid, or expired,
1249
+ # this code is `202 Request Accepted`.
1250
+ # @return [Integer]
1251
+ #
1252
+ # @!attribute [rw] solve_timestamp
1253
+ # The time that the challenge was last solved for the supplied token.
1254
+ # @return [Integer]
1255
+ #
1256
+ # @!attribute [rw] failure_reason
1257
+ # The reason for failure, populated when the evaluation of the token
1258
+ # fails.
1259
+ # @return [String]
1260
+ #
1261
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ChallengeResponse AWS API Documentation
1262
+ #
1263
+ class ChallengeResponse < Struct.new(
1264
+ :response_code,
1265
+ :solve_timestamp,
1266
+ :failure_reason)
1267
+ SENSITIVE = []
1268
+ include Aws::Structure
1269
+ end
1270
+
980
1271
  # @note When making an API call, you may pass CheckCapacityRequest
981
1272
  # data as a hash:
982
1273
  #
@@ -1234,6 +1525,65 @@ module Aws::WAFV2
1234
1525
  # name: "EntityName", # required
1235
1526
  # },
1236
1527
  # ],
1528
+ # rule_action_overrides: [
1529
+ # {
1530
+ # name: "EntityName", # required
1531
+ # action_to_use: { # required
1532
+ # block: {
1533
+ # custom_response: {
1534
+ # response_code: 1, # required
1535
+ # custom_response_body_key: "EntityName",
1536
+ # response_headers: [
1537
+ # {
1538
+ # name: "CustomHTTPHeaderName", # required
1539
+ # value: "CustomHTTPHeaderValue", # required
1540
+ # },
1541
+ # ],
1542
+ # },
1543
+ # },
1544
+ # allow: {
1545
+ # custom_request_handling: {
1546
+ # insert_headers: [ # required
1547
+ # {
1548
+ # name: "CustomHTTPHeaderName", # required
1549
+ # value: "CustomHTTPHeaderValue", # required
1550
+ # },
1551
+ # ],
1552
+ # },
1553
+ # },
1554
+ # count: {
1555
+ # custom_request_handling: {
1556
+ # insert_headers: [ # required
1557
+ # {
1558
+ # name: "CustomHTTPHeaderName", # required
1559
+ # value: "CustomHTTPHeaderValue", # required
1560
+ # },
1561
+ # ],
1562
+ # },
1563
+ # },
1564
+ # captcha: {
1565
+ # custom_request_handling: {
1566
+ # insert_headers: [ # required
1567
+ # {
1568
+ # name: "CustomHTTPHeaderName", # required
1569
+ # value: "CustomHTTPHeaderValue", # required
1570
+ # },
1571
+ # ],
1572
+ # },
1573
+ # },
1574
+ # challenge: {
1575
+ # custom_request_handling: {
1576
+ # insert_headers: [ # required
1577
+ # {
1578
+ # name: "CustomHTTPHeaderName", # required
1579
+ # value: "CustomHTTPHeaderValue", # required
1580
+ # },
1581
+ # ],
1582
+ # },
1583
+ # },
1584
+ # },
1585
+ # },
1586
+ # ],
1237
1587
  # },
1238
1588
  # ip_set_reference_statement: {
1239
1589
  # arn: "ResourceArn", # required
@@ -1353,6 +1703,68 @@ module Aws::WAFV2
1353
1703
  # password_field: {
1354
1704
  # identifier: "FieldIdentifier", # required
1355
1705
  # },
1706
+ # aws_managed_rules_bot_control_rule_set: {
1707
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
1708
+ # },
1709
+ # },
1710
+ # ],
1711
+ # rule_action_overrides: [
1712
+ # {
1713
+ # name: "EntityName", # required
1714
+ # action_to_use: { # required
1715
+ # block: {
1716
+ # custom_response: {
1717
+ # response_code: 1, # required
1718
+ # custom_response_body_key: "EntityName",
1719
+ # response_headers: [
1720
+ # {
1721
+ # name: "CustomHTTPHeaderName", # required
1722
+ # value: "CustomHTTPHeaderValue", # required
1723
+ # },
1724
+ # ],
1725
+ # },
1726
+ # },
1727
+ # allow: {
1728
+ # custom_request_handling: {
1729
+ # insert_headers: [ # required
1730
+ # {
1731
+ # name: "CustomHTTPHeaderName", # required
1732
+ # value: "CustomHTTPHeaderValue", # required
1733
+ # },
1734
+ # ],
1735
+ # },
1736
+ # },
1737
+ # count: {
1738
+ # custom_request_handling: {
1739
+ # insert_headers: [ # required
1740
+ # {
1741
+ # name: "CustomHTTPHeaderName", # required
1742
+ # value: "CustomHTTPHeaderValue", # required
1743
+ # },
1744
+ # ],
1745
+ # },
1746
+ # },
1747
+ # captcha: {
1748
+ # custom_request_handling: {
1749
+ # insert_headers: [ # required
1750
+ # {
1751
+ # name: "CustomHTTPHeaderName", # required
1752
+ # value: "CustomHTTPHeaderValue", # required
1753
+ # },
1754
+ # ],
1755
+ # },
1756
+ # },
1757
+ # challenge: {
1758
+ # custom_request_handling: {
1759
+ # insert_headers: [ # required
1760
+ # {
1761
+ # name: "CustomHTTPHeaderName", # required
1762
+ # value: "CustomHTTPHeaderValue", # required
1763
+ # },
1764
+ # ],
1765
+ # },
1766
+ # },
1767
+ # },
1356
1768
  # },
1357
1769
  # ],
1358
1770
  # },
@@ -1462,6 +1874,16 @@ module Aws::WAFV2
1462
1874
  # ],
1463
1875
  # },
1464
1876
  # },
1877
+ # challenge: {
1878
+ # custom_request_handling: {
1879
+ # insert_headers: [ # required
1880
+ # {
1881
+ # name: "CustomHTTPHeaderName", # required
1882
+ # value: "CustomHTTPHeaderValue", # required
1883
+ # },
1884
+ # ],
1885
+ # },
1886
+ # },
1465
1887
  # },
1466
1888
  # override_action: {
1467
1889
  # count: {
@@ -1492,6 +1914,11 @@ module Aws::WAFV2
1492
1914
  # immunity_time: 1, # required
1493
1915
  # },
1494
1916
  # },
1917
+ # challenge_config: {
1918
+ # immunity_time_property: {
1919
+ # immunity_time: 1, # required
1920
+ # },
1921
+ # },
1495
1922
  # },
1496
1923
  # ],
1497
1924
  # }
@@ -1544,7 +1971,7 @@ module Aws::WAFV2
1544
1971
  #
1545
1972
  # {
1546
1973
  # action_condition: {
1547
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
1974
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, CHALLENGE, EXCLUDED_AS_COUNT
1548
1975
  # },
1549
1976
  # label_name_condition: {
1550
1977
  # label_name: "LabelName", # required
@@ -2189,6 +2616,65 @@ module Aws::WAFV2
2189
2616
  # name: "EntityName", # required
2190
2617
  # },
2191
2618
  # ],
2619
+ # rule_action_overrides: [
2620
+ # {
2621
+ # name: "EntityName", # required
2622
+ # action_to_use: { # required
2623
+ # block: {
2624
+ # custom_response: {
2625
+ # response_code: 1, # required
2626
+ # custom_response_body_key: "EntityName",
2627
+ # response_headers: [
2628
+ # {
2629
+ # name: "CustomHTTPHeaderName", # required
2630
+ # value: "CustomHTTPHeaderValue", # required
2631
+ # },
2632
+ # ],
2633
+ # },
2634
+ # },
2635
+ # allow: {
2636
+ # custom_request_handling: {
2637
+ # insert_headers: [ # required
2638
+ # {
2639
+ # name: "CustomHTTPHeaderName", # required
2640
+ # value: "CustomHTTPHeaderValue", # required
2641
+ # },
2642
+ # ],
2643
+ # },
2644
+ # },
2645
+ # count: {
2646
+ # custom_request_handling: {
2647
+ # insert_headers: [ # required
2648
+ # {
2649
+ # name: "CustomHTTPHeaderName", # required
2650
+ # value: "CustomHTTPHeaderValue", # required
2651
+ # },
2652
+ # ],
2653
+ # },
2654
+ # },
2655
+ # captcha: {
2656
+ # custom_request_handling: {
2657
+ # insert_headers: [ # required
2658
+ # {
2659
+ # name: "CustomHTTPHeaderName", # required
2660
+ # value: "CustomHTTPHeaderValue", # required
2661
+ # },
2662
+ # ],
2663
+ # },
2664
+ # },
2665
+ # challenge: {
2666
+ # custom_request_handling: {
2667
+ # insert_headers: [ # required
2668
+ # {
2669
+ # name: "CustomHTTPHeaderName", # required
2670
+ # value: "CustomHTTPHeaderValue", # required
2671
+ # },
2672
+ # ],
2673
+ # },
2674
+ # },
2675
+ # },
2676
+ # },
2677
+ # ],
2192
2678
  # },
2193
2679
  # ip_set_reference_statement: {
2194
2680
  # arn: "ResourceArn", # required
@@ -2308,6 +2794,68 @@ module Aws::WAFV2
2308
2794
  # password_field: {
2309
2795
  # identifier: "FieldIdentifier", # required
2310
2796
  # },
2797
+ # aws_managed_rules_bot_control_rule_set: {
2798
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
2799
+ # },
2800
+ # },
2801
+ # ],
2802
+ # rule_action_overrides: [
2803
+ # {
2804
+ # name: "EntityName", # required
2805
+ # action_to_use: { # required
2806
+ # block: {
2807
+ # custom_response: {
2808
+ # response_code: 1, # required
2809
+ # custom_response_body_key: "EntityName",
2810
+ # response_headers: [
2811
+ # {
2812
+ # name: "CustomHTTPHeaderName", # required
2813
+ # value: "CustomHTTPHeaderValue", # required
2814
+ # },
2815
+ # ],
2816
+ # },
2817
+ # },
2818
+ # allow: {
2819
+ # custom_request_handling: {
2820
+ # insert_headers: [ # required
2821
+ # {
2822
+ # name: "CustomHTTPHeaderName", # required
2823
+ # value: "CustomHTTPHeaderValue", # required
2824
+ # },
2825
+ # ],
2826
+ # },
2827
+ # },
2828
+ # count: {
2829
+ # custom_request_handling: {
2830
+ # insert_headers: [ # required
2831
+ # {
2832
+ # name: "CustomHTTPHeaderName", # required
2833
+ # value: "CustomHTTPHeaderValue", # required
2834
+ # },
2835
+ # ],
2836
+ # },
2837
+ # },
2838
+ # captcha: {
2839
+ # custom_request_handling: {
2840
+ # insert_headers: [ # required
2841
+ # {
2842
+ # name: "CustomHTTPHeaderName", # required
2843
+ # value: "CustomHTTPHeaderValue", # required
2844
+ # },
2845
+ # ],
2846
+ # },
2847
+ # },
2848
+ # challenge: {
2849
+ # custom_request_handling: {
2850
+ # insert_headers: [ # required
2851
+ # {
2852
+ # name: "CustomHTTPHeaderName", # required
2853
+ # value: "CustomHTTPHeaderValue", # required
2854
+ # },
2855
+ # ],
2856
+ # },
2857
+ # },
2858
+ # },
2311
2859
  # },
2312
2860
  # ],
2313
2861
  # },
@@ -2417,6 +2965,16 @@ module Aws::WAFV2
2417
2965
  # ],
2418
2966
  # },
2419
2967
  # },
2968
+ # challenge: {
2969
+ # custom_request_handling: {
2970
+ # insert_headers: [ # required
2971
+ # {
2972
+ # name: "CustomHTTPHeaderName", # required
2973
+ # value: "CustomHTTPHeaderValue", # required
2974
+ # },
2975
+ # ],
2976
+ # },
2977
+ # },
2420
2978
  # },
2421
2979
  # override_action: {
2422
2980
  # count: {
@@ -2447,6 +3005,11 @@ module Aws::WAFV2
2447
3005
  # immunity_time: 1, # required
2448
3006
  # },
2449
3007
  # },
3008
+ # challenge_config: {
3009
+ # immunity_time_property: {
3010
+ # immunity_time: 1, # required
3011
+ # },
3012
+ # },
2450
3013
  # },
2451
3014
  # ],
2452
3015
  # visibility_config: { # required
@@ -2861,6 +3424,65 @@ module Aws::WAFV2
2861
3424
  # name: "EntityName", # required
2862
3425
  # },
2863
3426
  # ],
3427
+ # rule_action_overrides: [
3428
+ # {
3429
+ # name: "EntityName", # required
3430
+ # action_to_use: { # required
3431
+ # block: {
3432
+ # custom_response: {
3433
+ # response_code: 1, # required
3434
+ # custom_response_body_key: "EntityName",
3435
+ # response_headers: [
3436
+ # {
3437
+ # name: "CustomHTTPHeaderName", # required
3438
+ # value: "CustomHTTPHeaderValue", # required
3439
+ # },
3440
+ # ],
3441
+ # },
3442
+ # },
3443
+ # allow: {
3444
+ # custom_request_handling: {
3445
+ # insert_headers: [ # required
3446
+ # {
3447
+ # name: "CustomHTTPHeaderName", # required
3448
+ # value: "CustomHTTPHeaderValue", # required
3449
+ # },
3450
+ # ],
3451
+ # },
3452
+ # },
3453
+ # count: {
3454
+ # custom_request_handling: {
3455
+ # insert_headers: [ # required
3456
+ # {
3457
+ # name: "CustomHTTPHeaderName", # required
3458
+ # value: "CustomHTTPHeaderValue", # required
3459
+ # },
3460
+ # ],
3461
+ # },
3462
+ # },
3463
+ # captcha: {
3464
+ # custom_request_handling: {
3465
+ # insert_headers: [ # required
3466
+ # {
3467
+ # name: "CustomHTTPHeaderName", # required
3468
+ # value: "CustomHTTPHeaderValue", # required
3469
+ # },
3470
+ # ],
3471
+ # },
3472
+ # },
3473
+ # challenge: {
3474
+ # custom_request_handling: {
3475
+ # insert_headers: [ # required
3476
+ # {
3477
+ # name: "CustomHTTPHeaderName", # required
3478
+ # value: "CustomHTTPHeaderValue", # required
3479
+ # },
3480
+ # ],
3481
+ # },
3482
+ # },
3483
+ # },
3484
+ # },
3485
+ # ],
2864
3486
  # },
2865
3487
  # ip_set_reference_statement: {
2866
3488
  # arn: "ResourceArn", # required
@@ -2980,6 +3602,68 @@ module Aws::WAFV2
2980
3602
  # password_field: {
2981
3603
  # identifier: "FieldIdentifier", # required
2982
3604
  # },
3605
+ # aws_managed_rules_bot_control_rule_set: {
3606
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
3607
+ # },
3608
+ # },
3609
+ # ],
3610
+ # rule_action_overrides: [
3611
+ # {
3612
+ # name: "EntityName", # required
3613
+ # action_to_use: { # required
3614
+ # block: {
3615
+ # custom_response: {
3616
+ # response_code: 1, # required
3617
+ # custom_response_body_key: "EntityName",
3618
+ # response_headers: [
3619
+ # {
3620
+ # name: "CustomHTTPHeaderName", # required
3621
+ # value: "CustomHTTPHeaderValue", # required
3622
+ # },
3623
+ # ],
3624
+ # },
3625
+ # },
3626
+ # allow: {
3627
+ # custom_request_handling: {
3628
+ # insert_headers: [ # required
3629
+ # {
3630
+ # name: "CustomHTTPHeaderName", # required
3631
+ # value: "CustomHTTPHeaderValue", # required
3632
+ # },
3633
+ # ],
3634
+ # },
3635
+ # },
3636
+ # count: {
3637
+ # custom_request_handling: {
3638
+ # insert_headers: [ # required
3639
+ # {
3640
+ # name: "CustomHTTPHeaderName", # required
3641
+ # value: "CustomHTTPHeaderValue", # required
3642
+ # },
3643
+ # ],
3644
+ # },
3645
+ # },
3646
+ # captcha: {
3647
+ # custom_request_handling: {
3648
+ # insert_headers: [ # required
3649
+ # {
3650
+ # name: "CustomHTTPHeaderName", # required
3651
+ # value: "CustomHTTPHeaderValue", # required
3652
+ # },
3653
+ # ],
3654
+ # },
3655
+ # },
3656
+ # challenge: {
3657
+ # custom_request_handling: {
3658
+ # insert_headers: [ # required
3659
+ # {
3660
+ # name: "CustomHTTPHeaderName", # required
3661
+ # value: "CustomHTTPHeaderValue", # required
3662
+ # },
3663
+ # ],
3664
+ # },
3665
+ # },
3666
+ # },
2983
3667
  # },
2984
3668
  # ],
2985
3669
  # },
@@ -3089,6 +3773,16 @@ module Aws::WAFV2
3089
3773
  # ],
3090
3774
  # },
3091
3775
  # },
3776
+ # challenge: {
3777
+ # custom_request_handling: {
3778
+ # insert_headers: [ # required
3779
+ # {
3780
+ # name: "CustomHTTPHeaderName", # required
3781
+ # value: "CustomHTTPHeaderValue", # required
3782
+ # },
3783
+ # ],
3784
+ # },
3785
+ # },
3092
3786
  # },
3093
3787
  # override_action: {
3094
3788
  # count: {
@@ -3119,6 +3813,11 @@ module Aws::WAFV2
3119
3813
  # immunity_time: 1, # required
3120
3814
  # },
3121
3815
  # },
3816
+ # challenge_config: {
3817
+ # immunity_time_property: {
3818
+ # immunity_time: 1, # required
3819
+ # },
3820
+ # },
3122
3821
  # },
3123
3822
  # ],
3124
3823
  # visibility_config: { # required
@@ -3143,6 +3842,12 @@ module Aws::WAFV2
3143
3842
  # immunity_time: 1, # required
3144
3843
  # },
3145
3844
  # },
3845
+ # challenge_config: {
3846
+ # immunity_time_property: {
3847
+ # immunity_time: 1, # required
3848
+ # },
3849
+ # },
3850
+ # token_domains: ["TokenDomain"],
3146
3851
  # }
3147
3852
  #
3148
3853
  # @!attribute [rw] name
@@ -3217,6 +3922,26 @@ module Aws::WAFV2
3217
3922
  # specify this, WAF uses its default settings for `CaptchaConfig`.
3218
3923
  # @return [Types::CaptchaConfig]
3219
3924
  #
3925
+ # @!attribute [rw] challenge_config
3926
+ # Specifies how WAF should handle challenge evaluations for rules that
3927
+ # don't have their own `ChallengeConfig` settings. If you don't
3928
+ # specify this, WAF uses its default settings for `ChallengeConfig`.
3929
+ # @return [Types::ChallengeConfig]
3930
+ #
3931
+ # @!attribute [rw] token_domains
3932
+ # Specifies the domains that WAF should accept in a web request token.
3933
+ # This enables the use of tokens across multiple protected websites.
3934
+ # When WAF provides a token, it uses the domain of the Amazon Web
3935
+ # Services resource that the web ACL is protecting. If you don't
3936
+ # specify a list of token domains, WAF accepts tokens only for the
3937
+ # domain of the protected resource. With a token domain list, WAF
3938
+ # accepts the resource's host domain plus all domains in the token
3939
+ # domain list, including their prefixed subdomains.
3940
+ #
3941
+ # Example JSON: `"TokenDomains": \{ "mywebsite.com",
3942
+ # "myotherwebsite.com" \}`
3943
+ # @return [Array<String>]
3944
+ #
3220
3945
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateWebACLRequest AWS API Documentation
3221
3946
  #
3222
3947
  class CreateWebACLRequest < Struct.new(
@@ -3228,7 +3953,9 @@ module Aws::WAFV2
3228
3953
  :visibility_config,
3229
3954
  :tags,
3230
3955
  :custom_response_bodies,
3231
- :captcha_config)
3956
+ :captcha_config,
3957
+ :challenge_config,
3958
+ :token_domains)
3232
3959
  SENSITIVE = []
3233
3960
  include Aws::Structure
3234
3961
  end
@@ -3283,8 +4010,9 @@ module Aws::WAFV2
3283
4010
  end
3284
4011
 
3285
4012
  # Custom request handling behavior that inserts custom headers into a
3286
- # web request. You can add custom request handling for the rule actions
3287
- # allow and count.
4013
+ # web request. You can add custom request handling for WAF to use when
4014
+ # the rule action doesn't block the request. For example,
4015
+ # `CaptchaAction` for requests with valid t okens, and `AllowAction`.
3288
4016
  #
3289
4017
  # For information about customizing web requests and responses, see
3290
4018
  # [Customizing web requests and responses in WAF][1] in the [WAF
@@ -4015,10 +4743,12 @@ module Aws::WAFV2
4015
4743
  class DisassociateWebACLResponse < Aws::EmptyStructure; end
4016
4744
 
4017
4745
  # Specifies a single rule in a rule group whose action you want to
4018
- # override to `Count`. When you exclude a rule, WAF evaluates it exactly
4019
- # as it would if the rule action setting were `Count`. This is a useful
4020
- # option for testing the rules in a rule group without modifying how
4021
- # they handle your web traffic.
4746
+ # override to `Count`.
4747
+ #
4748
+ # <note markdown="1"> Instead of this option, use `RuleActionOverrides`. It accepts any
4749
+ # valid action setting, including `Count`.
4750
+ #
4751
+ # </note>
4022
4752
  #
4023
4753
  # @note When making an API call, you may pass ExcludedRule
4024
4754
  # data as a hash:
@@ -4223,7 +4953,7 @@ module Aws::WAFV2
4223
4953
  # conditions: [ # required
4224
4954
  # {
4225
4955
  # action_condition: {
4226
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
4956
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, CHALLENGE, EXCLUDED_AS_COUNT
4227
4957
  # },
4228
4958
  # label_name_condition: {
4229
4959
  # label_name: "LabelName", # required
@@ -4290,8 +5020,9 @@ module Aws::WAFV2
4290
5020
  #
4291
5021
  # <note markdown="1"> This option is usually set to none. It does not affect how the rules
4292
5022
  # in the rule group are evaluated. If you want the rules in the rule
4293
- # group to only count matches, do not use this and instead exclude
4294
- # those rules in your rule group reference statement settings.
5023
+ # group to only count matches, do not use this and instead use the
5024
+ # rule action override option, with `Count` action, in your rule group
5025
+ # reference statement settings.
4295
5026
  #
4296
5027
  # </note>
4297
5028
  # @return [Types::OverrideAction]
@@ -5671,8 +6402,9 @@ module Aws::WAFV2
5671
6402
  include Aws::Structure
5672
6403
  end
5673
6404
 
5674
- # Determines how long a `CAPTCHA` token remains valid after the client
5675
- # successfully solves a `CAPTCHA` puzzle.
6405
+ # Used for CAPTCHA and challenge token settings. Determines how long a
6406
+ # `CAPTCHA` or challenge timestamp remains valid after WAF updates it
6407
+ # for a successful `CAPTCHA` or challenge response.
5676
6408
  #
5677
6409
  # @note When making an API call, you may pass ImmunityTimeProperty
5678
6410
  # data as a hash:
@@ -5682,8 +6414,10 @@ module Aws::WAFV2
5682
6414
  # }
5683
6415
  #
5684
6416
  # @!attribute [rw] immunity_time
5685
- # The amount of time, in seconds, that a `CAPTCHA` token is valid. The
5686
- # default setting is 300.
6417
+ # The amount of time, in seconds, that a `CAPTCHA` or challenge
6418
+ # timestamp is considered valid by WAF. The default setting is 300.
6419
+ #
6420
+ # For the Challenge action, the minimum setting is 300.
5687
6421
  # @return [Integer]
5688
6422
  #
5689
6423
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ImmunityTimeProperty AWS API Documentation
@@ -6819,7 +7553,7 @@ module Aws::WAFV2
6819
7553
  # conditions: [ # required
6820
7554
  # {
6821
7555
  # action_condition: {
6822
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
7556
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, CHALLENGE, EXCLUDED_AS_COUNT
6823
7557
  # },
6824
7558
  # label_name_condition: {
6825
7559
  # label_name: "LabelName", # required
@@ -6899,7 +7633,7 @@ module Aws::WAFV2
6899
7633
  # conditions: [ # required
6900
7634
  # {
6901
7635
  # action_condition: {
6902
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
7636
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, CHALLENGE, EXCLUDED_AS_COUNT
6903
7637
  # },
6904
7638
  # label_name_condition: {
6905
7639
  # label_name: "LabelName", # required
@@ -6929,19 +7663,12 @@ module Aws::WAFV2
6929
7663
  include Aws::Structure
6930
7664
  end
6931
7665
 
6932
- # Additional information that's used by a managed rule group. Most
7666
+ # Additional information that's used by a managed rule group. Many
6933
7667
  # managed rule groups don't require this.
6934
7668
  #
6935
- # Use this for the account takeover prevention managed rule group
6936
- # `AWSManagedRulesATPRuleSet`, to provide information about the sign-in
6937
- # page of your application.
6938
- #
6939
- # You can provide multiple individual `ManagedRuleGroupConfig` objects
6940
- # for any rule group configuration, for example `UsernameField` and
6941
- # `PasswordField`. The configuration that you provide depends on the
6942
- # needs of the managed rule group. For the ATP managed rule group, you
6943
- # provide the following individual configuration objects: `LoginPath`,
6944
- # `PasswordField`, `PayloadType` and `UsernameField`.
7669
+ # Use the `AWSManagedRulesBotControlRuleSet` configuration object to
7670
+ # configure the protection level that you want the Bot Control rule
7671
+ # group to use.
6945
7672
  #
6946
7673
  # For example specifications, see the examples section of CreateWebACL.
6947
7674
  #
@@ -6957,6 +7684,9 @@ module Aws::WAFV2
6957
7684
  # password_field: {
6958
7685
  # identifier: "FieldIdentifier", # required
6959
7686
  # },
7687
+ # aws_managed_rules_bot_control_rule_set: {
7688
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
7689
+ # },
6960
7690
  # }
6961
7691
  #
6962
7692
  # @!attribute [rw] login_path
@@ -6978,13 +7708,27 @@ module Aws::WAFV2
6978
7708
  # Details about your login page password field.
6979
7709
  # @return [Types::PasswordField]
6980
7710
  #
7711
+ # @!attribute [rw] aws_managed_rules_bot_control_rule_set
7712
+ # Additional configuration for using the Bot Control managed rule
7713
+ # group. Use this to specify the inspection level that you want to
7714
+ # use. For information about using the Bot Control managed rule group,
7715
+ # see [WAF Bot Control rule group][1] and [WAF Bot Control][2] in the
7716
+ # *WAF Developer Guide*.
7717
+ #
7718
+ #
7719
+ #
7720
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html
7721
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-bot-control.html
7722
+ # @return [Types::AWSManagedRulesBotControlRuleSet]
7723
+ #
6981
7724
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ManagedRuleGroupConfig AWS API Documentation
6982
7725
  #
6983
7726
  class ManagedRuleGroupConfig < Struct.new(
6984
7727
  :login_path,
6985
7728
  :payload_type,
6986
7729
  :username_field,
6987
- :password_field)
7730
+ :password_field,
7731
+ :aws_managed_rules_bot_control_rule_set)
6988
7732
  SENSITIVE = []
6989
7733
  include Aws::Structure
6990
7734
  end
@@ -7270,6 +8014,65 @@ module Aws::WAFV2
7270
8014
  # name: "EntityName", # required
7271
8015
  # },
7272
8016
  # ],
8017
+ # rule_action_overrides: [
8018
+ # {
8019
+ # name: "EntityName", # required
8020
+ # action_to_use: { # required
8021
+ # block: {
8022
+ # custom_response: {
8023
+ # response_code: 1, # required
8024
+ # custom_response_body_key: "EntityName",
8025
+ # response_headers: [
8026
+ # {
8027
+ # name: "CustomHTTPHeaderName", # required
8028
+ # value: "CustomHTTPHeaderValue", # required
8029
+ # },
8030
+ # ],
8031
+ # },
8032
+ # },
8033
+ # allow: {
8034
+ # custom_request_handling: {
8035
+ # insert_headers: [ # required
8036
+ # {
8037
+ # name: "CustomHTTPHeaderName", # required
8038
+ # value: "CustomHTTPHeaderValue", # required
8039
+ # },
8040
+ # ],
8041
+ # },
8042
+ # },
8043
+ # count: {
8044
+ # custom_request_handling: {
8045
+ # insert_headers: [ # required
8046
+ # {
8047
+ # name: "CustomHTTPHeaderName", # required
8048
+ # value: "CustomHTTPHeaderValue", # required
8049
+ # },
8050
+ # ],
8051
+ # },
8052
+ # },
8053
+ # captcha: {
8054
+ # custom_request_handling: {
8055
+ # insert_headers: [ # required
8056
+ # {
8057
+ # name: "CustomHTTPHeaderName", # required
8058
+ # value: "CustomHTTPHeaderValue", # required
8059
+ # },
8060
+ # ],
8061
+ # },
8062
+ # },
8063
+ # challenge: {
8064
+ # custom_request_handling: {
8065
+ # insert_headers: [ # required
8066
+ # {
8067
+ # name: "CustomHTTPHeaderName", # required
8068
+ # value: "CustomHTTPHeaderValue", # required
8069
+ # },
8070
+ # ],
8071
+ # },
8072
+ # },
8073
+ # },
8074
+ # },
8075
+ # ],
7273
8076
  # },
7274
8077
  # ip_set_reference_statement: {
7275
8078
  # arn: "ResourceArn", # required
@@ -7389,6 +8192,68 @@ module Aws::WAFV2
7389
8192
  # password_field: {
7390
8193
  # identifier: "FieldIdentifier", # required
7391
8194
  # },
8195
+ # aws_managed_rules_bot_control_rule_set: {
8196
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
8197
+ # },
8198
+ # },
8199
+ # ],
8200
+ # rule_action_overrides: [
8201
+ # {
8202
+ # name: "EntityName", # required
8203
+ # action_to_use: { # required
8204
+ # block: {
8205
+ # custom_response: {
8206
+ # response_code: 1, # required
8207
+ # custom_response_body_key: "EntityName",
8208
+ # response_headers: [
8209
+ # {
8210
+ # name: "CustomHTTPHeaderName", # required
8211
+ # value: "CustomHTTPHeaderValue", # required
8212
+ # },
8213
+ # ],
8214
+ # },
8215
+ # },
8216
+ # allow: {
8217
+ # custom_request_handling: {
8218
+ # insert_headers: [ # required
8219
+ # {
8220
+ # name: "CustomHTTPHeaderName", # required
8221
+ # value: "CustomHTTPHeaderValue", # required
8222
+ # },
8223
+ # ],
8224
+ # },
8225
+ # },
8226
+ # count: {
8227
+ # custom_request_handling: {
8228
+ # insert_headers: [ # required
8229
+ # {
8230
+ # name: "CustomHTTPHeaderName", # required
8231
+ # value: "CustomHTTPHeaderValue", # required
8232
+ # },
8233
+ # ],
8234
+ # },
8235
+ # },
8236
+ # captcha: {
8237
+ # custom_request_handling: {
8238
+ # insert_headers: [ # required
8239
+ # {
8240
+ # name: "CustomHTTPHeaderName", # required
8241
+ # value: "CustomHTTPHeaderValue", # required
8242
+ # },
8243
+ # ],
8244
+ # },
8245
+ # },
8246
+ # challenge: {
8247
+ # custom_request_handling: {
8248
+ # insert_headers: [ # required
8249
+ # {
8250
+ # name: "CustomHTTPHeaderName", # required
8251
+ # value: "CustomHTTPHeaderValue", # required
8252
+ # },
8253
+ # ],
8254
+ # },
8255
+ # },
8256
+ # },
7392
8257
  # },
7393
8258
  # ],
7394
8259
  # },
@@ -7465,6 +8330,68 @@ module Aws::WAFV2
7465
8330
  # password_field: {
7466
8331
  # identifier: "FieldIdentifier", # required
7467
8332
  # },
8333
+ # aws_managed_rules_bot_control_rule_set: {
8334
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
8335
+ # },
8336
+ # },
8337
+ # ],
8338
+ # rule_action_overrides: [
8339
+ # {
8340
+ # name: "EntityName", # required
8341
+ # action_to_use: { # required
8342
+ # block: {
8343
+ # custom_response: {
8344
+ # response_code: 1, # required
8345
+ # custom_response_body_key: "EntityName",
8346
+ # response_headers: [
8347
+ # {
8348
+ # name: "CustomHTTPHeaderName", # required
8349
+ # value: "CustomHTTPHeaderValue", # required
8350
+ # },
8351
+ # ],
8352
+ # },
8353
+ # },
8354
+ # allow: {
8355
+ # custom_request_handling: {
8356
+ # insert_headers: [ # required
8357
+ # {
8358
+ # name: "CustomHTTPHeaderName", # required
8359
+ # value: "CustomHTTPHeaderValue", # required
8360
+ # },
8361
+ # ],
8362
+ # },
8363
+ # },
8364
+ # count: {
8365
+ # custom_request_handling: {
8366
+ # insert_headers: [ # required
8367
+ # {
8368
+ # name: "CustomHTTPHeaderName", # required
8369
+ # value: "CustomHTTPHeaderValue", # required
8370
+ # },
8371
+ # ],
8372
+ # },
8373
+ # },
8374
+ # captcha: {
8375
+ # custom_request_handling: {
8376
+ # insert_headers: [ # required
8377
+ # {
8378
+ # name: "CustomHTTPHeaderName", # required
8379
+ # value: "CustomHTTPHeaderValue", # required
8380
+ # },
8381
+ # ],
8382
+ # },
8383
+ # },
8384
+ # challenge: {
8385
+ # custom_request_handling: {
8386
+ # insert_headers: [ # required
8387
+ # {
8388
+ # name: "CustomHTTPHeaderName", # required
8389
+ # value: "CustomHTTPHeaderValue", # required
8390
+ # },
8391
+ # ],
8392
+ # },
8393
+ # },
8394
+ # },
7468
8395
  # },
7469
8396
  # ],
7470
8397
  # }
@@ -7488,11 +8415,12 @@ module Aws::WAFV2
7488
8415
  # @return [String]
7489
8416
  #
7490
8417
  # @!attribute [rw] excluded_rules
7491
- # The rules in the referenced rule group whose actions are set to
7492
- # `Count`. When you exclude a rule, WAF evaluates it exactly as it
7493
- # would if the rule action setting were `Count`. This is a useful
7494
- # option for testing the rules in a rule group without modifying how
7495
- # they handle your web traffic.
8418
+ # Rules in the referenced rule group whose actions are set to `Count`.
8419
+ #
8420
+ # <note markdown="1"> Instead of this option, use `RuleActionOverrides`. It accepts any
8421
+ # valid action setting, including `Count`.
8422
+ #
8423
+ # </note>
7496
8424
  # @return [Array<Types::ExcludedRule>]
7497
8425
  #
7498
8426
  # @!attribute [rw] scope_down_statement
@@ -7505,21 +8433,26 @@ module Aws::WAFV2
7505
8433
  # @return [Types::Statement]
7506
8434
  #
7507
8435
  # @!attribute [rw] managed_rule_group_configs
7508
- # Additional information that's used by a managed rule group. Most
8436
+ # Additional information that's used by a managed rule group. Many
7509
8437
  # managed rule groups don't require this.
7510
8438
  #
7511
- # Use this for the account takeover prevention managed rule group
7512
- # `AWSManagedRulesATPRuleSet`, to provide information about the
7513
- # sign-in page of your application.
7514
- #
7515
- # You can provide multiple individual `ManagedRuleGroupConfig` objects
7516
- # for any rule group configuration, for example `UsernameField` and
7517
- # `PasswordField`. The configuration that you provide depends on the
7518
- # needs of the managed rule group. For the ATP managed rule group, you
7519
- # provide the following individual configuration objects: `LoginPath`,
7520
- # `PasswordField`, `PayloadType` and `UsernameField`.
8439
+ # Use the `AWSManagedRulesBotControlRuleSet` configuration object to
8440
+ # configure the protection level that you want the Bot Control rule
8441
+ # group to use.
7521
8442
  # @return [Array<Types::ManagedRuleGroupConfig>]
7522
8443
  #
8444
+ # @!attribute [rw] rule_action_overrides
8445
+ # Action settings to use in the place of the rule actions that are
8446
+ # configured inside the rule group. You specify one override for each
8447
+ # rule whose action you want to change.
8448
+ #
8449
+ # You can use overrides for testing, for example you can override all
8450
+ # of rule actions to `Count` and then monitor the resulting count
8451
+ # metrics to understand how the rule group would handle your web
8452
+ # traffic. You can also permanently override some or all actions, to
8453
+ # modify how the rule group manages your web traffic.
8454
+ # @return [Array<Types::RuleActionOverride>]
8455
+ #
7523
8456
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ManagedRuleGroupStatement AWS API Documentation
7524
8457
  #
7525
8458
  class ManagedRuleGroupStatement < Struct.new(
@@ -7528,7 +8461,8 @@ module Aws::WAFV2
7528
8461
  :version,
7529
8462
  :excluded_rules,
7530
8463
  :scope_down_statement,
7531
- :managed_rule_group_configs)
8464
+ :managed_rule_group_configs,
8465
+ :rule_action_overrides)
7532
8466
  SENSITIVE = []
7533
8467
  include Aws::Structure
7534
8468
  end
@@ -7842,10 +8776,10 @@ module Aws::WAFV2
7842
8776
  # and tags.
7843
8777
  #
7844
8778
  # The mobile SDK is not generally available. Customers who have access
7845
- # to the mobile SDK can use it to establish and manage Security Token
7846
- # Service (STS) security tokens for use in HTTP(S) requests from a
7847
- # mobile device to WAF. For more information, see [WAF client
7848
- # application integration][1] in the *WAF Developer Guide*.
8779
+ # to the mobile SDK can use it to establish and manage WAF tokens for
8780
+ # use in HTTP(S) requests from a mobile device to WAF. For more
8781
+ # information, see [WAF client application integration][1] in the *WAF
8782
+ # Developer Guide*.
7849
8783
  #
7850
8784
  #
7851
8785
  #
@@ -8148,6 +9082,65 @@ module Aws::WAFV2
8148
9082
  # name: "EntityName", # required
8149
9083
  # },
8150
9084
  # ],
9085
+ # rule_action_overrides: [
9086
+ # {
9087
+ # name: "EntityName", # required
9088
+ # action_to_use: { # required
9089
+ # block: {
9090
+ # custom_response: {
9091
+ # response_code: 1, # required
9092
+ # custom_response_body_key: "EntityName",
9093
+ # response_headers: [
9094
+ # {
9095
+ # name: "CustomHTTPHeaderName", # required
9096
+ # value: "CustomHTTPHeaderValue", # required
9097
+ # },
9098
+ # ],
9099
+ # },
9100
+ # },
9101
+ # allow: {
9102
+ # custom_request_handling: {
9103
+ # insert_headers: [ # required
9104
+ # {
9105
+ # name: "CustomHTTPHeaderName", # required
9106
+ # value: "CustomHTTPHeaderValue", # required
9107
+ # },
9108
+ # ],
9109
+ # },
9110
+ # },
9111
+ # count: {
9112
+ # custom_request_handling: {
9113
+ # insert_headers: [ # required
9114
+ # {
9115
+ # name: "CustomHTTPHeaderName", # required
9116
+ # value: "CustomHTTPHeaderValue", # required
9117
+ # },
9118
+ # ],
9119
+ # },
9120
+ # },
9121
+ # captcha: {
9122
+ # custom_request_handling: {
9123
+ # insert_headers: [ # required
9124
+ # {
9125
+ # name: "CustomHTTPHeaderName", # required
9126
+ # value: "CustomHTTPHeaderValue", # required
9127
+ # },
9128
+ # ],
9129
+ # },
9130
+ # },
9131
+ # challenge: {
9132
+ # custom_request_handling: {
9133
+ # insert_headers: [ # required
9134
+ # {
9135
+ # name: "CustomHTTPHeaderName", # required
9136
+ # value: "CustomHTTPHeaderValue", # required
9137
+ # },
9138
+ # ],
9139
+ # },
9140
+ # },
9141
+ # },
9142
+ # },
9143
+ # ],
8151
9144
  # },
8152
9145
  # ip_set_reference_statement: {
8153
9146
  # arn: "ResourceArn", # required
@@ -8267,6 +9260,68 @@ module Aws::WAFV2
8267
9260
  # password_field: {
8268
9261
  # identifier: "FieldIdentifier", # required
8269
9262
  # },
9263
+ # aws_managed_rules_bot_control_rule_set: {
9264
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
9265
+ # },
9266
+ # },
9267
+ # ],
9268
+ # rule_action_overrides: [
9269
+ # {
9270
+ # name: "EntityName", # required
9271
+ # action_to_use: { # required
9272
+ # block: {
9273
+ # custom_response: {
9274
+ # response_code: 1, # required
9275
+ # custom_response_body_key: "EntityName",
9276
+ # response_headers: [
9277
+ # {
9278
+ # name: "CustomHTTPHeaderName", # required
9279
+ # value: "CustomHTTPHeaderValue", # required
9280
+ # },
9281
+ # ],
9282
+ # },
9283
+ # },
9284
+ # allow: {
9285
+ # custom_request_handling: {
9286
+ # insert_headers: [ # required
9287
+ # {
9288
+ # name: "CustomHTTPHeaderName", # required
9289
+ # value: "CustomHTTPHeaderValue", # required
9290
+ # },
9291
+ # ],
9292
+ # },
9293
+ # },
9294
+ # count: {
9295
+ # custom_request_handling: {
9296
+ # insert_headers: [ # required
9297
+ # {
9298
+ # name: "CustomHTTPHeaderName", # required
9299
+ # value: "CustomHTTPHeaderValue", # required
9300
+ # },
9301
+ # ],
9302
+ # },
9303
+ # },
9304
+ # captcha: {
9305
+ # custom_request_handling: {
9306
+ # insert_headers: [ # required
9307
+ # {
9308
+ # name: "CustomHTTPHeaderName", # required
9309
+ # value: "CustomHTTPHeaderValue", # required
9310
+ # },
9311
+ # ],
9312
+ # },
9313
+ # },
9314
+ # challenge: {
9315
+ # custom_request_handling: {
9316
+ # insert_headers: [ # required
9317
+ # {
9318
+ # name: "CustomHTTPHeaderName", # required
9319
+ # value: "CustomHTTPHeaderValue", # required
9320
+ # },
9321
+ # ],
9322
+ # },
9323
+ # },
9324
+ # },
8270
9325
  # },
8271
9326
  # ],
8272
9327
  # },
@@ -8604,6 +9659,65 @@ module Aws::WAFV2
8604
9659
  # name: "EntityName", # required
8605
9660
  # },
8606
9661
  # ],
9662
+ # rule_action_overrides: [
9663
+ # {
9664
+ # name: "EntityName", # required
9665
+ # action_to_use: { # required
9666
+ # block: {
9667
+ # custom_response: {
9668
+ # response_code: 1, # required
9669
+ # custom_response_body_key: "EntityName",
9670
+ # response_headers: [
9671
+ # {
9672
+ # name: "CustomHTTPHeaderName", # required
9673
+ # value: "CustomHTTPHeaderValue", # required
9674
+ # },
9675
+ # ],
9676
+ # },
9677
+ # },
9678
+ # allow: {
9679
+ # custom_request_handling: {
9680
+ # insert_headers: [ # required
9681
+ # {
9682
+ # name: "CustomHTTPHeaderName", # required
9683
+ # value: "CustomHTTPHeaderValue", # required
9684
+ # },
9685
+ # ],
9686
+ # },
9687
+ # },
9688
+ # count: {
9689
+ # custom_request_handling: {
9690
+ # insert_headers: [ # required
9691
+ # {
9692
+ # name: "CustomHTTPHeaderName", # required
9693
+ # value: "CustomHTTPHeaderValue", # required
9694
+ # },
9695
+ # ],
9696
+ # },
9697
+ # },
9698
+ # captcha: {
9699
+ # custom_request_handling: {
9700
+ # insert_headers: [ # required
9701
+ # {
9702
+ # name: "CustomHTTPHeaderName", # required
9703
+ # value: "CustomHTTPHeaderValue", # required
9704
+ # },
9705
+ # ],
9706
+ # },
9707
+ # },
9708
+ # challenge: {
9709
+ # custom_request_handling: {
9710
+ # insert_headers: [ # required
9711
+ # {
9712
+ # name: "CustomHTTPHeaderName", # required
9713
+ # value: "CustomHTTPHeaderValue", # required
9714
+ # },
9715
+ # ],
9716
+ # },
9717
+ # },
9718
+ # },
9719
+ # },
9720
+ # ],
8607
9721
  # },
8608
9722
  # ip_set_reference_statement: {
8609
9723
  # arn: "ResourceArn", # required
@@ -8719,6 +9833,68 @@ module Aws::WAFV2
8719
9833
  # password_field: {
8720
9834
  # identifier: "FieldIdentifier", # required
8721
9835
  # },
9836
+ # aws_managed_rules_bot_control_rule_set: {
9837
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
9838
+ # },
9839
+ # },
9840
+ # ],
9841
+ # rule_action_overrides: [
9842
+ # {
9843
+ # name: "EntityName", # required
9844
+ # action_to_use: { # required
9845
+ # block: {
9846
+ # custom_response: {
9847
+ # response_code: 1, # required
9848
+ # custom_response_body_key: "EntityName",
9849
+ # response_headers: [
9850
+ # {
9851
+ # name: "CustomHTTPHeaderName", # required
9852
+ # value: "CustomHTTPHeaderValue", # required
9853
+ # },
9854
+ # ],
9855
+ # },
9856
+ # },
9857
+ # allow: {
9858
+ # custom_request_handling: {
9859
+ # insert_headers: [ # required
9860
+ # {
9861
+ # name: "CustomHTTPHeaderName", # required
9862
+ # value: "CustomHTTPHeaderValue", # required
9863
+ # },
9864
+ # ],
9865
+ # },
9866
+ # },
9867
+ # count: {
9868
+ # custom_request_handling: {
9869
+ # insert_headers: [ # required
9870
+ # {
9871
+ # name: "CustomHTTPHeaderName", # required
9872
+ # value: "CustomHTTPHeaderValue", # required
9873
+ # },
9874
+ # ],
9875
+ # },
9876
+ # },
9877
+ # captcha: {
9878
+ # custom_request_handling: {
9879
+ # insert_headers: [ # required
9880
+ # {
9881
+ # name: "CustomHTTPHeaderName", # required
9882
+ # value: "CustomHTTPHeaderValue", # required
9883
+ # },
9884
+ # ],
9885
+ # },
9886
+ # },
9887
+ # challenge: {
9888
+ # custom_request_handling: {
9889
+ # insert_headers: [ # required
9890
+ # {
9891
+ # name: "CustomHTTPHeaderName", # required
9892
+ # value: "CustomHTTPHeaderValue", # required
9893
+ # },
9894
+ # ],
9895
+ # },
9896
+ # },
9897
+ # },
8722
9898
  # },
8723
9899
  # ],
8724
9900
  # },
@@ -8811,8 +9987,9 @@ module Aws::WAFV2
8811
9987
  #
8812
9988
  # <note markdown="1"> This option is usually set to none. It does not affect how the rules
8813
9989
  # in the rule group are evaluated. If you want the rules in the rule
8814
- # group to only count matches, do not use this and instead exclude those
8815
- # rules in your rule group reference statement settings.
9990
+ # group to only count matches, do not use this and instead use the rule
9991
+ # action override option, with `Count` action, in your rule group
9992
+ # reference statement settings.
8816
9993
  #
8817
9994
  # </note>
8818
9995
  #
@@ -8839,8 +10016,9 @@ module Aws::WAFV2
8839
10016
  #
8840
10017
  # <note markdown="1"> This option is usually set to none. It does not affect how the rules
8841
10018
  # in the rule group are evaluated. If you want the rules in the rule
8842
- # group to only count matches, do not use this and instead exclude
8843
- # those rules in your rule group reference statement settings.
10019
+ # group to only count matches, do not use this and instead use the
10020
+ # rule action override option, with `Count` action, in your rule group
10021
+ # reference statement settings.
8844
10022
  #
8845
10023
  # </note>
8846
10024
  # @return [Types::CountAction]
@@ -8948,7 +10126,7 @@ module Aws::WAFV2
8948
10126
  # conditions: [ # required
8949
10127
  # {
8950
10128
  # action_condition: {
8951
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
10129
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, CHALLENGE, EXCLUDED_AS_COUNT
8952
10130
  # },
8953
10131
  # label_name_condition: {
8954
10132
  # label_name: "LabelName", # required
@@ -9448,6 +10626,65 @@ module Aws::WAFV2
9448
10626
  # name: "EntityName", # required
9449
10627
  # },
9450
10628
  # ],
10629
+ # rule_action_overrides: [
10630
+ # {
10631
+ # name: "EntityName", # required
10632
+ # action_to_use: { # required
10633
+ # block: {
10634
+ # custom_response: {
10635
+ # response_code: 1, # required
10636
+ # custom_response_body_key: "EntityName",
10637
+ # response_headers: [
10638
+ # {
10639
+ # name: "CustomHTTPHeaderName", # required
10640
+ # value: "CustomHTTPHeaderValue", # required
10641
+ # },
10642
+ # ],
10643
+ # },
10644
+ # },
10645
+ # allow: {
10646
+ # custom_request_handling: {
10647
+ # insert_headers: [ # required
10648
+ # {
10649
+ # name: "CustomHTTPHeaderName", # required
10650
+ # value: "CustomHTTPHeaderValue", # required
10651
+ # },
10652
+ # ],
10653
+ # },
10654
+ # },
10655
+ # count: {
10656
+ # custom_request_handling: {
10657
+ # insert_headers: [ # required
10658
+ # {
10659
+ # name: "CustomHTTPHeaderName", # required
10660
+ # value: "CustomHTTPHeaderValue", # required
10661
+ # },
10662
+ # ],
10663
+ # },
10664
+ # },
10665
+ # captcha: {
10666
+ # custom_request_handling: {
10667
+ # insert_headers: [ # required
10668
+ # {
10669
+ # name: "CustomHTTPHeaderName", # required
10670
+ # value: "CustomHTTPHeaderValue", # required
10671
+ # },
10672
+ # ],
10673
+ # },
10674
+ # },
10675
+ # challenge: {
10676
+ # custom_request_handling: {
10677
+ # insert_headers: [ # required
10678
+ # {
10679
+ # name: "CustomHTTPHeaderName", # required
10680
+ # value: "CustomHTTPHeaderValue", # required
10681
+ # },
10682
+ # ],
10683
+ # },
10684
+ # },
10685
+ # },
10686
+ # },
10687
+ # ],
9451
10688
  # },
9452
10689
  # ip_set_reference_statement: {
9453
10690
  # arn: "ResourceArn", # required
@@ -9567,6 +10804,68 @@ module Aws::WAFV2
9567
10804
  # password_field: {
9568
10805
  # identifier: "FieldIdentifier", # required
9569
10806
  # },
10807
+ # aws_managed_rules_bot_control_rule_set: {
10808
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
10809
+ # },
10810
+ # },
10811
+ # ],
10812
+ # rule_action_overrides: [
10813
+ # {
10814
+ # name: "EntityName", # required
10815
+ # action_to_use: { # required
10816
+ # block: {
10817
+ # custom_response: {
10818
+ # response_code: 1, # required
10819
+ # custom_response_body_key: "EntityName",
10820
+ # response_headers: [
10821
+ # {
10822
+ # name: "CustomHTTPHeaderName", # required
10823
+ # value: "CustomHTTPHeaderValue", # required
10824
+ # },
10825
+ # ],
10826
+ # },
10827
+ # },
10828
+ # allow: {
10829
+ # custom_request_handling: {
10830
+ # insert_headers: [ # required
10831
+ # {
10832
+ # name: "CustomHTTPHeaderName", # required
10833
+ # value: "CustomHTTPHeaderValue", # required
10834
+ # },
10835
+ # ],
10836
+ # },
10837
+ # },
10838
+ # count: {
10839
+ # custom_request_handling: {
10840
+ # insert_headers: [ # required
10841
+ # {
10842
+ # name: "CustomHTTPHeaderName", # required
10843
+ # value: "CustomHTTPHeaderValue", # required
10844
+ # },
10845
+ # ],
10846
+ # },
10847
+ # },
10848
+ # captcha: {
10849
+ # custom_request_handling: {
10850
+ # insert_headers: [ # required
10851
+ # {
10852
+ # name: "CustomHTTPHeaderName", # required
10853
+ # value: "CustomHTTPHeaderValue", # required
10854
+ # },
10855
+ # ],
10856
+ # },
10857
+ # },
10858
+ # challenge: {
10859
+ # custom_request_handling: {
10860
+ # insert_headers: [ # required
10861
+ # {
10862
+ # name: "CustomHTTPHeaderName", # required
10863
+ # value: "CustomHTTPHeaderValue", # required
10864
+ # },
10865
+ # ],
10866
+ # },
10867
+ # },
10868
+ # },
9570
10869
  # },
9571
10870
  # ],
9572
10871
  # },
@@ -10294,6 +11593,65 @@ module Aws::WAFV2
10294
11593
  # name: "EntityName", # required
10295
11594
  # },
10296
11595
  # ],
11596
+ # rule_action_overrides: [
11597
+ # {
11598
+ # name: "EntityName", # required
11599
+ # action_to_use: { # required
11600
+ # block: {
11601
+ # custom_response: {
11602
+ # response_code: 1, # required
11603
+ # custom_response_body_key: "EntityName",
11604
+ # response_headers: [
11605
+ # {
11606
+ # name: "CustomHTTPHeaderName", # required
11607
+ # value: "CustomHTTPHeaderValue", # required
11608
+ # },
11609
+ # ],
11610
+ # },
11611
+ # },
11612
+ # allow: {
11613
+ # custom_request_handling: {
11614
+ # insert_headers: [ # required
11615
+ # {
11616
+ # name: "CustomHTTPHeaderName", # required
11617
+ # value: "CustomHTTPHeaderValue", # required
11618
+ # },
11619
+ # ],
11620
+ # },
11621
+ # },
11622
+ # count: {
11623
+ # custom_request_handling: {
11624
+ # insert_headers: [ # required
11625
+ # {
11626
+ # name: "CustomHTTPHeaderName", # required
11627
+ # value: "CustomHTTPHeaderValue", # required
11628
+ # },
11629
+ # ],
11630
+ # },
11631
+ # },
11632
+ # captcha: {
11633
+ # custom_request_handling: {
11634
+ # insert_headers: [ # required
11635
+ # {
11636
+ # name: "CustomHTTPHeaderName", # required
11637
+ # value: "CustomHTTPHeaderValue", # required
11638
+ # },
11639
+ # ],
11640
+ # },
11641
+ # },
11642
+ # challenge: {
11643
+ # custom_request_handling: {
11644
+ # insert_headers: [ # required
11645
+ # {
11646
+ # name: "CustomHTTPHeaderName", # required
11647
+ # value: "CustomHTTPHeaderValue", # required
11648
+ # },
11649
+ # ],
11650
+ # },
11651
+ # },
11652
+ # },
11653
+ # },
11654
+ # ],
10297
11655
  # },
10298
11656
  # ip_set_reference_statement: {
10299
11657
  # arn: "ResourceArn", # required
@@ -10413,6 +11771,68 @@ module Aws::WAFV2
10413
11771
  # password_field: {
10414
11772
  # identifier: "FieldIdentifier", # required
10415
11773
  # },
11774
+ # aws_managed_rules_bot_control_rule_set: {
11775
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
11776
+ # },
11777
+ # },
11778
+ # ],
11779
+ # rule_action_overrides: [
11780
+ # {
11781
+ # name: "EntityName", # required
11782
+ # action_to_use: { # required
11783
+ # block: {
11784
+ # custom_response: {
11785
+ # response_code: 1, # required
11786
+ # custom_response_body_key: "EntityName",
11787
+ # response_headers: [
11788
+ # {
11789
+ # name: "CustomHTTPHeaderName", # required
11790
+ # value: "CustomHTTPHeaderValue", # required
11791
+ # },
11792
+ # ],
11793
+ # },
11794
+ # },
11795
+ # allow: {
11796
+ # custom_request_handling: {
11797
+ # insert_headers: [ # required
11798
+ # {
11799
+ # name: "CustomHTTPHeaderName", # required
11800
+ # value: "CustomHTTPHeaderValue", # required
11801
+ # },
11802
+ # ],
11803
+ # },
11804
+ # },
11805
+ # count: {
11806
+ # custom_request_handling: {
11807
+ # insert_headers: [ # required
11808
+ # {
11809
+ # name: "CustomHTTPHeaderName", # required
11810
+ # value: "CustomHTTPHeaderValue", # required
11811
+ # },
11812
+ # ],
11813
+ # },
11814
+ # },
11815
+ # captcha: {
11816
+ # custom_request_handling: {
11817
+ # insert_headers: [ # required
11818
+ # {
11819
+ # name: "CustomHTTPHeaderName", # required
11820
+ # value: "CustomHTTPHeaderValue", # required
11821
+ # },
11822
+ # ],
11823
+ # },
11824
+ # },
11825
+ # challenge: {
11826
+ # custom_request_handling: {
11827
+ # insert_headers: [ # required
11828
+ # {
11829
+ # name: "CustomHTTPHeaderName", # required
11830
+ # value: "CustomHTTPHeaderValue", # required
11831
+ # },
11832
+ # ],
11833
+ # },
11834
+ # },
11835
+ # },
10416
11836
  # },
10417
11837
  # ],
10418
11838
  # },
@@ -10522,6 +11942,16 @@ module Aws::WAFV2
10522
11942
  # ],
10523
11943
  # },
10524
11944
  # },
11945
+ # challenge: {
11946
+ # custom_request_handling: {
11947
+ # insert_headers: [ # required
11948
+ # {
11949
+ # name: "CustomHTTPHeaderName", # required
11950
+ # value: "CustomHTTPHeaderValue", # required
11951
+ # },
11952
+ # ],
11953
+ # },
11954
+ # },
10525
11955
  # },
10526
11956
  # override_action: {
10527
11957
  # count: {
@@ -10552,6 +11982,11 @@ module Aws::WAFV2
10552
11982
  # immunity_time: 1, # required
10553
11983
  # },
10554
11984
  # },
11985
+ # challenge_config: {
11986
+ # immunity_time_property: {
11987
+ # immunity_time: 1, # required
11988
+ # },
11989
+ # },
10555
11990
  # }
10556
11991
  #
10557
11992
  # @!attribute [rw] name
@@ -10603,8 +12038,9 @@ module Aws::WAFV2
10603
12038
  #
10604
12039
  # <note markdown="1"> This option is usually set to none. It does not affect how the rules
10605
12040
  # in the rule group are evaluated. If you want the rules in the rule
10606
- # group to only count matches, do not use this and instead exclude
10607
- # those rules in your rule group reference statement settings.
12041
+ # group to only count matches, do not use this and instead use the
12042
+ # rule action override option, with `Count` action, in your rule group
12043
+ # reference statement settings.
10608
12044
  #
10609
12045
  # </note>
10610
12046
  # @return [Types::OverrideAction]
@@ -10646,6 +12082,12 @@ module Aws::WAFV2
10646
12082
  # for the web ACL.
10647
12083
  # @return [Types::CaptchaConfig]
10648
12084
  #
12085
+ # @!attribute [rw] challenge_config
12086
+ # Specifies how WAF should handle `Challenge` evaluations. If you
12087
+ # don't specify this, WAF uses the challenge configuration that's
12088
+ # defined for the web ACL.
12089
+ # @return [Types::ChallengeConfig]
12090
+ #
10649
12091
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/Rule AWS API Documentation
10650
12092
  #
10651
12093
  class Rule < Struct.new(
@@ -10656,7 +12098,8 @@ module Aws::WAFV2
10656
12098
  :override_action,
10657
12099
  :rule_labels,
10658
12100
  :visibility_config,
10659
- :captcha_config)
12101
+ :captcha_config,
12102
+ :challenge_config)
10660
12103
  SENSITIVE = []
10661
12104
  include Aws::Structure
10662
12105
  end
@@ -10711,6 +12154,16 @@ module Aws::WAFV2
10711
12154
  # ],
10712
12155
  # },
10713
12156
  # },
12157
+ # challenge: {
12158
+ # custom_request_handling: {
12159
+ # insert_headers: [ # required
12160
+ # {
12161
+ # name: "CustomHTTPHeaderName", # required
12162
+ # value: "CustomHTTPHeaderValue", # required
12163
+ # },
12164
+ # ],
12165
+ # },
12166
+ # },
10714
12167
  # }
10715
12168
  #
10716
12169
  # @!attribute [rw] block
@@ -10730,13 +12183,107 @@ module Aws::WAFV2
10730
12183
  # Instructs WAF to run a `CAPTCHA` check against the web request.
10731
12184
  # @return [Types::CaptchaAction]
10732
12185
  #
12186
+ # @!attribute [rw] challenge
12187
+ # Instructs WAF to run a `Challenge` check against the web request.
12188
+ # @return [Types::ChallengeAction]
12189
+ #
10733
12190
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/RuleAction AWS API Documentation
10734
12191
  #
10735
12192
  class RuleAction < Struct.new(
10736
12193
  :block,
10737
12194
  :allow,
10738
12195
  :count,
10739
- :captcha)
12196
+ :captcha,
12197
+ :challenge)
12198
+ SENSITIVE = []
12199
+ include Aws::Structure
12200
+ end
12201
+
12202
+ # Action setting to use in the place of a rule action that is configured
12203
+ # inside the rule group. You specify one override for each rule whose
12204
+ # action you want to change.
12205
+ #
12206
+ # You can use overrides for testing, for example you can override all of
12207
+ # rule actions to `Count` and then monitor the resulting count metrics
12208
+ # to understand how the rule group would handle your web traffic. You
12209
+ # can also permanently override some or all actions, to modify how the
12210
+ # rule group manages your web traffic.
12211
+ #
12212
+ # @note When making an API call, you may pass RuleActionOverride
12213
+ # data as a hash:
12214
+ #
12215
+ # {
12216
+ # name: "EntityName", # required
12217
+ # action_to_use: { # required
12218
+ # block: {
12219
+ # custom_response: {
12220
+ # response_code: 1, # required
12221
+ # custom_response_body_key: "EntityName",
12222
+ # response_headers: [
12223
+ # {
12224
+ # name: "CustomHTTPHeaderName", # required
12225
+ # value: "CustomHTTPHeaderValue", # required
12226
+ # },
12227
+ # ],
12228
+ # },
12229
+ # },
12230
+ # allow: {
12231
+ # custom_request_handling: {
12232
+ # insert_headers: [ # required
12233
+ # {
12234
+ # name: "CustomHTTPHeaderName", # required
12235
+ # value: "CustomHTTPHeaderValue", # required
12236
+ # },
12237
+ # ],
12238
+ # },
12239
+ # },
12240
+ # count: {
12241
+ # custom_request_handling: {
12242
+ # insert_headers: [ # required
12243
+ # {
12244
+ # name: "CustomHTTPHeaderName", # required
12245
+ # value: "CustomHTTPHeaderValue", # required
12246
+ # },
12247
+ # ],
12248
+ # },
12249
+ # },
12250
+ # captcha: {
12251
+ # custom_request_handling: {
12252
+ # insert_headers: [ # required
12253
+ # {
12254
+ # name: "CustomHTTPHeaderName", # required
12255
+ # value: "CustomHTTPHeaderValue", # required
12256
+ # },
12257
+ # ],
12258
+ # },
12259
+ # },
12260
+ # challenge: {
12261
+ # custom_request_handling: {
12262
+ # insert_headers: [ # required
12263
+ # {
12264
+ # name: "CustomHTTPHeaderName", # required
12265
+ # value: "CustomHTTPHeaderValue", # required
12266
+ # },
12267
+ # ],
12268
+ # },
12269
+ # },
12270
+ # },
12271
+ # }
12272
+ #
12273
+ # @!attribute [rw] name
12274
+ # The name of the rule to override.
12275
+ # @return [String]
12276
+ #
12277
+ # @!attribute [rw] action_to_use
12278
+ # The override action to use, in place of the configured action of the
12279
+ # rule in the rule group.
12280
+ # @return [Types::RuleAction]
12281
+ #
12282
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/RuleActionOverride AWS API Documentation
12283
+ #
12284
+ class RuleActionOverride < Struct.new(
12285
+ :name,
12286
+ :action_to_use)
10740
12287
  SENSITIVE = []
10741
12288
  include Aws::Structure
10742
12289
  end
@@ -10883,6 +12430,65 @@ module Aws::WAFV2
10883
12430
  # name: "EntityName", # required
10884
12431
  # },
10885
12432
  # ],
12433
+ # rule_action_overrides: [
12434
+ # {
12435
+ # name: "EntityName", # required
12436
+ # action_to_use: { # required
12437
+ # block: {
12438
+ # custom_response: {
12439
+ # response_code: 1, # required
12440
+ # custom_response_body_key: "EntityName",
12441
+ # response_headers: [
12442
+ # {
12443
+ # name: "CustomHTTPHeaderName", # required
12444
+ # value: "CustomHTTPHeaderValue", # required
12445
+ # },
12446
+ # ],
12447
+ # },
12448
+ # },
12449
+ # allow: {
12450
+ # custom_request_handling: {
12451
+ # insert_headers: [ # required
12452
+ # {
12453
+ # name: "CustomHTTPHeaderName", # required
12454
+ # value: "CustomHTTPHeaderValue", # required
12455
+ # },
12456
+ # ],
12457
+ # },
12458
+ # },
12459
+ # count: {
12460
+ # custom_request_handling: {
12461
+ # insert_headers: [ # required
12462
+ # {
12463
+ # name: "CustomHTTPHeaderName", # required
12464
+ # value: "CustomHTTPHeaderValue", # required
12465
+ # },
12466
+ # ],
12467
+ # },
12468
+ # },
12469
+ # captcha: {
12470
+ # custom_request_handling: {
12471
+ # insert_headers: [ # required
12472
+ # {
12473
+ # name: "CustomHTTPHeaderName", # required
12474
+ # value: "CustomHTTPHeaderValue", # required
12475
+ # },
12476
+ # ],
12477
+ # },
12478
+ # },
12479
+ # challenge: {
12480
+ # custom_request_handling: {
12481
+ # insert_headers: [ # required
12482
+ # {
12483
+ # name: "CustomHTTPHeaderName", # required
12484
+ # value: "CustomHTTPHeaderValue", # required
12485
+ # },
12486
+ # ],
12487
+ # },
12488
+ # },
12489
+ # },
12490
+ # },
12491
+ # ],
10886
12492
  # }
10887
12493
  #
10888
12494
  # @!attribute [rw] arn
@@ -10890,18 +12496,32 @@ module Aws::WAFV2
10890
12496
  # @return [String]
10891
12497
  #
10892
12498
  # @!attribute [rw] excluded_rules
10893
- # The rules in the referenced rule group whose actions are set to
10894
- # `Count`. When you exclude a rule, WAF evaluates it exactly as it
10895
- # would if the rule action setting were `Count`. This is a useful
10896
- # option for testing the rules in a rule group without modifying how
10897
- # they handle your web traffic.
12499
+ # Rules in the referenced rule group whose actions are set to `Count`.
12500
+ #
12501
+ # <note markdown="1"> Instead of this option, use `RuleActionOverrides`. It accepts any
12502
+ # valid action setting, including `Count`.
12503
+ #
12504
+ # </note>
10898
12505
  # @return [Array<Types::ExcludedRule>]
10899
12506
  #
12507
+ # @!attribute [rw] rule_action_overrides
12508
+ # Action settings to use in the place of the rule actions that are
12509
+ # configured inside the rule group. You specify one override for each
12510
+ # rule whose action you want to change.
12511
+ #
12512
+ # You can use overrides for testing, for example you can override all
12513
+ # of rule actions to `Count` and then monitor the resulting count
12514
+ # metrics to understand how the rule group would handle your web
12515
+ # traffic. You can also permanently override some or all actions, to
12516
+ # modify how the rule group manages your web traffic.
12517
+ # @return [Array<Types::RuleActionOverride>]
12518
+ #
10900
12519
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/RuleGroupReferenceStatement AWS API Documentation
10901
12520
  #
10902
12521
  class RuleGroupReferenceStatement < Struct.new(
10903
12522
  :arn,
10904
- :excluded_rules)
12523
+ :excluded_rules,
12524
+ :rule_action_overrides)
10905
12525
  SENSITIVE = []
10906
12526
  include Aws::Structure
10907
12527
  end
@@ -11003,8 +12623,7 @@ module Aws::WAFV2
11003
12623
  # @return [Time]
11004
12624
  #
11005
12625
  # @!attribute [rw] action
11006
- # The action for the `Rule` that the request matched: `Allow`,
11007
- # `Block`, or `Count`.
12626
+ # The action that WAF applied to the request.
11008
12627
  # @return [String]
11009
12628
  #
11010
12629
  # @!attribute [rw] rule_name_within_rule_group
@@ -11039,6 +12658,17 @@ module Aws::WAFV2
11039
12658
  # The `CAPTCHA` response for the request.
11040
12659
  # @return [Types::CaptchaResponse]
11041
12660
  #
12661
+ # @!attribute [rw] challenge_response
12662
+ # The `Challenge` response for the request.
12663
+ # @return [Types::ChallengeResponse]
12664
+ #
12665
+ # @!attribute [rw] overridden_action
12666
+ # Used only for rule group rules that have a rule action override in
12667
+ # place in the web ACL. This is the action that the rule group rule is
12668
+ # configured for, and not the action that was applied to the request.
12669
+ # The action that WAF applied is the `Action` value.
12670
+ # @return [String]
12671
+ #
11042
12672
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/SampledHTTPRequest AWS API Documentation
11043
12673
  #
11044
12674
  class SampledHTTPRequest < Struct.new(
@@ -11050,7 +12680,9 @@ module Aws::WAFV2
11050
12680
  :request_headers_inserted,
11051
12681
  :response_code_sent,
11052
12682
  :labels,
11053
- :captcha_response)
12683
+ :captcha_response,
12684
+ :challenge_response,
12685
+ :overridden_action)
11054
12686
  SENSITIVE = []
11055
12687
  include Aws::Structure
11056
12688
  end
@@ -11588,6 +13220,65 @@ module Aws::WAFV2
11588
13220
  # name: "EntityName", # required
11589
13221
  # },
11590
13222
  # ],
13223
+ # rule_action_overrides: [
13224
+ # {
13225
+ # name: "EntityName", # required
13226
+ # action_to_use: { # required
13227
+ # block: {
13228
+ # custom_response: {
13229
+ # response_code: 1, # required
13230
+ # custom_response_body_key: "EntityName",
13231
+ # response_headers: [
13232
+ # {
13233
+ # name: "CustomHTTPHeaderName", # required
13234
+ # value: "CustomHTTPHeaderValue", # required
13235
+ # },
13236
+ # ],
13237
+ # },
13238
+ # },
13239
+ # allow: {
13240
+ # custom_request_handling: {
13241
+ # insert_headers: [ # required
13242
+ # {
13243
+ # name: "CustomHTTPHeaderName", # required
13244
+ # value: "CustomHTTPHeaderValue", # required
13245
+ # },
13246
+ # ],
13247
+ # },
13248
+ # },
13249
+ # count: {
13250
+ # custom_request_handling: {
13251
+ # insert_headers: [ # required
13252
+ # {
13253
+ # name: "CustomHTTPHeaderName", # required
13254
+ # value: "CustomHTTPHeaderValue", # required
13255
+ # },
13256
+ # ],
13257
+ # },
13258
+ # },
13259
+ # captcha: {
13260
+ # custom_request_handling: {
13261
+ # insert_headers: [ # required
13262
+ # {
13263
+ # name: "CustomHTTPHeaderName", # required
13264
+ # value: "CustomHTTPHeaderValue", # required
13265
+ # },
13266
+ # ],
13267
+ # },
13268
+ # },
13269
+ # challenge: {
13270
+ # custom_request_handling: {
13271
+ # insert_headers: [ # required
13272
+ # {
13273
+ # name: "CustomHTTPHeaderName", # required
13274
+ # value: "CustomHTTPHeaderValue", # required
13275
+ # },
13276
+ # ],
13277
+ # },
13278
+ # },
13279
+ # },
13280
+ # },
13281
+ # ],
11591
13282
  # },
11592
13283
  # ip_set_reference_statement: {
11593
13284
  # arn: "ResourceArn", # required
@@ -11906,6 +13597,65 @@ module Aws::WAFV2
11906
13597
  # name: "EntityName", # required
11907
13598
  # },
11908
13599
  # ],
13600
+ # rule_action_overrides: [
13601
+ # {
13602
+ # name: "EntityName", # required
13603
+ # action_to_use: { # required
13604
+ # block: {
13605
+ # custom_response: {
13606
+ # response_code: 1, # required
13607
+ # custom_response_body_key: "EntityName",
13608
+ # response_headers: [
13609
+ # {
13610
+ # name: "CustomHTTPHeaderName", # required
13611
+ # value: "CustomHTTPHeaderValue", # required
13612
+ # },
13613
+ # ],
13614
+ # },
13615
+ # },
13616
+ # allow: {
13617
+ # custom_request_handling: {
13618
+ # insert_headers: [ # required
13619
+ # {
13620
+ # name: "CustomHTTPHeaderName", # required
13621
+ # value: "CustomHTTPHeaderValue", # required
13622
+ # },
13623
+ # ],
13624
+ # },
13625
+ # },
13626
+ # count: {
13627
+ # custom_request_handling: {
13628
+ # insert_headers: [ # required
13629
+ # {
13630
+ # name: "CustomHTTPHeaderName", # required
13631
+ # value: "CustomHTTPHeaderValue", # required
13632
+ # },
13633
+ # ],
13634
+ # },
13635
+ # },
13636
+ # captcha: {
13637
+ # custom_request_handling: {
13638
+ # insert_headers: [ # required
13639
+ # {
13640
+ # name: "CustomHTTPHeaderName", # required
13641
+ # value: "CustomHTTPHeaderValue", # required
13642
+ # },
13643
+ # ],
13644
+ # },
13645
+ # },
13646
+ # challenge: {
13647
+ # custom_request_handling: {
13648
+ # insert_headers: [ # required
13649
+ # {
13650
+ # name: "CustomHTTPHeaderName", # required
13651
+ # value: "CustomHTTPHeaderValue", # required
13652
+ # },
13653
+ # ],
13654
+ # },
13655
+ # },
13656
+ # },
13657
+ # },
13658
+ # ],
11909
13659
  # },
11910
13660
  # ip_set_reference_statement: {
11911
13661
  # arn: "ResourceArn", # required
@@ -12017,6 +13767,68 @@ module Aws::WAFV2
12017
13767
  # password_field: {
12018
13768
  # identifier: "FieldIdentifier", # required
12019
13769
  # },
13770
+ # aws_managed_rules_bot_control_rule_set: {
13771
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
13772
+ # },
13773
+ # },
13774
+ # ],
13775
+ # rule_action_overrides: [
13776
+ # {
13777
+ # name: "EntityName", # required
13778
+ # action_to_use: { # required
13779
+ # block: {
13780
+ # custom_response: {
13781
+ # response_code: 1, # required
13782
+ # custom_response_body_key: "EntityName",
13783
+ # response_headers: [
13784
+ # {
13785
+ # name: "CustomHTTPHeaderName", # required
13786
+ # value: "CustomHTTPHeaderValue", # required
13787
+ # },
13788
+ # ],
13789
+ # },
13790
+ # },
13791
+ # allow: {
13792
+ # custom_request_handling: {
13793
+ # insert_headers: [ # required
13794
+ # {
13795
+ # name: "CustomHTTPHeaderName", # required
13796
+ # value: "CustomHTTPHeaderValue", # required
13797
+ # },
13798
+ # ],
13799
+ # },
13800
+ # },
13801
+ # count: {
13802
+ # custom_request_handling: {
13803
+ # insert_headers: [ # required
13804
+ # {
13805
+ # name: "CustomHTTPHeaderName", # required
13806
+ # value: "CustomHTTPHeaderValue", # required
13807
+ # },
13808
+ # ],
13809
+ # },
13810
+ # },
13811
+ # captcha: {
13812
+ # custom_request_handling: {
13813
+ # insert_headers: [ # required
13814
+ # {
13815
+ # name: "CustomHTTPHeaderName", # required
13816
+ # value: "CustomHTTPHeaderValue", # required
13817
+ # },
13818
+ # ],
13819
+ # },
13820
+ # },
13821
+ # challenge: {
13822
+ # custom_request_handling: {
13823
+ # insert_headers: [ # required
13824
+ # {
13825
+ # name: "CustomHTTPHeaderName", # required
13826
+ # value: "CustomHTTPHeaderValue", # required
13827
+ # },
13828
+ # ],
13829
+ # },
13830
+ # },
13831
+ # },
12020
13832
  # },
12021
13833
  # ],
12022
13834
  # },
@@ -12338,6 +14150,65 @@ module Aws::WAFV2
12338
14150
  # name: "EntityName", # required
12339
14151
  # },
12340
14152
  # ],
14153
+ # rule_action_overrides: [
14154
+ # {
14155
+ # name: "EntityName", # required
14156
+ # action_to_use: { # required
14157
+ # block: {
14158
+ # custom_response: {
14159
+ # response_code: 1, # required
14160
+ # custom_response_body_key: "EntityName",
14161
+ # response_headers: [
14162
+ # {
14163
+ # name: "CustomHTTPHeaderName", # required
14164
+ # value: "CustomHTTPHeaderValue", # required
14165
+ # },
14166
+ # ],
14167
+ # },
14168
+ # },
14169
+ # allow: {
14170
+ # custom_request_handling: {
14171
+ # insert_headers: [ # required
14172
+ # {
14173
+ # name: "CustomHTTPHeaderName", # required
14174
+ # value: "CustomHTTPHeaderValue", # required
14175
+ # },
14176
+ # ],
14177
+ # },
14178
+ # },
14179
+ # count: {
14180
+ # custom_request_handling: {
14181
+ # insert_headers: [ # required
14182
+ # {
14183
+ # name: "CustomHTTPHeaderName", # required
14184
+ # value: "CustomHTTPHeaderValue", # required
14185
+ # },
14186
+ # ],
14187
+ # },
14188
+ # },
14189
+ # captcha: {
14190
+ # custom_request_handling: {
14191
+ # insert_headers: [ # required
14192
+ # {
14193
+ # name: "CustomHTTPHeaderName", # required
14194
+ # value: "CustomHTTPHeaderValue", # required
14195
+ # },
14196
+ # ],
14197
+ # },
14198
+ # },
14199
+ # challenge: {
14200
+ # custom_request_handling: {
14201
+ # insert_headers: [ # required
14202
+ # {
14203
+ # name: "CustomHTTPHeaderName", # required
14204
+ # value: "CustomHTTPHeaderValue", # required
14205
+ # },
14206
+ # ],
14207
+ # },
14208
+ # },
14209
+ # },
14210
+ # },
14211
+ # ],
12341
14212
  # },
12342
14213
  # ip_set_reference_statement: {
12343
14214
  # arn: "ResourceArn", # required
@@ -12451,6 +14322,68 @@ module Aws::WAFV2
12451
14322
  # password_field: {
12452
14323
  # identifier: "FieldIdentifier", # required
12453
14324
  # },
14325
+ # aws_managed_rules_bot_control_rule_set: {
14326
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
14327
+ # },
14328
+ # },
14329
+ # ],
14330
+ # rule_action_overrides: [
14331
+ # {
14332
+ # name: "EntityName", # required
14333
+ # action_to_use: { # required
14334
+ # block: {
14335
+ # custom_response: {
14336
+ # response_code: 1, # required
14337
+ # custom_response_body_key: "EntityName",
14338
+ # response_headers: [
14339
+ # {
14340
+ # name: "CustomHTTPHeaderName", # required
14341
+ # value: "CustomHTTPHeaderValue", # required
14342
+ # },
14343
+ # ],
14344
+ # },
14345
+ # },
14346
+ # allow: {
14347
+ # custom_request_handling: {
14348
+ # insert_headers: [ # required
14349
+ # {
14350
+ # name: "CustomHTTPHeaderName", # required
14351
+ # value: "CustomHTTPHeaderValue", # required
14352
+ # },
14353
+ # ],
14354
+ # },
14355
+ # },
14356
+ # count: {
14357
+ # custom_request_handling: {
14358
+ # insert_headers: [ # required
14359
+ # {
14360
+ # name: "CustomHTTPHeaderName", # required
14361
+ # value: "CustomHTTPHeaderValue", # required
14362
+ # },
14363
+ # ],
14364
+ # },
14365
+ # },
14366
+ # captcha: {
14367
+ # custom_request_handling: {
14368
+ # insert_headers: [ # required
14369
+ # {
14370
+ # name: "CustomHTTPHeaderName", # required
14371
+ # value: "CustomHTTPHeaderValue", # required
14372
+ # },
14373
+ # ],
14374
+ # },
14375
+ # },
14376
+ # challenge: {
14377
+ # custom_request_handling: {
14378
+ # insert_headers: [ # required
14379
+ # {
14380
+ # name: "CustomHTTPHeaderName", # required
14381
+ # value: "CustomHTTPHeaderValue", # required
14382
+ # },
14383
+ # ],
14384
+ # },
14385
+ # },
14386
+ # },
12454
14387
  # },
12455
14388
  # ],
12456
14389
  # },
@@ -12769,6 +14702,65 @@ module Aws::WAFV2
12769
14702
  # name: "EntityName", # required
12770
14703
  # },
12771
14704
  # ],
14705
+ # rule_action_overrides: [
14706
+ # {
14707
+ # name: "EntityName", # required
14708
+ # action_to_use: { # required
14709
+ # block: {
14710
+ # custom_response: {
14711
+ # response_code: 1, # required
14712
+ # custom_response_body_key: "EntityName",
14713
+ # response_headers: [
14714
+ # {
14715
+ # name: "CustomHTTPHeaderName", # required
14716
+ # value: "CustomHTTPHeaderValue", # required
14717
+ # },
14718
+ # ],
14719
+ # },
14720
+ # },
14721
+ # allow: {
14722
+ # custom_request_handling: {
14723
+ # insert_headers: [ # required
14724
+ # {
14725
+ # name: "CustomHTTPHeaderName", # required
14726
+ # value: "CustomHTTPHeaderValue", # required
14727
+ # },
14728
+ # ],
14729
+ # },
14730
+ # },
14731
+ # count: {
14732
+ # custom_request_handling: {
14733
+ # insert_headers: [ # required
14734
+ # {
14735
+ # name: "CustomHTTPHeaderName", # required
14736
+ # value: "CustomHTTPHeaderValue", # required
14737
+ # },
14738
+ # ],
14739
+ # },
14740
+ # },
14741
+ # captcha: {
14742
+ # custom_request_handling: {
14743
+ # insert_headers: [ # required
14744
+ # {
14745
+ # name: "CustomHTTPHeaderName", # required
14746
+ # value: "CustomHTTPHeaderValue", # required
14747
+ # },
14748
+ # ],
14749
+ # },
14750
+ # },
14751
+ # challenge: {
14752
+ # custom_request_handling: {
14753
+ # insert_headers: [ # required
14754
+ # {
14755
+ # name: "CustomHTTPHeaderName", # required
14756
+ # value: "CustomHTTPHeaderValue", # required
14757
+ # },
14758
+ # ],
14759
+ # },
14760
+ # },
14761
+ # },
14762
+ # },
14763
+ # ],
12772
14764
  # },
12773
14765
  # ip_set_reference_statement: {
12774
14766
  # arn: "ResourceArn", # required
@@ -12882,6 +14874,68 @@ module Aws::WAFV2
12882
14874
  # password_field: {
12883
14875
  # identifier: "FieldIdentifier", # required
12884
14876
  # },
14877
+ # aws_managed_rules_bot_control_rule_set: {
14878
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
14879
+ # },
14880
+ # },
14881
+ # ],
14882
+ # rule_action_overrides: [
14883
+ # {
14884
+ # name: "EntityName", # required
14885
+ # action_to_use: { # required
14886
+ # block: {
14887
+ # custom_response: {
14888
+ # response_code: 1, # required
14889
+ # custom_response_body_key: "EntityName",
14890
+ # response_headers: [
14891
+ # {
14892
+ # name: "CustomHTTPHeaderName", # required
14893
+ # value: "CustomHTTPHeaderValue", # required
14894
+ # },
14895
+ # ],
14896
+ # },
14897
+ # },
14898
+ # allow: {
14899
+ # custom_request_handling: {
14900
+ # insert_headers: [ # required
14901
+ # {
14902
+ # name: "CustomHTTPHeaderName", # required
14903
+ # value: "CustomHTTPHeaderValue", # required
14904
+ # },
14905
+ # ],
14906
+ # },
14907
+ # },
14908
+ # count: {
14909
+ # custom_request_handling: {
14910
+ # insert_headers: [ # required
14911
+ # {
14912
+ # name: "CustomHTTPHeaderName", # required
14913
+ # value: "CustomHTTPHeaderValue", # required
14914
+ # },
14915
+ # ],
14916
+ # },
14917
+ # },
14918
+ # captcha: {
14919
+ # custom_request_handling: {
14920
+ # insert_headers: [ # required
14921
+ # {
14922
+ # name: "CustomHTTPHeaderName", # required
14923
+ # value: "CustomHTTPHeaderValue", # required
14924
+ # },
14925
+ # ],
14926
+ # },
14927
+ # },
14928
+ # challenge: {
14929
+ # custom_request_handling: {
14930
+ # insert_headers: [ # required
14931
+ # {
14932
+ # name: "CustomHTTPHeaderName", # required
14933
+ # value: "CustomHTTPHeaderValue", # required
14934
+ # },
14935
+ # ],
14936
+ # },
14937
+ # },
14938
+ # },
12885
14939
  # },
12886
14940
  # ],
12887
14941
  # },
@@ -13199,6 +15253,65 @@ module Aws::WAFV2
13199
15253
  # name: "EntityName", # required
13200
15254
  # },
13201
15255
  # ],
15256
+ # rule_action_overrides: [
15257
+ # {
15258
+ # name: "EntityName", # required
15259
+ # action_to_use: { # required
15260
+ # block: {
15261
+ # custom_response: {
15262
+ # response_code: 1, # required
15263
+ # custom_response_body_key: "EntityName",
15264
+ # response_headers: [
15265
+ # {
15266
+ # name: "CustomHTTPHeaderName", # required
15267
+ # value: "CustomHTTPHeaderValue", # required
15268
+ # },
15269
+ # ],
15270
+ # },
15271
+ # },
15272
+ # allow: {
15273
+ # custom_request_handling: {
15274
+ # insert_headers: [ # required
15275
+ # {
15276
+ # name: "CustomHTTPHeaderName", # required
15277
+ # value: "CustomHTTPHeaderValue", # required
15278
+ # },
15279
+ # ],
15280
+ # },
15281
+ # },
15282
+ # count: {
15283
+ # custom_request_handling: {
15284
+ # insert_headers: [ # required
15285
+ # {
15286
+ # name: "CustomHTTPHeaderName", # required
15287
+ # value: "CustomHTTPHeaderValue", # required
15288
+ # },
15289
+ # ],
15290
+ # },
15291
+ # },
15292
+ # captcha: {
15293
+ # custom_request_handling: {
15294
+ # insert_headers: [ # required
15295
+ # {
15296
+ # name: "CustomHTTPHeaderName", # required
15297
+ # value: "CustomHTTPHeaderValue", # required
15298
+ # },
15299
+ # ],
15300
+ # },
15301
+ # },
15302
+ # challenge: {
15303
+ # custom_request_handling: {
15304
+ # insert_headers: [ # required
15305
+ # {
15306
+ # name: "CustomHTTPHeaderName", # required
15307
+ # value: "CustomHTTPHeaderValue", # required
15308
+ # },
15309
+ # ],
15310
+ # },
15311
+ # },
15312
+ # },
15313
+ # },
15314
+ # ],
13202
15315
  # },
13203
15316
  # ip_set_reference_statement: {
13204
15317
  # arn: "ResourceArn", # required
@@ -13316,6 +15429,68 @@ module Aws::WAFV2
13316
15429
  # password_field: {
13317
15430
  # identifier: "FieldIdentifier", # required
13318
15431
  # },
15432
+ # aws_managed_rules_bot_control_rule_set: {
15433
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
15434
+ # },
15435
+ # },
15436
+ # ],
15437
+ # rule_action_overrides: [
15438
+ # {
15439
+ # name: "EntityName", # required
15440
+ # action_to_use: { # required
15441
+ # block: {
15442
+ # custom_response: {
15443
+ # response_code: 1, # required
15444
+ # custom_response_body_key: "EntityName",
15445
+ # response_headers: [
15446
+ # {
15447
+ # name: "CustomHTTPHeaderName", # required
15448
+ # value: "CustomHTTPHeaderValue", # required
15449
+ # },
15450
+ # ],
15451
+ # },
15452
+ # },
15453
+ # allow: {
15454
+ # custom_request_handling: {
15455
+ # insert_headers: [ # required
15456
+ # {
15457
+ # name: "CustomHTTPHeaderName", # required
15458
+ # value: "CustomHTTPHeaderValue", # required
15459
+ # },
15460
+ # ],
15461
+ # },
15462
+ # },
15463
+ # count: {
15464
+ # custom_request_handling: {
15465
+ # insert_headers: [ # required
15466
+ # {
15467
+ # name: "CustomHTTPHeaderName", # required
15468
+ # value: "CustomHTTPHeaderValue", # required
15469
+ # },
15470
+ # ],
15471
+ # },
15472
+ # },
15473
+ # captcha: {
15474
+ # custom_request_handling: {
15475
+ # insert_headers: [ # required
15476
+ # {
15477
+ # name: "CustomHTTPHeaderName", # required
15478
+ # value: "CustomHTTPHeaderValue", # required
15479
+ # },
15480
+ # ],
15481
+ # },
15482
+ # },
15483
+ # challenge: {
15484
+ # custom_request_handling: {
15485
+ # insert_headers: [ # required
15486
+ # {
15487
+ # name: "CustomHTTPHeaderName", # required
15488
+ # value: "CustomHTTPHeaderValue", # required
15489
+ # },
15490
+ # ],
15491
+ # },
15492
+ # },
15493
+ # },
13319
15494
  # },
13320
15495
  # ],
13321
15496
  # },
@@ -13640,6 +15815,65 @@ module Aws::WAFV2
13640
15815
  # name: "EntityName", # required
13641
15816
  # },
13642
15817
  # ],
15818
+ # rule_action_overrides: [
15819
+ # {
15820
+ # name: "EntityName", # required
15821
+ # action_to_use: { # required
15822
+ # block: {
15823
+ # custom_response: {
15824
+ # response_code: 1, # required
15825
+ # custom_response_body_key: "EntityName",
15826
+ # response_headers: [
15827
+ # {
15828
+ # name: "CustomHTTPHeaderName", # required
15829
+ # value: "CustomHTTPHeaderValue", # required
15830
+ # },
15831
+ # ],
15832
+ # },
15833
+ # },
15834
+ # allow: {
15835
+ # custom_request_handling: {
15836
+ # insert_headers: [ # required
15837
+ # {
15838
+ # name: "CustomHTTPHeaderName", # required
15839
+ # value: "CustomHTTPHeaderValue", # required
15840
+ # },
15841
+ # ],
15842
+ # },
15843
+ # },
15844
+ # count: {
15845
+ # custom_request_handling: {
15846
+ # insert_headers: [ # required
15847
+ # {
15848
+ # name: "CustomHTTPHeaderName", # required
15849
+ # value: "CustomHTTPHeaderValue", # required
15850
+ # },
15851
+ # ],
15852
+ # },
15853
+ # },
15854
+ # captcha: {
15855
+ # custom_request_handling: {
15856
+ # insert_headers: [ # required
15857
+ # {
15858
+ # name: "CustomHTTPHeaderName", # required
15859
+ # value: "CustomHTTPHeaderValue", # required
15860
+ # },
15861
+ # ],
15862
+ # },
15863
+ # },
15864
+ # challenge: {
15865
+ # custom_request_handling: {
15866
+ # insert_headers: [ # required
15867
+ # {
15868
+ # name: "CustomHTTPHeaderName", # required
15869
+ # value: "CustomHTTPHeaderValue", # required
15870
+ # },
15871
+ # ],
15872
+ # },
15873
+ # },
15874
+ # },
15875
+ # },
15876
+ # ],
13643
15877
  # },
13644
15878
  # ip_set_reference_statement: {
13645
15879
  # arn: "ResourceArn", # required
@@ -13813,6 +16047,68 @@ module Aws::WAFV2
13813
16047
  # password_field: {
13814
16048
  # identifier: "FieldIdentifier", # required
13815
16049
  # },
16050
+ # aws_managed_rules_bot_control_rule_set: {
16051
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
16052
+ # },
16053
+ # },
16054
+ # ],
16055
+ # rule_action_overrides: [
16056
+ # {
16057
+ # name: "EntityName", # required
16058
+ # action_to_use: { # required
16059
+ # block: {
16060
+ # custom_response: {
16061
+ # response_code: 1, # required
16062
+ # custom_response_body_key: "EntityName",
16063
+ # response_headers: [
16064
+ # {
16065
+ # name: "CustomHTTPHeaderName", # required
16066
+ # value: "CustomHTTPHeaderValue", # required
16067
+ # },
16068
+ # ],
16069
+ # },
16070
+ # },
16071
+ # allow: {
16072
+ # custom_request_handling: {
16073
+ # insert_headers: [ # required
16074
+ # {
16075
+ # name: "CustomHTTPHeaderName", # required
16076
+ # value: "CustomHTTPHeaderValue", # required
16077
+ # },
16078
+ # ],
16079
+ # },
16080
+ # },
16081
+ # count: {
16082
+ # custom_request_handling: {
16083
+ # insert_headers: [ # required
16084
+ # {
16085
+ # name: "CustomHTTPHeaderName", # required
16086
+ # value: "CustomHTTPHeaderValue", # required
16087
+ # },
16088
+ # ],
16089
+ # },
16090
+ # },
16091
+ # captcha: {
16092
+ # custom_request_handling: {
16093
+ # insert_headers: [ # required
16094
+ # {
16095
+ # name: "CustomHTTPHeaderName", # required
16096
+ # value: "CustomHTTPHeaderValue", # required
16097
+ # },
16098
+ # ],
16099
+ # },
16100
+ # },
16101
+ # challenge: {
16102
+ # custom_request_handling: {
16103
+ # insert_headers: [ # required
16104
+ # {
16105
+ # name: "CustomHTTPHeaderName", # required
16106
+ # value: "CustomHTTPHeaderValue", # required
16107
+ # },
16108
+ # ],
16109
+ # },
16110
+ # },
16111
+ # },
13816
16112
  # },
13817
16113
  # ],
13818
16114
  # },
@@ -15020,6 +17316,65 @@ module Aws::WAFV2
15020
17316
  # name: "EntityName", # required
15021
17317
  # },
15022
17318
  # ],
17319
+ # rule_action_overrides: [
17320
+ # {
17321
+ # name: "EntityName", # required
17322
+ # action_to_use: { # required
17323
+ # block: {
17324
+ # custom_response: {
17325
+ # response_code: 1, # required
17326
+ # custom_response_body_key: "EntityName",
17327
+ # response_headers: [
17328
+ # {
17329
+ # name: "CustomHTTPHeaderName", # required
17330
+ # value: "CustomHTTPHeaderValue", # required
17331
+ # },
17332
+ # ],
17333
+ # },
17334
+ # },
17335
+ # allow: {
17336
+ # custom_request_handling: {
17337
+ # insert_headers: [ # required
17338
+ # {
17339
+ # name: "CustomHTTPHeaderName", # required
17340
+ # value: "CustomHTTPHeaderValue", # required
17341
+ # },
17342
+ # ],
17343
+ # },
17344
+ # },
17345
+ # count: {
17346
+ # custom_request_handling: {
17347
+ # insert_headers: [ # required
17348
+ # {
17349
+ # name: "CustomHTTPHeaderName", # required
17350
+ # value: "CustomHTTPHeaderValue", # required
17351
+ # },
17352
+ # ],
17353
+ # },
17354
+ # },
17355
+ # captcha: {
17356
+ # custom_request_handling: {
17357
+ # insert_headers: [ # required
17358
+ # {
17359
+ # name: "CustomHTTPHeaderName", # required
17360
+ # value: "CustomHTTPHeaderValue", # required
17361
+ # },
17362
+ # ],
17363
+ # },
17364
+ # },
17365
+ # challenge: {
17366
+ # custom_request_handling: {
17367
+ # insert_headers: [ # required
17368
+ # {
17369
+ # name: "CustomHTTPHeaderName", # required
17370
+ # value: "CustomHTTPHeaderValue", # required
17371
+ # },
17372
+ # ],
17373
+ # },
17374
+ # },
17375
+ # },
17376
+ # },
17377
+ # ],
15023
17378
  # },
15024
17379
  # ip_set_reference_statement: {
15025
17380
  # arn: "ResourceArn", # required
@@ -15139,6 +17494,68 @@ module Aws::WAFV2
15139
17494
  # password_field: {
15140
17495
  # identifier: "FieldIdentifier", # required
15141
17496
  # },
17497
+ # aws_managed_rules_bot_control_rule_set: {
17498
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
17499
+ # },
17500
+ # },
17501
+ # ],
17502
+ # rule_action_overrides: [
17503
+ # {
17504
+ # name: "EntityName", # required
17505
+ # action_to_use: { # required
17506
+ # block: {
17507
+ # custom_response: {
17508
+ # response_code: 1, # required
17509
+ # custom_response_body_key: "EntityName",
17510
+ # response_headers: [
17511
+ # {
17512
+ # name: "CustomHTTPHeaderName", # required
17513
+ # value: "CustomHTTPHeaderValue", # required
17514
+ # },
17515
+ # ],
17516
+ # },
17517
+ # },
17518
+ # allow: {
17519
+ # custom_request_handling: {
17520
+ # insert_headers: [ # required
17521
+ # {
17522
+ # name: "CustomHTTPHeaderName", # required
17523
+ # value: "CustomHTTPHeaderValue", # required
17524
+ # },
17525
+ # ],
17526
+ # },
17527
+ # },
17528
+ # count: {
17529
+ # custom_request_handling: {
17530
+ # insert_headers: [ # required
17531
+ # {
17532
+ # name: "CustomHTTPHeaderName", # required
17533
+ # value: "CustomHTTPHeaderValue", # required
17534
+ # },
17535
+ # ],
17536
+ # },
17537
+ # },
17538
+ # captcha: {
17539
+ # custom_request_handling: {
17540
+ # insert_headers: [ # required
17541
+ # {
17542
+ # name: "CustomHTTPHeaderName", # required
17543
+ # value: "CustomHTTPHeaderValue", # required
17544
+ # },
17545
+ # ],
17546
+ # },
17547
+ # },
17548
+ # challenge: {
17549
+ # custom_request_handling: {
17550
+ # insert_headers: [ # required
17551
+ # {
17552
+ # name: "CustomHTTPHeaderName", # required
17553
+ # value: "CustomHTTPHeaderValue", # required
17554
+ # },
17555
+ # ],
17556
+ # },
17557
+ # },
17558
+ # },
15142
17559
  # },
15143
17560
  # ],
15144
17561
  # },
@@ -15248,6 +17665,16 @@ module Aws::WAFV2
15248
17665
  # ],
15249
17666
  # },
15250
17667
  # },
17668
+ # challenge: {
17669
+ # custom_request_handling: {
17670
+ # insert_headers: [ # required
17671
+ # {
17672
+ # name: "CustomHTTPHeaderName", # required
17673
+ # value: "CustomHTTPHeaderValue", # required
17674
+ # },
17675
+ # ],
17676
+ # },
17677
+ # },
15251
17678
  # },
15252
17679
  # override_action: {
15253
17680
  # count: {
@@ -15278,6 +17705,11 @@ module Aws::WAFV2
15278
17705
  # immunity_time: 1, # required
15279
17706
  # },
15280
17707
  # },
17708
+ # challenge_config: {
17709
+ # immunity_time_property: {
17710
+ # immunity_time: 1, # required
17711
+ # },
17712
+ # },
15281
17713
  # },
15282
17714
  # ],
15283
17715
  # visibility_config: { # required
@@ -15682,6 +18114,65 @@ module Aws::WAFV2
15682
18114
  # name: "EntityName", # required
15683
18115
  # },
15684
18116
  # ],
18117
+ # rule_action_overrides: [
18118
+ # {
18119
+ # name: "EntityName", # required
18120
+ # action_to_use: { # required
18121
+ # block: {
18122
+ # custom_response: {
18123
+ # response_code: 1, # required
18124
+ # custom_response_body_key: "EntityName",
18125
+ # response_headers: [
18126
+ # {
18127
+ # name: "CustomHTTPHeaderName", # required
18128
+ # value: "CustomHTTPHeaderValue", # required
18129
+ # },
18130
+ # ],
18131
+ # },
18132
+ # },
18133
+ # allow: {
18134
+ # custom_request_handling: {
18135
+ # insert_headers: [ # required
18136
+ # {
18137
+ # name: "CustomHTTPHeaderName", # required
18138
+ # value: "CustomHTTPHeaderValue", # required
18139
+ # },
18140
+ # ],
18141
+ # },
18142
+ # },
18143
+ # count: {
18144
+ # custom_request_handling: {
18145
+ # insert_headers: [ # required
18146
+ # {
18147
+ # name: "CustomHTTPHeaderName", # required
18148
+ # value: "CustomHTTPHeaderValue", # required
18149
+ # },
18150
+ # ],
18151
+ # },
18152
+ # },
18153
+ # captcha: {
18154
+ # custom_request_handling: {
18155
+ # insert_headers: [ # required
18156
+ # {
18157
+ # name: "CustomHTTPHeaderName", # required
18158
+ # value: "CustomHTTPHeaderValue", # required
18159
+ # },
18160
+ # ],
18161
+ # },
18162
+ # },
18163
+ # challenge: {
18164
+ # custom_request_handling: {
18165
+ # insert_headers: [ # required
18166
+ # {
18167
+ # name: "CustomHTTPHeaderName", # required
18168
+ # value: "CustomHTTPHeaderValue", # required
18169
+ # },
18170
+ # ],
18171
+ # },
18172
+ # },
18173
+ # },
18174
+ # },
18175
+ # ],
15685
18176
  # },
15686
18177
  # ip_set_reference_statement: {
15687
18178
  # arn: "ResourceArn", # required
@@ -15801,6 +18292,68 @@ module Aws::WAFV2
15801
18292
  # password_field: {
15802
18293
  # identifier: "FieldIdentifier", # required
15803
18294
  # },
18295
+ # aws_managed_rules_bot_control_rule_set: {
18296
+ # inspection_level: "COMMON", # required, accepts COMMON, TARGETED
18297
+ # },
18298
+ # },
18299
+ # ],
18300
+ # rule_action_overrides: [
18301
+ # {
18302
+ # name: "EntityName", # required
18303
+ # action_to_use: { # required
18304
+ # block: {
18305
+ # custom_response: {
18306
+ # response_code: 1, # required
18307
+ # custom_response_body_key: "EntityName",
18308
+ # response_headers: [
18309
+ # {
18310
+ # name: "CustomHTTPHeaderName", # required
18311
+ # value: "CustomHTTPHeaderValue", # required
18312
+ # },
18313
+ # ],
18314
+ # },
18315
+ # },
18316
+ # allow: {
18317
+ # custom_request_handling: {
18318
+ # insert_headers: [ # required
18319
+ # {
18320
+ # name: "CustomHTTPHeaderName", # required
18321
+ # value: "CustomHTTPHeaderValue", # required
18322
+ # },
18323
+ # ],
18324
+ # },
18325
+ # },
18326
+ # count: {
18327
+ # custom_request_handling: {
18328
+ # insert_headers: [ # required
18329
+ # {
18330
+ # name: "CustomHTTPHeaderName", # required
18331
+ # value: "CustomHTTPHeaderValue", # required
18332
+ # },
18333
+ # ],
18334
+ # },
18335
+ # },
18336
+ # captcha: {
18337
+ # custom_request_handling: {
18338
+ # insert_headers: [ # required
18339
+ # {
18340
+ # name: "CustomHTTPHeaderName", # required
18341
+ # value: "CustomHTTPHeaderValue", # required
18342
+ # },
18343
+ # ],
18344
+ # },
18345
+ # },
18346
+ # challenge: {
18347
+ # custom_request_handling: {
18348
+ # insert_headers: [ # required
18349
+ # {
18350
+ # name: "CustomHTTPHeaderName", # required
18351
+ # value: "CustomHTTPHeaderValue", # required
18352
+ # },
18353
+ # ],
18354
+ # },
18355
+ # },
18356
+ # },
15804
18357
  # },
15805
18358
  # ],
15806
18359
  # },
@@ -15910,6 +18463,16 @@ module Aws::WAFV2
15910
18463
  # ],
15911
18464
  # },
15912
18465
  # },
18466
+ # challenge: {
18467
+ # custom_request_handling: {
18468
+ # insert_headers: [ # required
18469
+ # {
18470
+ # name: "CustomHTTPHeaderName", # required
18471
+ # value: "CustomHTTPHeaderValue", # required
18472
+ # },
18473
+ # ],
18474
+ # },
18475
+ # },
15913
18476
  # },
15914
18477
  # override_action: {
15915
18478
  # count: {
@@ -15940,6 +18503,11 @@ module Aws::WAFV2
15940
18503
  # immunity_time: 1, # required
15941
18504
  # },
15942
18505
  # },
18506
+ # challenge_config: {
18507
+ # immunity_time_property: {
18508
+ # immunity_time: 1, # required
18509
+ # },
18510
+ # },
15943
18511
  # },
15944
18512
  # ],
15945
18513
  # visibility_config: { # required
@@ -15959,6 +18527,12 @@ module Aws::WAFV2
15959
18527
  # immunity_time: 1, # required
15960
18528
  # },
15961
18529
  # },
18530
+ # challenge_config: {
18531
+ # immunity_time_property: {
18532
+ # immunity_time: 1, # required
18533
+ # },
18534
+ # },
18535
+ # token_domains: ["TokenDomain"],
15962
18536
  # }
15963
18537
  #
15964
18538
  # @!attribute [rw] name
@@ -16047,6 +18621,26 @@ module Aws::WAFV2
16047
18621
  # specify this, WAF uses its default settings for `CaptchaConfig`.
16048
18622
  # @return [Types::CaptchaConfig]
16049
18623
  #
18624
+ # @!attribute [rw] challenge_config
18625
+ # Specifies how WAF should handle challenge evaluations for rules that
18626
+ # don't have their own `ChallengeConfig` settings. If you don't
18627
+ # specify this, WAF uses its default settings for `ChallengeConfig`.
18628
+ # @return [Types::ChallengeConfig]
18629
+ #
18630
+ # @!attribute [rw] token_domains
18631
+ # Specifies the domains that WAF should accept in a web request token.
18632
+ # This enables the use of tokens across multiple protected websites.
18633
+ # When WAF provides a token, it uses the domain of the Amazon Web
18634
+ # Services resource that the web ACL is protecting. If you don't
18635
+ # specify a list of token domains, WAF accepts tokens only for the
18636
+ # domain of the protected resource. With a token domain list, WAF
18637
+ # accepts the resource's host domain plus all domains in the token
18638
+ # domain list, including their prefixed subdomains.
18639
+ #
18640
+ # Example JSON: `"TokenDomains": \{ "mywebsite.com",
18641
+ # "myotherwebsite.com" \}`
18642
+ # @return [Array<String>]
18643
+ #
16050
18644
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateWebACLRequest AWS API Documentation
16051
18645
  #
16052
18646
  class UpdateWebACLRequest < Struct.new(
@@ -16059,7 +18653,9 @@ module Aws::WAFV2
16059
18653
  :visibility_config,
16060
18654
  :lock_token,
16061
18655
  :custom_response_bodies,
16062
- :captcha_config)
18656
+ :captcha_config,
18657
+ :challenge_config,
18658
+ :token_domains)
16063
18659
  SENSITIVE = []
16064
18660
  include Aws::Structure
16065
18661
  end
@@ -16678,6 +19274,23 @@ module Aws::WAFV2
16678
19274
  # specify this, WAF uses its default settings for `CaptchaConfig`.
16679
19275
  # @return [Types::CaptchaConfig]
16680
19276
  #
19277
+ # @!attribute [rw] challenge_config
19278
+ # Specifies how WAF should handle challenge evaluations for rules that
19279
+ # don't have their own `ChallengeConfig` settings. If you don't
19280
+ # specify this, WAF uses its default settings for `ChallengeConfig`.
19281
+ # @return [Types::ChallengeConfig]
19282
+ #
19283
+ # @!attribute [rw] token_domains
19284
+ # Specifies the domains that WAF should accept in a web request token.
19285
+ # This enables the use of tokens across multiple protected websites.
19286
+ # When WAF provides a token, it uses the domain of the Amazon Web
19287
+ # Services resource that the web ACL is protecting. If you don't
19288
+ # specify a list of token domains, WAF accepts tokens only for the
19289
+ # domain of the protected resource. With a token domain list, WAF
19290
+ # accepts the resource's host domain plus all domains in the token
19291
+ # domain list, including their prefixed subdomains.
19292
+ # @return [Array<String>]
19293
+ #
16681
19294
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/WebACL AWS API Documentation
16682
19295
  #
16683
19296
  class WebACL < Struct.new(
@@ -16694,7 +19307,9 @@ module Aws::WAFV2
16694
19307
  :managed_by_firewall_manager,
16695
19308
  :label_namespace,
16696
19309
  :custom_response_bodies,
16697
- :captcha_config)
19310
+ :captcha_config,
19311
+ :challenge_config,
19312
+ :token_domains)
16698
19313
  SENSITIVE = []
16699
19314
  include Aws::Structure
16700
19315
  end