aws-sdk-wafv2 1.29.0 → 1.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 80f32a5d5b5bb24d6105d309f463402492ccc75367e724647e162f03e40c05d8
4
- data.tar.gz: e1f486eeb68663f87370d6d93e9f312d4cee9c2ed98f5004c63cdb7e59a0e97f
3
+ metadata.gz: 98b51813c9f78ac6f0365cc3dc004f07ffe648292e2d94a97e5bd61c65154168
4
+ data.tar.gz: 5996ef24059d82e2dd2544c99a69fe8bfe4d87d3ecef6191e44091b2c836555f
5
5
  SHA512:
6
- metadata.gz: 6a78933de6304c54d06c1eba810136755f0a603f5ff95f9128881fcedd9795b4fa481754055993f9627471633a1e24bc32dbed796b5bdefde3ce546eb44c0a8d
7
- data.tar.gz: 7e1310c6d2d7968902fcb4522125c3ba94e8c5c30eb7d148393d08b46ff0fc60a2af975b4864ef59927c6bae032202821851fcae617aeda8b3089b25794d4b8b
6
+ metadata.gz: e8bb8b44f34f925ef9b19554fa968f54df6501511e95bd948e7692b36ab756bc3bf6b2b9b02e00ce0abed38204f85bc955d8cdf127b7bbc2337009dc1a59c1ba
7
+ data.tar.gz: 6eeece73c0fbfd8a2ae12b0c6b77017aff7a86c35f5bcadf9dc31ec9daf38a6c6b2b80312102fb2195c04a9c7bacf3aa16e2d30ec3e183f0e48cc78c2c571156
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.30.0 (2021-11-08)
5
+ ------------------
6
+
7
+ * Feature - You can now configure rules to run a CAPTCHA check against web requests and, as needed, send a CAPTCHA challenge to the client.
8
+
4
9
  1.29.0 (2021-11-04)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.29.0
1
+ 1.30.0
@@ -762,6 +762,16 @@ module Aws::WAFV2
762
762
  # ],
763
763
  # },
764
764
  # },
765
+ # captcha: {
766
+ # custom_request_handling: {
767
+ # insert_headers: [ # required
768
+ # {
769
+ # name: "CustomHTTPHeaderName", # required
770
+ # value: "CustomHTTPHeaderValue", # required
771
+ # },
772
+ # ],
773
+ # },
774
+ # },
765
775
  # },
766
776
  # override_action: {
767
777
  # count: {
@@ -787,6 +797,11 @@ module Aws::WAFV2
787
797
  # cloud_watch_metrics_enabled: false, # required
788
798
  # metric_name: "MetricName", # required
789
799
  # },
800
+ # captcha_config: {
801
+ # immunity_time_property: {
802
+ # immunity_time: 1, # required
803
+ # },
804
+ # },
790
805
  # },
791
806
  # ],
792
807
  # })
@@ -1389,6 +1404,16 @@ module Aws::WAFV2
1389
1404
  # ],
1390
1405
  # },
1391
1406
  # },
1407
+ # captcha: {
1408
+ # custom_request_handling: {
1409
+ # insert_headers: [ # required
1410
+ # {
1411
+ # name: "CustomHTTPHeaderName", # required
1412
+ # value: "CustomHTTPHeaderValue", # required
1413
+ # },
1414
+ # ],
1415
+ # },
1416
+ # },
1392
1417
  # },
1393
1418
  # override_action: {
1394
1419
  # count: {
@@ -1414,6 +1439,11 @@ module Aws::WAFV2
1414
1439
  # cloud_watch_metrics_enabled: false, # required
1415
1440
  # metric_name: "MetricName", # required
1416
1441
  # },
1442
+ # captcha_config: {
1443
+ # immunity_time_property: {
1444
+ # immunity_time: 1, # required
1445
+ # },
1446
+ # },
1417
1447
  # },
1418
1448
  # ],
1419
1449
  # visibility_config: { # required
@@ -1523,6 +1553,11 @@ module Aws::WAFV2
1523
1553
  # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1524
1554
  # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
1525
1555
  #
1556
+ # @option params [Types::CaptchaConfig] :captcha_config
1557
+ # Specifies how WAF should handle `CAPTCHA` evaluations for rules that
1558
+ # don't have their own `CaptchaConfig` settings. If you don't specify
1559
+ # this, WAF uses its default settings for `CaptchaConfig`.
1560
+ #
1526
1561
  # @return [Types::CreateWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1527
1562
  #
1528
1563
  # * {Types::CreateWebACLResponse#summary #summary} => Types::WebACLSummary
@@ -1882,6 +1917,16 @@ module Aws::WAFV2
1882
1917
  # ],
1883
1918
  # },
1884
1919
  # },
1920
+ # captcha: {
1921
+ # custom_request_handling: {
1922
+ # insert_headers: [ # required
1923
+ # {
1924
+ # name: "CustomHTTPHeaderName", # required
1925
+ # value: "CustomHTTPHeaderValue", # required
1926
+ # },
1927
+ # ],
1928
+ # },
1929
+ # },
1885
1930
  # },
1886
1931
  # override_action: {
1887
1932
  # count: {
@@ -1907,6 +1952,11 @@ module Aws::WAFV2
1907
1952
  # cloud_watch_metrics_enabled: false, # required
1908
1953
  # metric_name: "MetricName", # required
1909
1954
  # },
1955
+ # captcha_config: {
1956
+ # immunity_time_property: {
1957
+ # immunity_time: 1, # required
1958
+ # },
1959
+ # },
1910
1960
  # },
1911
1961
  # ],
1912
1962
  # visibility_config: { # required
@@ -1926,6 +1976,11 @@ module Aws::WAFV2
1926
1976
  # content: "ResponseContent", # required
1927
1977
  # },
1928
1978
  # },
1979
+ # captcha_config: {
1980
+ # immunity_time_property: {
1981
+ # immunity_time: 1, # required
1982
+ # },
1983
+ # },
1929
1984
  # })
1930
1985
  #
1931
1986
  # @example Response structure
@@ -2328,6 +2383,9 @@ module Aws::WAFV2
2328
2383
  # resp.rules[0].action.count.custom_request_handling.insert_headers #=> Array
2329
2384
  # resp.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
2330
2385
  # resp.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
2386
+ # resp.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
2387
+ # resp.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
2388
+ # resp.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
2331
2389
  # resp.label_namespace #=> String
2332
2390
  # resp.available_labels #=> Array
2333
2391
  # resp.available_labels[0].name #=> String
@@ -2480,7 +2538,7 @@ module Aws::WAFV2
2480
2538
  # resp.logging_configuration.logging_filter.filters[0].behavior #=> String, one of "KEEP", "DROP"
2481
2539
  # resp.logging_configuration.logging_filter.filters[0].requirement #=> String, one of "MEETS_ALL", "MEETS_ANY"
2482
2540
  # resp.logging_configuration.logging_filter.filters[0].conditions #=> Array
2483
- # resp.logging_configuration.logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT"
2541
+ # resp.logging_configuration.logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT", "CAPTCHA", "EXCLUDED_AS_COUNT"
2484
2542
  # resp.logging_configuration.logging_filter.filters[0].conditions[0].label_name_condition.label_name #=> String
2485
2543
  # resp.logging_configuration.logging_filter.default_behavior #=> String, one of "KEEP", "DROP"
2486
2544
  #
@@ -2897,6 +2955,9 @@ module Aws::WAFV2
2897
2955
  # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers #=> Array
2898
2956
  # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
2899
2957
  # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
2958
+ # resp.rule_group.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
2959
+ # resp.rule_group.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
2960
+ # resp.rule_group.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
2900
2961
  # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
2901
2962
  # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
2902
2963
  # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
@@ -2905,6 +2966,7 @@ module Aws::WAFV2
2905
2966
  # resp.rule_group.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
2906
2967
  # resp.rule_group.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
2907
2968
  # resp.rule_group.rules[0].visibility_config.metric_name #=> String
2969
+ # resp.rule_group.rules[0].captcha_config.immunity_time_property.immunity_time #=> Integer
2908
2970
  # resp.rule_group.visibility_config.sampled_requests_enabled #=> Boolean
