aws-sdk-wafv2 1.29.0 → 1.30.0

Sign up to get free protection for your applications and to get access to all the features.
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