2909
2971
  # resp.rule_group.visibility_config.cloud_watch_metrics_enabled #=> Boolean
2910
2972
  # resp.rule_group.visibility_config.metric_name #=> String
@@ -3018,6 +3080,9 @@ module Aws::WAFV2
3018
3080
  # resp.sampled_requests[0].response_code_sent #=> Integer
3019
3081
  # resp.sampled_requests[0].labels #=> Array
3020
3082
  # resp.sampled_requests[0].labels[0].name #=> String
3083
+ # resp.sampled_requests[0].captcha_response.response_code #=> Integer
3084
+ # resp.sampled_requests[0].captcha_response.solve_timestamp #=> Integer
3085
+ # resp.sampled_requests[0].captcha_response.failure_reason #=> String, one of "TOKEN_MISSING", "TOKEN_EXPIRED"
3021
3086
  # resp.population_size #=> Integer
3022
3087
  # resp.time_window.start_time #=> Time
3023
3088
  # resp.time_window.end_time #=> Time
@@ -3186,6 +3251,9 @@ module Aws::WAFV2
3186
3251
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers #=> Array
3187
3252
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
3188
3253
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
3254
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
3255
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
3256
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
3189
3257
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
3190
3258
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
3191
3259
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
@@ -3194,6 +3262,7 @@ module Aws::WAFV2
3194
3262
  # resp.web_acl.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
3195
3263
  # resp.web_acl.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
3196
3264
  # resp.web_acl.rules[0].visibility_config.metric_name #=> String
3265
+ # resp.web_acl.rules[0].captcha_config.immunity_time_property.immunity_time #=> Integer
3197
3266
  # resp.web_acl.visibility_config.sampled_requests_enabled #=> Boolean
3198
3267
  # resp.web_acl.visibility_config.cloud_watch_metrics_enabled #=> Boolean
3199
3268
  # resp.web_acl.visibility_config.metric_name #=> String
@@ -3405,6 +3474,7 @@ module Aws::WAFV2
3405
3474
  # resp.web_acl.custom_response_bodies #=> Hash
3406
3475
  # resp.web_acl.custom_response_bodies["EntityName"].content_type #=> String, one of "TEXT_PLAIN", "TEXT_HTML", "APPLICATION_JSON"
3407
3476
  # resp.web_acl.custom_response_bodies["EntityName"].content #=> String
3477
+ # resp.web_acl.captcha_config.immunity_time_property.immunity_time #=> Integer
3408
3478
  # resp.lock_token #=> String
3409
3479
  #
3410
3480
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACL AWS API Documentation
@@ -3548,6 +3618,9 @@ module Aws::WAFV2
3548
3618
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers #=> Array
3549
3619
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
3550
3620
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
3621
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
3622
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
3623
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
3551
3624
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
3552
3625
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
3553
3626
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
@@ -3556,6 +3629,7 @@ module Aws::WAFV2
3556
3629
  # resp.web_acl.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
3557
3630
  # resp.web_acl.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
3558
3631
  # resp.web_acl.rules[0].visibility_config.metric_name #=> String
3632
+ # resp.web_acl.rules[0].captcha_config.immunity_time_property.immunity_time #=> Integer
3559
3633
  # resp.web_acl.visibility_config.sampled_requests_enabled #=> Boolean
3560
3634
  # resp.web_acl.visibility_config.cloud_watch_metrics_enabled #=> Boolean
3561
3635
  # resp.web_acl.visibility_config.metric_name #=> String
@@ -3767,6 +3841,7 @@ module Aws::WAFV2
3767
3841
  # resp.web_acl.custom_response_bodies #=> Hash
3768
3842
  # resp.web_acl.custom_response_bodies["EntityName"].content_type #=> String, one of "TEXT_PLAIN", "TEXT_HTML", "APPLICATION_JSON"
3769
3843
  # resp.web_acl.custom_response_bodies["EntityName"].content #=> String
3844
+ # resp.web_acl.captcha_config.immunity_time_property.immunity_time #=> Integer
3770
3845
  #
3771
3846
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACLForResource AWS API Documentation
3772
3847
  #
@@ -3972,7 +4047,7 @@ module Aws::WAFV2
3972
4047
 
3973
4048
  # Retrieves an array of your LoggingConfiguration objects.
3974
4049
  #
3975
- # @option params [String] :scope
4050
+ # @option params [required, String] :scope
3976
4051
  # Specifies whether this is for an Amazon CloudFront distribution or for
3977
4052
  # a regional application. A regional application can be an Application
3978
4053
  # Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync
@@ -4007,7 +4082,7 @@ module Aws::WAFV2
4007
4082
  # @example Request syntax with placeholder values
4008
4083
  #
4009
4084
  # resp = client.list_logging_configurations({
4010
- # scope: "CLOUDFRONT", # accepts CLOUDFRONT, REGIONAL
4085
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
4011
4086
  # next_marker: "NextMarker",
4012
4087
  # limit: 1,
4013
4088
  # })
@@ -4030,7 +4105,7 @@ module Aws::WAFV2
4030
4105
  # resp.logging_configurations[0].logging_filter.filters[0].behavior #=> String, one of "KEEP", "DROP"
4031
4106
  # resp.logging_configurations[0].logging_filter.filters[0].requirement #=> String, one of "MEETS_ALL", "MEETS_ANY"
4032
4107
  # resp.logging_configurations[0].logging_filter.filters[0].conditions #=> Array
4033
- # resp.logging_configurations[0].logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT"
4108
+ # resp.logging_configurations[0].logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT", "CAPTCHA", "EXCLUDED_AS_COUNT"
4034
4109
  # resp.logging_configurations[0].logging_filter.filters[0].conditions[0].label_name_condition.label_name #=> String
4035
4110
  # resp.logging_configurations[0].logging_filter.default_behavior #=> String, one of "KEEP", "DROP"
4036
4111
  # resp.next_marker #=> String
@@ -4490,7 +4565,7 @@ module Aws::WAFV2
4490
4565
  # conditions: [ # required
4491
4566
  # {
4492
4567
  # action_condition: {
4493
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT
4568
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
4494
4569
  # },
4495
4570
  # label_name_condition: {
4496
4571
  # label_name: "LabelName", # required
@@ -4521,7 +4596,7 @@ module Aws::WAFV2
4521
4596
  # resp.logging_configuration.logging_filter.filters[0].behavior #=> String, one of "KEEP", "DROP"
4522
4597
  # resp.logging_configuration.logging_filter.filters[0].requirement #=> String, one of "MEETS_ALL", "MEETS_ANY"
4523
4598
  # resp.logging_configuration.logging_filter.filters[0].conditions #=> Array
4524
- # resp.logging_configuration.logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT"
4599
+ # resp.logging_configuration.logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT", "CAPTCHA", "EXCLUDED_AS_COUNT"
4525
4600
  # resp.logging_configuration.logging_filter.filters[0].conditions[0].label_name_condition.label_name #=> String
4526
4601
  # resp.logging_configuration.logging_filter.default_behavior #=> String, one of "KEEP", "DROP"
4527
4602
  #
@@ -5469,6 +5544,16 @@ module Aws::WAFV2
5469
5544
  # ],
5470
5545
  # },
5471
5546
  # },
5547
+ # captcha: {
5548
+ # custom_request_handling: {
5549
+ # insert_headers: [ # required
5550
+ # {
5551
+ # name: "CustomHTTPHeaderName", # required
5552
+ # value: "CustomHTTPHeaderValue", # required
5553
+ # },
5554
+ # ],
5555
+ # },
5556
+ # },
5472
5557
  # },
5473
5558
  # override_action: {
5474
5559
  # count: {
@@ -5494,6 +5579,11 @@ module Aws::WAFV2
5494
5579
  # cloud_watch_metrics_enabled: false, # required
5495
5580
  # metric_name: "MetricName", # required
5496
5581
  # },
5582
+ # captcha_config: {
5583
+ # immunity_time_property: {
5584
+ # immunity_time: 1, # required
5585
+ # },
5586
+ # },
5497
5587
  # },
5498
5588
  # ],
5499
5589
  # visibility_config: { # required
@@ -5614,6 +5704,11 @@ module Aws::WAFV2
5614
5704
  # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5615
5705
  # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
5616
5706
  #
5707
+ # @option params [Types::CaptchaConfig] :captcha_config
5708
+ # Specifies how WAF should handle `CAPTCHA` evaluations for rules that
5709
+ # don't have their own `CaptchaConfig` settings. If you don't specify
5710
+ # this, WAF uses its default settings for `CaptchaConfig`.
5711
+ #
5617
5712
  # @return [Types::UpdateWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5618
5713
  #
5619
5714
  # * {Types::UpdateWebACLResponse#next_lock_token #next_lock_token} => String
@@ -5974,6 +6069,16 @@ module Aws::WAFV2
5974
6069
  # ],
5975
6070
  # },
5976
6071
  # },
6072
+ # captcha: {
6073
+ # custom_request_handling: {
6074
+ # insert_headers: [ # required
6075
+ # {
6076
+ # name: "CustomHTTPHeaderName", # required
6077
+ # value: "CustomHTTPHeaderValue", # required
6078
+ # },
6079
+ # ],
6080
+ # },
6081
+ # },
5977
6082
  # },
5978
6083
  # override_action: {
5979
6084
  # count: {
@@ -5999,6 +6104,11 @@ module Aws::WAFV2
5999
6104
  # cloud_watch_metrics_enabled: false, # required
6000
6105
  # metric_name: "MetricName", # required
6001
6106
  # },
6107
+ # captcha_config: {
6108
+ # immunity_time_property: {
6109
+ # immunity_time: 1, # required
6110
+ # },
6111
+ # },
6002
6112
  # },
6003
6113
  # ],
6004
6114
  # visibility_config: { # required
@@ -6013,6 +6123,11 @@ module Aws::WAFV2
6013
6123
  # content: "ResponseContent", # required
6014
6124
  # },
6015
6125
  # },
6126
+ # captcha_config: {
6127
+ # immunity_time_property: {
6128
+ # immunity_time: 1, # required
6129
+ # },
6130
+ # },
6016
6131
  # })
6017
6132
  #
6018
6133
  # @example Response structure
@@ -6041,7 +6156,7 @@ module Aws::WAFV2
6041
6156
  params: params,
6042
6157
  config: config)
6043
6158
  context[:gem_name] = 'aws-sdk-wafv2'
6044
- context[:gem_version] = '1.29.0'
6159
+ context[:gem_version] = '1.30.0'
6045
6160
  Seahorse::Client::Request.new(handlers, context)
6046
6161
  end
6047
6162
 
@@ -28,6 +28,9 @@ module Aws::WAFV2
28
28
  Boolean = Shapes::BooleanShape.new(name: 'Boolean')
29
29
  ByteMatchStatement = Shapes::StructureShape.new(name: 'ByteMatchStatement')
30
30
  CapacityUnit = Shapes::IntegerShape.new(name: 'CapacityUnit')
31
+ CaptchaAction = Shapes::StructureShape.new(name: 'CaptchaAction')
32
+ CaptchaConfig = Shapes::StructureShape.new(name: 'CaptchaConfig')
33
+ CaptchaResponse = Shapes::StructureShape.new(name: 'CaptchaResponse')
31
34
  CheckCapacityRequest = Shapes::StructureShape.new(name: 'CheckCapacityRequest')
32
35
  CheckCapacityResponse = Shapes::StructureShape.new(name: 'CheckCapacityResponse')
33
36
  ComparisonOperator = Shapes::StringShape.new(name: 'ComparisonOperator')
@@ -80,6 +83,7 @@ module Aws::WAFV2
80
83
  ErrorReason = Shapes::StringShape.new(name: 'ErrorReason')
81
84
  ExcludedRule = Shapes::StructureShape.new(name: 'ExcludedRule')
82
85
  ExcludedRules = Shapes::ListShape.new(name: 'ExcludedRules')
86
+ FailureReason = Shapes::StringShape.new(name: 'FailureReason')
83
87
  FallbackBehavior = Shapes::StringShape.new(name: 'FallbackBehavior')
84
88
  FieldToMatch = Shapes::StructureShape.new(name: 'FieldToMatch')
85
89
  FieldToMatchData = Shapes::StringShape.new(name: 'FieldToMatchData')
@@ -130,6 +134,7 @@ module Aws::WAFV2
130
134
  IPSetSummaries = Shapes::ListShape.new(name: 'IPSetSummaries')
131
135
  IPSetSummary = Shapes::StructureShape.new(name: 'IPSetSummary')
132
136
  IPString = Shapes::StringShape.new(name: 'IPString')
137
+ ImmunityTimeProperty = Shapes::StructureShape.new(name: 'ImmunityTimeProperty')
133
138
  JsonBody = Shapes::StructureShape.new(name: 'JsonBody')
134
139
  JsonMatchPattern = Shapes::StructureShape.new(name: 'JsonMatchPattern')
135
140
  JsonMatchScope = Shapes::StringShape.new(name: 'JsonMatchScope')
@@ -216,6 +221,7 @@ module Aws::WAFV2
216
221
  ResourceArn = Shapes::StringShape.new(name: 'ResourceArn')
217
222
  ResourceArns = Shapes::ListShape.new(name: 'ResourceArns')
218
223
  ResourceType = Shapes::StringShape.new(name: 'ResourceType')
224
+ ResponseCode = Shapes::IntegerShape.new(name: 'ResponseCode')
219
225
  ResponseContent = Shapes::StringShape.new(name: 'ResponseContent')
220
226
  ResponseContentType = Shapes::StringShape.new(name: 'ResponseContentType')
221
227
  ResponseStatusCode = Shapes::IntegerShape.new(name: 'ResponseStatusCode')
@@ -238,6 +244,7 @@ module Aws::WAFV2
238
244
  SingleQueryArgument = Shapes::StructureShape.new(name: 'SingleQueryArgument')
239
245
  Size = Shapes::IntegerShape.new(name: 'Size')
240
246
  SizeConstraintStatement = Shapes::StructureShape.new(name: 'SizeConstraintStatement')
247
+ SolveTimestamp = Shapes::IntegerShape.new(name: 'SolveTimestamp')
241
248
  SqliMatchStatement = Shapes::StructureShape.new(name: 'SqliMatchStatement')
242
249
  Statement = Shapes::StructureShape.new(name: 'Statement')
243
250
  Statements = Shapes::ListShape.new(name: 'Statements')
@@ -255,6 +262,7 @@ module Aws::WAFV2
255
262
  TextTransformations = Shapes::ListShape.new(name: 'TextTransformations')
256
263
  TimeWindow = Shapes::StructureShape.new(name: 'TimeWindow')
257
264
  TimeWindowDay = Shapes::IntegerShape.new(name: 'TimeWindowDay')
265
+ TimeWindowSecond = Shapes::IntegerShape.new(name: 'TimeWindowSecond')
258
266
  Timestamp = Shapes::TimestampShape.new(name: 'Timestamp')
259
267
  URIString = Shapes::StringShape.new(name: 'URIString')
260
268
  UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
@@ -326,6 +334,17 @@ module Aws::WAFV2
326
334
  ByteMatchStatement.add_member(:positional_constraint, Shapes::ShapeRef.new(shape: PositionalConstraint, required: true, location_name: "PositionalConstraint"))
327
335
  ByteMatchStatement.struct_class = Types::ByteMatchStatement
328
336
 
337
+ CaptchaAction.add_member(:custom_request_handling, Shapes::ShapeRef.new(shape: CustomRequestHandling, location_name: "CustomRequestHandling"))
338
+ CaptchaAction.struct_class = Types::CaptchaAction
339
+
340
+ CaptchaConfig.add_member(:immunity_time_property, Shapes::ShapeRef.new(shape: ImmunityTimeProperty, location_name: "ImmunityTimeProperty"))
341
+ CaptchaConfig.struct_class = Types::CaptchaConfig
342
+
343
+ CaptchaResponse.add_member(:response_code, Shapes::ShapeRef.new(shape: ResponseCode, location_name: "ResponseCode"))
344
+ CaptchaResponse.add_member(:solve_timestamp, Shapes::ShapeRef.new(shape: SolveTimestamp, location_name: "SolveTimestamp"))
345
+ CaptchaResponse.add_member(:failure_reason, Shapes::ShapeRef.new(shape: FailureReason, location_name: "FailureReason"))
346
+ CaptchaResponse.struct_class = Types::CaptchaResponse
347
+
329
348
  CheckCapacityRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
330
349
  CheckCapacityRequest.add_member(:rules, Shapes::ShapeRef.new(shape: Rules, required: true, location_name: "Rules"))
331
350
  CheckCapacityRequest.struct_class = Types::CheckCapacityRequest
@@ -386,6 +405,7 @@ module Aws::WAFV2
386
405
  CreateWebACLRequest.add_member(:visibility_config, Shapes::ShapeRef.new(shape: VisibilityConfig, required: true, location_name: "VisibilityConfig"))
387
406
  CreateWebACLRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
388
407
  CreateWebACLRequest.add_member(:custom_response_bodies, Shapes::ShapeRef.new(shape: CustomResponseBodies, location_name: "CustomResponseBodies"))
408
+ CreateWebACLRequest.add_member(:captcha_config, Shapes::ShapeRef.new(shape: CaptchaConfig, location_name: "CaptchaConfig"))
389
409
  CreateWebACLRequest.struct_class = Types::CreateWebACLRequest
390
410
 
391
411
  CreateWebACLResponse.add_member(:summary, Shapes::ShapeRef.new(shape: WebACLSummary, location_name: "Summary"))
@@ -657,6 +677,9 @@ module Aws::WAFV2
657
677
  IPSetSummary.add_member(:arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ARN"))
658
678
  IPSetSummary.struct_class = Types::IPSetSummary
659
679
 
680
+ ImmunityTimeProperty.add_member(:immunity_time, Shapes::ShapeRef.new(shape: TimeWindowSecond, required: true, location_name: "ImmunityTime"))
681
+ ImmunityTimeProperty.struct_class = Types::ImmunityTimeProperty
682
+
660
683
  JsonBody.add_member(:match_pattern, Shapes::ShapeRef.new(shape: JsonMatchPattern, required: true, location_name: "MatchPattern"))
661
684
  JsonBody.add_member(:match_scope, Shapes::ShapeRef.new(shape: JsonMatchScope, required: true, location_name: "MatchScope"))
662
685
  JsonBody.add_member(:invalid_fallback_behavior, Shapes::ShapeRef.new(shape: BodyParsingFallbackBehavior, location_name: "InvalidFallbackBehavior"))
@@ -714,7 +737,7 @@ module Aws::WAFV2
714
737
  ListIPSetsResponse.add_member(:ip_sets, Shapes::ShapeRef.new(shape: IPSetSummaries, location_name: "IPSets"))
715
738
  ListIPSetsResponse.struct_class = Types::ListIPSetsResponse
716
739
 
717
- ListLoggingConfigurationsRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, location_name: "Scope"))
740
+ ListLoggingConfigurationsRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
718
741
  ListLoggingConfigurationsRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
719
742
  ListLoggingConfigurationsRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
720
743
  ListLoggingConfigurationsRequest.struct_class = Types::ListLoggingConfigurationsRequest
@@ -931,11 +954,13 @@ module Aws::WAFV2
931
954
  Rule.add_member(:override_action, Shapes::ShapeRef.new(shape: OverrideAction, location_name: "OverrideAction"))
932
955
  Rule.add_member(:rule_labels, Shapes::ShapeRef.new(shape: Labels, location_name: "RuleLabels"))
933
956
  Rule.add_member(:visibility_config, Shapes::ShapeRef.new(shape: VisibilityConfig, required: true, location_name: "VisibilityConfig"))
957
+ Rule.add_member(:captcha_config, Shapes::ShapeRef.new(shape: CaptchaConfig, location_name: "CaptchaConfig"))
934
958
  Rule.struct_class = Types::Rule
935
959
 
936
960
  RuleAction.add_member(:block, Shapes::ShapeRef.new(shape: BlockAction, location_name: "Block"))
937
961
  RuleAction.add_member(:allow, Shapes::ShapeRef.new(shape: AllowAction, location_name: "Allow"))
938
962
  RuleAction.add_member(:count, Shapes::ShapeRef.new(shape: CountAction, location_name: "Count"))
963
+ RuleAction.add_member(:captcha, Shapes::ShapeRef.new(shape: CaptchaAction, location_name: "Captcha"))
939
964
  RuleAction.struct_class = Types::RuleAction
940
965
 
941
966
  RuleGroup.add_member(:name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "Name"))
@@ -980,6 +1005,7 @@ module Aws::WAFV2
980
1005
  SampledHTTPRequest.add_member(:request_headers_inserted, Shapes::ShapeRef.new(shape: HTTPHeaders, location_name: "RequestHeadersInserted"))
981
1006
  SampledHTTPRequest.add_member(:response_code_sent, Shapes::ShapeRef.new(shape: ResponseStatusCode, location_name: "ResponseCodeSent"))
982
1007
  SampledHTTPRequest.add_member(:labels, Shapes::ShapeRef.new(shape: Labels, location_name: "Labels"))
1008
+ SampledHTTPRequest.add_member(:captcha_response, Shapes::ShapeRef.new(shape: CaptchaResponse, location_name: "CaptchaResponse"))
983
1009
  SampledHTTPRequest.struct_class = Types::SampledHTTPRequest
984
1010
 
985
1011
  SampledHTTPRequests.member = Shapes::ShapeRef.new(shape: SampledHTTPRequest)
@@ -1110,6 +1136,7 @@ module Aws::WAFV2
1110
1136
  UpdateWebACLRequest.add_member(:visibility_config, Shapes::ShapeRef.new(shape: VisibilityConfig, required: true, location_name: "VisibilityConfig"))
1111
1137
  UpdateWebACLRequest.add_member(:lock_token, Shapes::ShapeRef.new(shape: LockToken, required: true, location_name: "LockToken"))
1112
1138
  UpdateWebACLRequest.add_member(:custom_response_bodies, Shapes::ShapeRef.new(shape: CustomResponseBodies, location_name: "CustomResponseBodies"))
1139
+ UpdateWebACLRequest.add_member(:captcha_config, Shapes::ShapeRef.new(shape: CaptchaConfig, location_name: "CaptchaConfig"))
1113
1140
  UpdateWebACLRequest.struct_class = Types::UpdateWebACLRequest
1114
1141
 
1115
1142
  UpdateWebACLResponse.add_member(:next_lock_token, Shapes::ShapeRef.new(shape: LockToken, location_name: "NextLockToken"))
@@ -1193,6 +1220,7 @@ module Aws::WAFV2
1193
1220
  WebACL.add_member(:managed_by_firewall_manager, Shapes::ShapeRef.new(shape: Boolean, location_name: "ManagedByFirewallManager"))
1194
1221
  WebACL.add_member(:label_namespace, Shapes::ShapeRef.new(shape: LabelName, location_name: "LabelNamespace"))
1195
1222
  WebACL.add_member(:custom_response_bodies, Shapes::ShapeRef.new(shape: CustomResponseBodies, location_name: "CustomResponseBodies"))
1223
+ WebACL.add_member(:captcha_config, Shapes::ShapeRef.new(shape: CaptchaConfig, location_name: "CaptchaConfig"))
1196
1224
  WebACL.struct_class = Types::WebACL
1197
1225
 
1198
1226
  WebACLSummaries.member = Shapes::ShapeRef.new(shape: WebACLSummary)
@@ -16,7 +16,7 @@ module Aws::WAFV2
16
16
  # data as a hash:
17
17
  #
18
18
  # {
19
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT
19
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
20
20
  # }
21
21
  #
22
22
  # @!attribute [rw] action
@@ -660,6 +660,125 @@ module Aws::WAFV2
660
660
  include Aws::Structure
661
661
  end
662
662
 
663
+ # Specifies that WAF should run a `CAPTCHA` check against the request:
664
+ #
665
+ # * If the request includes a valid, unexpired `CAPTCHA` token, WAF
666
+ # allows the web request inspection to proceed to the next rule,
667
+ # similar to a `CountAction`.
668
+ #
669
+ # * If the request doesn't include a valid, unexpired `CAPTCHA` token,
670
+ # WAF discontinues the web ACL evaluation of the request and blocks it
671
+ # from going to its intended destination.
672
+ #
673
+ # WAF generates a response that it sends back to the client, which
674
+ # includes the following:
675
+ #
676
+ # * The header `x-amzn-waf-action` with a value of `captcha`.
677
+ #
678
+ # * The HTTP status code `405 Method Not Allowed`.
679
+ #
680
+ # * If the request contains an `Accept` header with a value of
681
+ # `text/html`, the response includes a `CAPTCHA` challenge.
682
+ #
683
+ # You can configure the expiration time in the `CaptchaConfig`
684
+ # `ImmunityTimeProperty` setting at the rule and web ACL level. The rule
685
+ # setting overrides the web ACL setting.
686
+ #
687
+ # This action option is available for rules. It isn't available for web
688
+ # ACL default actions.
689
+ #
690
+ # This is used in the context of other settings, for example to specify
691
+ # values for RuleAction and web ACL DefaultAction.
692
+ #
693
+ # @note When making an API call, you may pass CaptchaAction
694
+ # data as a hash:
695
+ #
696
+ # {
697
+ # custom_request_handling: {
698
+ # insert_headers: [ # required
699
+ # {
700
+ # name: "CustomHTTPHeaderName", # required
701
+ # value: "CustomHTTPHeaderValue", # required
702
+ # },
703
+ # ],
704
+ # },
705
+ # }
706
+ #
707
+ # @!attribute [rw] custom_request_handling
708
+ # Defines custom handling for the web request.
709
+ #
710
+ # For information about customizing web requests and responses, see
711
+ # [Customizing web requests and responses in WAF][1] in the [WAF
712
+ # Developer Guide][2].
713
+ #
714
+ #
715
+ #
716
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
717
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
718
+ # @return [Types::CustomRequestHandling]
719
+ #
720
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CaptchaAction AWS API Documentation
721
+ #
722
+ class CaptchaAction < Struct.new(
723
+ :custom_request_handling)
724
+ SENSITIVE = []
725
+ include Aws::Structure
726
+ end
727
+
728
+ # Specifies how WAF should handle `CAPTCHA` evaluations. This is
729
+ # available at the web ACL level and in each rule.
730
+ #
731
+ # @note When making an API call, you may pass CaptchaConfig
732
+ # data as a hash:
733
+ #
734
+ # {
735
+ # immunity_time_property: {
736
+ # immunity_time: 1, # required
737
+ # },
738
+ # }
739
+ #
740
+ # @!attribute [rw] immunity_time_property
741
+ # Determines how long a `CAPTCHA` token remains valid after the client
742
+ # successfully solves a `CAPTCHA` puzzle.
743
+ # @return [Types::ImmunityTimeProperty]
744
+ #
745
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CaptchaConfig AWS API Documentation
746
+ #
747
+ class CaptchaConfig < Struct.new(
748
+ :immunity_time_property)
749
+ SENSITIVE = []
750
+ include Aws::Structure
751
+ end
752
+
753
+ # The result from the inspection of the web request for a valid
754
+ # `CAPTCHA` token.
755
+ #
756
+ # @!attribute [rw] response_code
757
+ # The HTTP response code indicating the status of the `CAPTCHA` token
758
+ # in the web request. If the token is missing, invalid, or expired,
759
+ # this code is `405 Method Not Allowed`.
760
+ # @return [Integer]
761
+ #
762
+ # @!attribute [rw] solve_timestamp
763
+ # The time that the `CAPTCHA` puzzle was solved for the supplied
764
+ # token.
765
+ # @return [Integer]
766
+ #
767
+ # @!attribute [rw] failure_reason
768
+ # The reason for failure, populated when the evaluation of the token
769
+ # fails.
770
+ # @return [String]
771
+ #
772
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CaptchaResponse AWS API Documentation
773
+ #
774
+ class CaptchaResponse < Struct.new(
775
+ :response_code,
776
+ :solve_timestamp,
777
+ :failure_reason)
778
+ SENSITIVE = []
779
+ include Aws::Structure
780
+ end
781
+
663
782
  # @note When making an API call, you may pass CheckCapacityRequest
664
783
  # data as a hash:
665
784
  #
@@ -990,6 +1109,16 @@ module Aws::WAFV2
990
1109
  # ],
991
1110
  # },
992
1111
  # },
1112
+ # captcha: {
1113
+ # custom_request_handling: {
1114
+ # insert_headers: [ # required
1115
+ # {
1116
+ # name: "CustomHTTPHeaderName", # required
1117
+ # value: "CustomHTTPHeaderValue", # required
1118
+ # },
1119
+ # ],
1120
+ # },
1121
+ # },
993
1122
  # },
994
1123
  # override_action: {
995
1124
  # count: {
@@ -1015,6 +1144,11 @@ module Aws::WAFV2
1015
1144
  # cloud_watch_metrics_enabled: false, # required
1016
1145
  # metric_name: "MetricName", # required
1017
1146
  # },
1147
+ # captcha_config: {
1148
+ # immunity_time_property: {
1149
+ # immunity_time: 1, # required
1150
+ # },
1151
+ # },
1018
1152
  # },
1019
1153
  # ],
1020
1154
  # }
@@ -1067,7 +1201,7 @@ module Aws::WAFV2
1067
1201
  #
1068
1202
  # {
1069
1203
  # action_condition: {
1070
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT
1204
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
1071
1205
  # },
1072
1206
  # label_name_condition: {
1073
1207
  # label_name: "LabelName", # required
@@ -1656,6 +1790,16 @@ module Aws::WAFV2
1656
1790
  # ],
1657
1791
  # },
1658
1792
  # },
1793
+ # captcha: {
1794
+ # custom_request_handling: {
1795
+ # insert_headers: [ # required
1796
+ # {
1797
+ # name: "CustomHTTPHeaderName", # required
1798
+ # value: "CustomHTTPHeaderValue", # required
1799
+ # },
1800
+ # ],
1801
+ # },
1802
+ # },
1659
1803
  # },
1660
1804
  # override_action: {
1661
1805
  # count: {
@@ -1681,6 +1825,11 @@ module Aws::WAFV2
1681
1825
  # cloud_watch_metrics_enabled: false, # required
1682
1826
  # metric_name: "MetricName", # required
1683
1827
  # },
1828
+ # captcha_config: {
1829
+ # immunity_time_property: {
1830
+ # immunity_time: 1, # required
1831
+ # },
1832
+ # },
1684
1833
  # },
1685
1834
  # ],
1686
1835
  # visibility_config: { # required
@@ -2168,6 +2317,16 @@ module Aws::WAFV2
2168
2317
  # ],
2169
2318
  # },
2170
2319
  # },
2320
+ # captcha: {
2321
+ # custom_request_handling: {
2322
+ # insert_headers: [ # required
2323
+ # {
2324
+ # name: "CustomHTTPHeaderName", # required
2325
+ # value: "CustomHTTPHeaderValue", # required
2326
+ # },
2327
+ # ],
2328
+ # },
2329
+ # },
2171
2330
  # },
2172
2331
  # override_action: {
2173
2332
  # count: {
@@ -2193,6 +2352,11 @@ module Aws::WAFV2
2193
2352
  # cloud_watch_metrics_enabled: false, # required
2194
2353
  # metric_name: "MetricName", # required
2195
2354
  # },
2355
+ # captcha_config: {
2356
+ # immunity_time_property: {
2357
+ # immunity_time: 1, # required
2358
+ # },
2359
+ # },
2196
2360
  # },
2197
2361
  # ],
2198
2362
  # visibility_config: { # required
@@ -2212,6 +2376,11 @@ module Aws::WAFV2
2212
2376
  # content: "ResponseContent", # required
2213
2377
  # },
2214
2378
  # },
2379
+ # captcha_config: {
2380
+ # immunity_time_property: {
2381
+ # immunity_time: 1, # required
2382
+ # },
2383
+ # },
2215
2384
  # }
2216
2385
  #
2217
2386
  # @!attribute [rw] name
@@ -2280,6 +2449,12 @@ module Aws::WAFV2
2280
2449
  # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
2281
2450
  # @return [Hash<String,Types::CustomResponseBody>]
2282
2451
  #
2452
+ # @!attribute [rw] captcha_config
2453
+ # Specifies how WAF should handle `CAPTCHA` evaluations for rules that
2454
+ # don't have their own `CaptchaConfig` settings. If you don't
2455
+ # specify this, WAF uses its default settings for `CaptchaConfig`.
2456
+ # @return [Types::CaptchaConfig]
2457
+ #
2283
2458
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateWebACLRequest AWS API Documentation
2284
2459
  #
2285
2460
  class CreateWebACLRequest < Struct.new(
@@ -2290,7 +2465,8 @@ module Aws::WAFV2
2290
2465
  :rules,
2291
2466
  :visibility_config,
2292
2467
  :tags,
2293
- :custom_response_bodies)
2468
+ :custom_response_bodies,
2469
+ :captcha_config)
2294
2470
  SENSITIVE = []
2295
2471
  include Aws::Structure
2296
2472
  end
@@ -3073,10 +3249,11 @@ module Aws::WAFV2
3073
3249
  #
3074
3250
  class DisassociateWebACLResponse < Aws::EmptyStructure; end
3075
3251
 
3076
- # Specifies a single rule to exclude from the rule group. Excluding a
3077
- # rule overrides its action setting for the rule group in the web ACL,
3078
- # setting it to `COUNT`. This effectively excludes the rule from acting
3079
- # on web requests.
3252
+ # Specifies a single rule in a rule group whose action you want to
3253
+ # override to `Count`. When you exclude a rule, WAF evaluates it exactly
3254
+ # as it would if the rule action setting were `Count`. This is a useful
3255
+ # option for testing the rules in a rule group without modifying how
3256
+ # they handle your web traffic.
3080
3257
  #
3081
3258
  # @note When making an API call, you may pass ExcludedRule
3082
3259
  # data as a hash:
@@ -3086,7 +3263,7 @@ module Aws::WAFV2
3086
3263
  # }
3087
3264
  #
3088
3265
  # @!attribute [rw] name
3089
- # The name of the rule to exclude.
3266
+ # The name of the rule whose action you want to override to `Count`.
3090
3267
  # @return [String]
3091
3268
  #
3092
3269
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ExcludedRule AWS API Documentation
@@ -3241,7 +3418,7 @@ module Aws::WAFV2
3241
3418
  # conditions: [ # required
3242
3419
  # {
3243
3420
  # action_condition: {
3244
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT
3421
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
3245
3422
  # },
3246
3423
  # label_name_condition: {
3247
3424
  # label_name: "LabelName", # required
@@ -3297,22 +3474,21 @@ module Aws::WAFV2
3297
3474
  # @return [Types::FirewallManagerStatement]
3298
3475
  #
3299
3476
  # @!attribute [rw] override_action
3300
- # The override action to apply to the rules in a rule group. Used only
3301
- # for rule statements that reference a rule group, like
3302
- # `RuleGroupReferenceStatement` and `ManagedRuleGroupStatement`.
3303
- #
3304
- # Set the override action to none to leave the rule actions in effect.
3305
- # Set it to count to only count matches, regardless of the rule action
3306
- # settings.
3477
+ # The action to use in the place of the action that results from the
3478
+ # rule group evaluation. Set the override action to none to leave the
3479
+ # result of the rule group alone. Set it to count to override the
3480
+ # result to count only.
3307
3481
  #
3308
- # In a Rule, you must specify either this `OverrideAction` setting or
3309
- # the rule `Action` setting, but not both:
3482
+ # You can only use this for rule statements that reference a rule
3483
+ # group, like `RuleGroupReferenceStatement` and
3484
+ # `ManagedRuleGroupStatement`.
3310
3485
  #
3311
- # * If the rule statement references a rule group, use this override
3312
- # action setting and not the action setting.
3486
+ # <note markdown="1"> This option is usually set to none. It does not affect how the rules
3487
+ # in the rule group are evaluated. If you want the rules in the rule
3488
+ # group to only count matches, do not use this and instead exclude
3489
+ # those rules in your rule group reference statement settings.
3313
3490
  #
3314
- # * If the rule statement does not reference a rule group, use the
3315
- # rule action setting and not this rule override action setting.
3491
+ # </note>
3316
3492
  # @return [Types::OverrideAction]
3317
3493
  #
3318
3494
  # @!attribute [rw] visibility_config
@@ -4443,6 +4619,29 @@ module Aws::WAFV2
4443
4619
  include Aws::Structure
4444
4620
  end
4445
4621
 
4622
+ # Determines how long a `CAPTCHA` token remains valid after the client
4623
+ # successfully solves a `CAPTCHA` puzzle.
4624
+ #
4625
+ # @note When making an API call, you may pass ImmunityTimeProperty
4626
+ # data as a hash:
4627
+ #
4628
+ # {
4629
+ # immunity_time: 1, # required
4630
+ # }
4631
+ #
4632
+ # @!attribute [rw] immunity_time
4633
+ # The amount of time, in seconds, that a `CAPTCHA` token is valid. The
4634
+ # default setting is 300.
4635
+ # @return [Integer]
4636
+ #
4637
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ImmunityTimeProperty AWS API Documentation
4638
+ #
4639
+ class ImmunityTimeProperty < Struct.new(
4640
+ :immunity_time)
4641
+ SENSITIVE = []
4642
+ include Aws::Structure
4643
+ end
4644
+
4446
4645
  # The body of a web request, inspected as JSON. The body immediately
4447
4646
  # follows the request headers. This is used in the FieldToMatch
4448
4647
  # specification.
@@ -4923,7 +5122,7 @@ module Aws::WAFV2
4923
5122
  # data as a hash:
4924
5123
  #
4925
5124
  # {
4926
- # scope: "CLOUDFRONT", # accepts CLOUDFRONT, REGIONAL
5125
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
4927
5126
  # next_marker: "NextMarker",
4928
5127
  # limit: 1,
4929
5128
  # }
@@ -5414,7 +5613,7 @@ module Aws::WAFV2
5414
5613
  # conditions: [ # required
5415
5614
  # {
5416
5615
  # action_condition: {
5417
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT
5616
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
5418
5617
  # },
5419
5618
  # label_name_condition: {
5420
5619
  # label_name: "LabelName", # required
@@ -5490,7 +5689,7 @@ module Aws::WAFV2
5490
5689
  # conditions: [ # required
5491
5690
  # {
5492
5691
  # action_condition: {
5493
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT
5692
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
5494
5693
  # },
5495
5694
  # label_name_condition: {
5496
5695
  # label_name: "LabelName", # required
@@ -5850,9 +6049,11 @@ module Aws::WAFV2
5850
6049
  # @return [String]
5851
6050
  #
5852
6051
  # @!attribute [rw] excluded_rules
5853
- # The rules whose actions are set to `COUNT` by the web ACL,
5854
- # regardless of the action that is set on the rule. This effectively
5855
- # excludes the rule from acting on web requests.
6052
+ # The rules in the referenced rule group whose actions are set to
6053
+ # `Count`. When you exclude a rule, WAF evaluates it exactly as it
6054
+ # would if the rule action setting were `Count`. This is a useful
6055
+ # option for testing the rules in a rule group without modifying how
6056
+ # they handle your web traffic.
5856
6057
  # @return [Array<Types::ExcludedRule>]
5857
6058
  #
5858
6059
  # @!attribute [rw] scope_down_statement
@@ -6174,9 +6375,9 @@ module Aws::WAFV2
6174
6375
  #
6175
6376
  class Method < Aws::EmptyStructure; end
6176
6377
 
6177
- # Specifies that WAF should do nothing. This is generally used to try
6178
- # out a rule without performing any actions. You set the
6179
- # `OverrideAction` on the Rule.
6378
+ # Specifies that WAF should do nothing. This is used for the
6379
+ # `OverrideAction` setting on a Rule when the rule uses a rule group
6380
+ # reference statement.
6180
6381
  #
6181
6382
  # This is used in the context of other settings, for example to specify
6182
6383
  # values for RuleAction and web ACL DefaultAction.
@@ -6807,22 +7008,20 @@ module Aws::WAFV2
6807
7008
  include Aws::Structure
6808
7009
  end
6809
7010
 
6810
- # The override action to apply to the rules in a rule group. Used only
6811
- # for rule statements that reference a rule group, like
6812
- # `RuleGroupReferenceStatement` and `ManagedRuleGroupStatement`.
6813
- #
6814
- # Set the override action to none to leave the rule actions in effect.
6815
- # Set it to count to only count matches, regardless of the rule action
6816
- # settings.
7011
+ # The action to use in the place of the action that results from the
7012
+ # rule group evaluation. Set the override action to none to leave the
7013
+ # result of the rule group alone. Set it to count to override the result
7014
+ # to count only.
6817
7015
  #
6818
- # In a Rule, you must specify either this `OverrideAction` setting or
6819
- # the rule `Action` setting, but not both:
7016
+ # You can only use this for rule statements that reference a rule group,
7017
+ # like `RuleGroupReferenceStatement` and `ManagedRuleGroupStatement`.
6820
7018
  #
6821
- # * If the rule statement references a rule group, use this override
6822
- # action setting and not the action setting.
7019
+ # <note markdown="1"> This option is usually set to none. It does not affect how the rules
7020
+ # in the rule group are evaluated. If you want the rules in the rule
7021
+ # group to only count matches, do not use this and instead exclude those
7022
+ # rules in your rule group reference statement settings.
6823
7023
  #
6824
- # * If the rule statement does not reference a rule group, use the rule
6825
- # action setting and not this rule override action setting.
7024
+ # </note>
6826
7025
  #
6827
7026
  # @note When making an API call, you may pass OverrideAction
6828
7027
  # data as a hash:
@@ -6843,11 +7042,19 @@ module Aws::WAFV2
6843
7042
  # }
6844
7043
  #
6845
7044
  # @!attribute [rw] count
6846
- # Override the rule action setting to count.
7045
+ # Override the rule group evaluation result to count only.
7046
+ #
7047
+ # <note markdown="1"> This option is usually set to none. It does not affect how the rules
7048
+ # in the rule group are evaluated. If you want the rules in the rule
7049
+ # group to only count matches, do not use this and instead exclude
7050
+ # those rules in your rule group reference statement settings.
7051
+ #
7052
+ # </note>
6847
7053
  # @return [Types::CountAction]
6848
7054
  #
6849
7055
  # @!attribute [rw] none
6850
- # Don't override the rule action setting.
7056
+ # Don't override the rule group evaluation result. This is the most
7057
+ # common setting.
6851
7058
  # @return [Types::NoneAction]
6852
7059
  #
6853
7060
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/OverrideAction AWS API Documentation
@@ -6904,7 +7111,7 @@ module Aws::WAFV2
6904
7111
  # conditions: [ # required
6905
7112
  # {
6906
7113
  # action_condition: {
6907
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT
7114
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
6908
7115
  # },
6909
7116
  # label_name_condition: {
6910
7117
  # label_name: "LabelName", # required
@@ -8116,6 +8323,16 @@ module Aws::WAFV2
8116
8323
  # ],
8117
8324
  # },
8118
8325
  # },
8326
+ # captcha: {
8327
+ # custom_request_handling: {
8328
+ # insert_headers: [ # required
8329
+ # {
8330
+ # name: "CustomHTTPHeaderName", # required
8331
+ # value: "CustomHTTPHeaderValue", # required
8332
+ # },
8333
+ # ],
8334
+ # },
8335
+ # },
8119
8336
  # },
8120
8337
  # override_action: {
8121
8338
  # count: {
@@ -8141,6 +8358,11 @@ module Aws::WAFV2
8141
8358
  # cloud_watch_metrics_enabled: false, # required
8142
8359
  # metric_name: "MetricName", # required
8143
8360
  # },
8361
+ # captcha_config: {
8362
+ # immunity_time_property: {
8363
+ # immunity_time: 1, # required
8364
+ # },
8365
+ # },
8144
8366
  # }
8145
8367
  #
8146
8368
  # @!attribute [rw] name
@@ -8181,22 +8403,21 @@ module Aws::WAFV2
8181
8403
  # @return [Types::RuleAction]
8182
8404
  #
8183
8405
  # @!attribute [rw] override_action
8184
- # The override action to apply to the rules in a rule group. Used only
8185
- # for rule statements that reference a rule group, like
8186
- # `RuleGroupReferenceStatement` and `ManagedRuleGroupStatement`.
8406
+ # The action to use in the place of the action that results from the
8407
+ # rule group evaluation. Set the override action to none to leave the
8408
+ # result of the rule group alone. Set it to count to override the
8409
+ # result to count only.
8187
8410
  #
8188
- # Set the override action to none to leave the rule actions in effect.
8189
- # Set it to count to only count matches, regardless of the rule action
8190
- # settings.
8411
+ # You can only use this for rule statements that reference a rule
8412
+ # group, like `RuleGroupReferenceStatement` and
8413
+ # `ManagedRuleGroupStatement`.
8191
8414
  #
8192
- # In a Rule, you must specify either this `OverrideAction` setting or
8193
- # the rule `Action` setting, but not both:
8415
+ # <note markdown="1"> This option is usually set to none. It does not affect how the rules
8416
+ # in the rule group are evaluated. If you want the rules in the rule
8417
+ # group to only count matches, do not use this and instead exclude
8418
+ # those rules in your rule group reference statement settings.
8194
8419
  #
8195
- # * If the rule statement references a rule group, use this override
8196
- # action setting and not the action setting.
8197
- #
8198
- # * If the rule statement does not reference a rule group, use the
8199
- # rule action setting and not this rule override action setting.
8420
+ # </note>
8200
8421
  # @return [Types::OverrideAction]
8201
8422
  #
8202
8423
  # @!attribute [rw] rule_labels
@@ -8230,6 +8451,12 @@ module Aws::WAFV2
8230
8451
  # collection.
8231
8452
  # @return [Types::VisibilityConfig]
8232
8453
  #
8454
+ # @!attribute [rw] captcha_config
8455
+ # Specifies how WAF should handle `CAPTCHA` evaluations. If you don't
8456
+ # specify this, WAF uses the `CAPTCHA` configuration that's defined
8457
+ # for the web ACL.
8458
+ # @return [Types::CaptchaConfig]
8459
+ #
8233
8460
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/Rule AWS API Documentation
8234
8461
  #
8235
8462
  class Rule < Struct.new(
@@ -8239,7 +8466,8 @@ module Aws::WAFV2
8239
8466
  :action,
8240
8467
  :override_action,
8241
8468
  :rule_labels,
8242
- :visibility_config)
8469
+ :visibility_config,
8470
+ :captcha_config)
8243
8471
  SENSITIVE = []
8244
8472
  include Aws::Structure
8245
8473
  end
@@ -8284,6 +8512,16 @@ module Aws::WAFV2
8284
8512
  # ],
8285
8513
  # },
8286
8514
  # },
8515
+ # captcha: {
8516
+ # custom_request_handling: {
8517
+ # insert_headers: [ # required
8518
+ # {
8519
+ # name: "CustomHTTPHeaderName", # required
8520
+ # value: "CustomHTTPHeaderValue", # required
8521
+ # },
8522
+ # ],
8523
+ # },
8524
+ # },
8287
8525
  # }
8288
8526
  #
8289
8527
  # @!attribute [rw] block
@@ -8298,12 +8536,17 @@ module Aws::WAFV2
8298
8536
  # Instructs WAF to count the web request and allow it.
8299
8537
  # @return [Types::CountAction]
8300
8538
  #
8539
+ # @!attribute [rw] captcha
8540
+ # Instructs WAF to run a `CAPTCHA` check against the web request.
8541
+ # @return [Types::CaptchaAction]
8542
+ #
8301
8543
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/RuleAction AWS API Documentation
8302
8544
  #
8303
8545
  class RuleAction < Struct.new(
8304
8546
  :block,
8305
8547
  :allow,
8306
- :count)
8548
+ :count,
8549
+ :captcha)
8307
8550
  SENSITIVE = []
8308
8551
  include Aws::Structure
8309
8552
  end
@@ -8457,8 +8700,11 @@ module Aws::WAFV2
8457
8700
  # @return [String]
8458
8701
  #
8459
8702
  # @!attribute [rw] excluded_rules
8460
- # The names of rules that are in the referenced rule group, but that
8461
- # you want WAF to exclude from processing for this rule statement.
8703
+ # The rules in the referenced rule group whose actions are set to
8704
+ # `Count`. When you exclude a rule, WAF evaluates it exactly as it
8705
+ # would if the rule action setting were `Count`. This is a useful
8706
+ # option for testing the rules in a rule group without modifying how
8707
+ # they handle your web traffic.
8462
8708
  # @return [Array<Types::ExcludedRule>]
8463
8709
  #
8464
8710
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/RuleGroupReferenceStatement AWS API Documentation
@@ -8567,8 +8813,8 @@ module Aws::WAFV2
8567
8813
  # @return [Time]
8568
8814
  #
8569
8815
  # @!attribute [rw] action
8570
- # The action for the `Rule` that the request matched: `ALLOW`,
8571
- # `BLOCK`, or `COUNT`.
8816
+ # The action for the `Rule` that the request matched: `Allow`,
8817
+ # `Block`, or `Count`.
8572
8818
  # @return [String]
8573
8819
  #
8574
8820
  # @!attribute [rw] rule_name_within_rule_group
@@ -8599,6 +8845,10 @@ module Aws::WAFV2
8599
8845
  # or `awswaf:managed:aws:managed-rule-set:header:encoding:utf8`.
8600
8846
  # @return [Array<Types::Label>]
8601
8847
  #
8848
+ # @!attribute [rw] captcha_response
8849
+ # The `CAPTCHA` response for the request.
8850
+ # @return [Types::CaptchaResponse]
8851
+ #
8602
8852
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/SampledHTTPRequest AWS API Documentation
8603
8853
  #
8604
8854
  class SampledHTTPRequest < Struct.new(
@@ -8609,7 +8859,8 @@ module Aws::WAFV2
8609
8859
  :rule_name_within_rule_group,
8610
8860
  :request_headers_inserted,
8611
8861
  :response_code_sent,
8612
- :labels)
8862
+ :labels,
8863
+ :captcha_response)
8613
8864
  SENSITIVE = []
8614
8865
  include Aws::Structure
8615
8866
  end
@@ -11711,6 +11962,16 @@ module Aws::WAFV2
11711
11962
  # ],
11712
11963
  # },
11713
11964
  # },
11965
+ # captcha: {
11966
+ # custom_request_handling: {
11967
+ # insert_headers: [ # required
11968
+ # {
11969
+ # name: "CustomHTTPHeaderName", # required
11970
+ # value: "CustomHTTPHeaderValue", # required
11971
+ # },
11972
+ # ],
11973
+ # },
11974
+ # },
11714
11975
  # },
11715
11976
  # override_action: {
11716
11977
  # count: {
@@ -11736,6 +11997,11 @@ module Aws::WAFV2
11736
11997
  # cloud_watch_metrics_enabled: false, # required
11737
11998
  # metric_name: "MetricName", # required
11738
11999
  # },
12000
+ # captcha_config: {
12001
+ # immunity_time_property: {
12002
+ # immunity_time: 1, # required
12003
+ # },
12004
+ # },
11739
12005
  # },
11740
12006
  # ],
11741
12007
  # visibility_config: { # required
@@ -12213,6 +12479,16 @@ module Aws::WAFV2
12213
12479
  # ],
12214
12480
  # },
12215
12481
  # },
12482
+ # captcha: {
12483
+ # custom_request_handling: {
12484
+ # insert_headers: [ # required
12485
+ # {
12486
+ # name: "CustomHTTPHeaderName", # required
12487
+ # value: "CustomHTTPHeaderValue", # required
12488
+ # },
12489
+ # ],
12490
+ # },
12491
+ # },
12216
12492
  # },
12217
12493
  # override_action: {
12218
12494
  # count: {
@@ -12238,6 +12514,11 @@ module Aws::WAFV2
12238
12514
  # cloud_watch_metrics_enabled: false, # required
12239
12515
  # metric_name: "MetricName", # required
12240
12516
  # },
12517
+ # captcha_config: {
12518
+ # immunity_time_property: {
12519
+ # immunity_time: 1, # required
12520
+ # },
12521
+ # },
12241
12522
  # },
12242
12523
  # ],
12243
12524
  # visibility_config: { # required
@@ -12252,6 +12533,11 @@ module Aws::WAFV2
12252
12533
  # content: "ResponseContent", # required
12253
12534
  # },
12254
12535
  # },
12536
+ # captcha_config: {
12537
+ # immunity_time_property: {
12538
+ # immunity_time: 1, # required
12539
+ # },
12540
+ # },
12255
12541
  # }
12256
12542
  #
12257
12543
  # @!attribute [rw] name
@@ -12334,6 +12620,12 @@ module Aws::WAFV2
12334
12620
  # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
12335
12621
  # @return [Hash<String,Types::CustomResponseBody>]
12336
12622
  #
12623
+ # @!attribute [rw] captcha_config
12624
+ # Specifies how WAF should handle `CAPTCHA` evaluations for rules that
12625
+ # don't have their own `CaptchaConfig` settings. If you don't
12626
+ # specify this, WAF uses its default settings for `CaptchaConfig`.
12627
+ # @return [Types::CaptchaConfig]
12628
+ #
12337
12629
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateWebACLRequest AWS API Documentation
12338
12630
  #
12339
12631
  class UpdateWebACLRequest < Struct.new(
@@ -12345,7 +12637,8 @@ module Aws::WAFV2
12345
12637
  :rules,
12346
12638
  :visibility_config,
12347
12639
  :lock_token,
12348
- :custom_response_bodies)
12640
+ :custom_response_bodies,
12641
+ :captcha_config)
12349
12642
  SENSITIVE = []
12350
12643
  include Aws::Structure
12351
12644
  end
@@ -12885,6 +13178,12 @@ module Aws::WAFV2
12885
13178
  # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
12886
13179
  # @return [Hash<String,Types::CustomResponseBody>]
12887
13180
  #
13181
+ # @!attribute [rw] captcha_config
13182
+ # Specifies how WAF should handle `CAPTCHA` evaluations for rules that
13183
+ # don't have their own `CaptchaConfig` settings. If you don't
13184
+ # specify this, WAF uses its default settings for `CaptchaConfig`.
13185
+ # @return [Types::CaptchaConfig]
13186
+ #
12888
13187
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/WebACL AWS API Documentation
12889
13188
  #
12890
13189
  class WebACL < Struct.new(
@@ -12900,7 +13199,8 @@ module Aws::WAFV2
12900
13199
  :post_process_firewall_manager_rule_groups,
12901
13200
  :managed_by_firewall_manager,
12902
13201
  :label_namespace,
12903
- :custom_response_bodies)
13202
+ :custom_response_bodies,
13203
+ :captcha_config)
12904
13204
  SENSITIVE = []
12905
13205
  include Aws::Structure
12906
13206
  end
data/lib/aws-sdk-wafv2.rb CHANGED
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-wafv2/customizations'
48
48
  # @!group service
49
49
  module Aws::WAFV2
50
50
 
51
- GEM_VERSION = '1.29.0'
51
+ GEM_VERSION = '1.30.0'
52
52
 
53
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-wafv2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.29.0
4
+ version: 1.30.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-04 00:00:00.000000000 Z
11
+ date: 2021-11-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core