aws-sdk-wafv2 1.29.0 → 1.33.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: 151aed138d0d2a8384ba59c4b9fd83499613b86a34aef21a23b7f7cd9f6d4c08
4
+ data.tar.gz: 39f3fe83088d576b53ef25e0e59a557d0b29e31c2c888a133188a4558fd7d240
5
5
  SHA512:
6
- metadata.gz: 6a78933de6304c54d06c1eba810136755f0a603f5ff95f9128881fcedd9795b4fa481754055993f9627471633a1e24bc32dbed796b5bdefde3ce546eb44c0a8d
7
- data.tar.gz: 7e1310c6d2d7968902fcb4522125c3ba94e8c5c30eb7d148393d08b46ff0fc60a2af975b4864ef59927c6bae032202821851fcae617aeda8b3089b25794d4b8b
6
+ metadata.gz: a2dafac48a89d8647a4b8b865a4fcc4b91a0746dd6af412088985c457bb008d35049ba28dc7d43b0475e5ebb74b90c28258983242fc929dcf63653619ae1cf0d
7
+ data.tar.gz: 19725e78d762ee6a0185bcfc78f72355cbea7344d8779fce9bcf48b131728416a0df4e4735ee888964e40410a378422dd3522d177b88f9ba117c3023c943b1f9
data/CHANGELOG.md CHANGED
@@ -1,6 +1,26 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.33.0 (2021-12-21)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ 1.32.0 (2021-11-30)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
14
+ 1.31.0 (2021-11-15)
15
+ ------------------
16
+
17
+ * Feature - Your options for logging web ACL traffic now include Amazon CloudWatch Logs log groups and Amazon S3 buckets.
18
+
19
+ 1.30.0 (2021-11-08)
20
+ ------------------
21
+
22
+ * Feature - You can now configure rules to run a CAPTCHA check against web requests and, as needed, send a CAPTCHA challenge to the client.
23
+
4
24
  1.29.0 (2021-11-04)
5
25
  ------------------
6
26
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.29.0
1
+ 1.33.0
@@ -27,6 +27,7 @@ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
27
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
28
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
29
  require 'aws-sdk-core/plugins/http_checksum.rb'
30
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
30
31
  require 'aws-sdk-core/plugins/signature_v4.rb'
31
32
  require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
32
33
 
@@ -73,6 +74,7 @@ module Aws::WAFV2
73
74
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
74
75
  add_plugin(Aws::Plugins::TransferEncoding)
75
76
  add_plugin(Aws::Plugins::HttpChecksum)
77
+ add_plugin(Aws::Plugins::DefaultsMode)
76
78
  add_plugin(Aws::Plugins::SignatureV4)
77
79
  add_plugin(Aws::Plugins::Protocols::JsonRpc)
78
80
 
@@ -119,7 +121,9 @@ module Aws::WAFV2
119
121
  # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
122
  # are very aggressive. Construct and pass an instance of
121
123
  # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
- # enable retries and extended timeouts.
124
+ # enable retries and extended timeouts. Instance profile credential
125
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
126
+ # to true.
123
127
  #
124
128
  # @option options [required, String] :region
125
129
  # The AWS region to connect to. The configured `:region` is
@@ -173,6 +177,10 @@ module Aws::WAFV2
173
177
  # Used only in `standard` and adaptive retry modes. Specifies whether to apply
174
178
  # a clock skew correction and retry requests with skewed client clocks.
175
179
  #
180
+ # @option options [String] :defaults_mode ("legacy")
181
+ # See {Aws::DefaultsModeConfiguration} for a list of the
182
+ # accepted modes and the configuration defaults that are included.
183
+ #
176
184
  # @option options [Boolean] :disable_host_prefix_injection (false)
177
185
  # Set to true to disable SDK automatically adding host prefix
178
186
  # to default service endpoint when available.
@@ -305,7 +313,7 @@ module Aws::WAFV2
305
313
  # seconds to wait when opening a HTTP session before raising a
306
314
  # `Timeout::Error`.
307
315
  #
308
- # @option options [Integer] :http_read_timeout (60) The default
316
+ # @option options [Float] :http_read_timeout (60) The default
309
317
  # number of seconds to wait for response data. This value can
310
318
  # safely be set per-request on the session.
311
319
  #
@@ -321,6 +329,9 @@ module Aws::WAFV2
321
329
  # disables this behaviour. This value can safely be set per
322
330
  # request on the session.
323
331
  #
332
+ # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
333
+ # in seconds.
334
+ #
324
335
  # @option options [Boolean] :http_wire_trace (false) When `true`,
325
336
  # HTTP debug output will be sent to the `:logger`.
326
337
  #
@@ -762,6 +773,16 @@ module Aws::WAFV2
762
773
  # ],
763
774
  # },
764
775
  # },
776
+ # captcha: {
777
+ # custom_request_handling: {
778
+ # insert_headers: [ # required
779
+ # {
780
+ # name: "CustomHTTPHeaderName", # required
781
+ # value: "CustomHTTPHeaderValue", # required
782
+ # },
783
+ # ],
784
+ # },
785
+ # },
765
786
  # },
766
787
  # override_action: {
767
788
  # count: {
@@ -787,6 +808,11 @@ module Aws::WAFV2
787
808
  # cloud_watch_metrics_enabled: false, # required
788
809
  # metric_name: "MetricName", # required
789
810
  # },
811
+ # captcha_config: {
812
+ # immunity_time_property: {
813
+ # immunity_time: 1, # required
814
+ # },
815
+ # },
790
816
  # },
791
817
  # ],
792
818
  # })
@@ -1389,6 +1415,16 @@ module Aws::WAFV2
1389
1415
  # ],
1390
1416
  # },
1391
1417
  # },
1418
+ # captcha: {
1419
+ # custom_request_handling: {
1420
+ # insert_headers: [ # required
1421
+ # {
1422
+ # name: "CustomHTTPHeaderName", # required
1423
+ # value: "CustomHTTPHeaderValue", # required
1424
+ # },
1425
+ # ],
1426
+ # },
1427
+ # },
1392
1428
  # },
1393
1429
  # override_action: {
1394
1430
  # count: {
@@ -1414,6 +1450,11 @@ module Aws::WAFV2
1414
1450
  # cloud_watch_metrics_enabled: false, # required
1415
1451
  # metric_name: "MetricName", # required
1416
1452
  # },
1453
+ # captcha_config: {
1454
+ # immunity_time_property: {
1455
+ # immunity_time: 1, # required
1456
+ # },
1457
+ # },
1417
1458
  # },
1418
1459
  # ],
1419
1460
  # visibility_config: { # required
@@ -1523,6 +1564,11 @@ module Aws::WAFV2
1523
1564
  # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1524
1565
  # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
1525
1566
  #
1567
+ # @option params [Types::CaptchaConfig] :captcha_config
1568
+ # Specifies how WAF should handle `CAPTCHA` evaluations for rules that
1569
+ # don't have their own `CaptchaConfig` settings. If you don't specify
1570
+ # this, WAF uses its default settings for `CaptchaConfig`.
1571
+ #
1526
1572
  # @return [Types::CreateWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1527
1573
  #
1528
1574
  # * {Types::CreateWebACLResponse#summary #summary} => Types::WebACLSummary
@@ -1882,6 +1928,16 @@ module Aws::WAFV2
1882
1928
  # ],
1883
1929
  # },
1884
1930
  # },
1931
+ # captcha: {
1932
+ # custom_request_handling: {
1933
+ # insert_headers: [ # required
1934
+ # {
1935
+ # name: "CustomHTTPHeaderName", # required
1936
+ # value: "CustomHTTPHeaderValue", # required
1937
+ # },
1938
+ # ],
1939
+ # },
1940
+ # },
1885
1941
  # },
1886
1942
  # override_action: {
1887
1943
  # count: {
@@ -1907,6 +1963,11 @@ module Aws::WAFV2
1907
1963
  # cloud_watch_metrics_enabled: false, # required
1908
1964
  # metric_name: "MetricName", # required
1909
1965
  # },
1966
+ # captcha_config: {
1967
+ # immunity_time_property: {
1968
+ # immunity_time: 1, # required
1969
+ # },
1970
+ # },
1910
1971
  # },
1911
1972
  # ],
1912
1973
  # visibility_config: { # required
@@ -1926,6 +1987,11 @@ module Aws::WAFV2
1926
1987
  # content: "ResponseContent", # required
1927
1988
  # },
1928
1989
  # },
1990
+ # captcha_config: {
1991
+ # immunity_time_property: {
1992
+ # immunity_time: 1, # required
1993
+ # },
1994
+ # },
1929
1995
  # })
1930
1996
  #
1931
1997
  # @example Response structure
@@ -2328,6 +2394,9 @@ module Aws::WAFV2
2328
2394
  # resp.rules[0].action.count.custom_request_handling.insert_headers #=> Array
2329
2395
  # resp.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
2330
2396
  # resp.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
2397
+ # resp.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
2398
+ # resp.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
2399
+ # resp.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
2331
2400
  # resp.label_namespace #=> String
2332
2401
  # resp.available_labels #=> Array
2333
2402
  # resp.available_labels[0].name #=> String
@@ -2480,7 +2549,7 @@ module Aws::WAFV2
2480
2549
  # resp.logging_configuration.logging_filter.filters[0].behavior #=> String, one of "KEEP", "DROP"
2481
2550
  # resp.logging_configuration.logging_filter.filters[0].requirement #=> String, one of "MEETS_ALL", "MEETS_ANY"
2482
2551
  # 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"
2552
+ # resp.logging_configuration.logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT", "CAPTCHA", "EXCLUDED_AS_COUNT"
2484
2553
  # resp.logging_configuration.logging_filter.filters[0].conditions[0].label_name_condition.label_name #=> String
2485
2554
  # resp.logging_configuration.logging_filter.default_behavior #=> String, one of "KEEP", "DROP"
2486
2555
  #
@@ -2897,6 +2966,9 @@ module Aws::WAFV2
2897
2966
  # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers #=> Array
2898
2967
  # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
2899
2968
  # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
2969
+ # resp.rule_group.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
2970
+ # resp.rule_group.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
2971
+ # resp.rule_group.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
2900
2972
  # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
2901
2973
  # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
2902
2974
  # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
@@ -2905,6 +2977,7 @@ module Aws::WAFV2
2905
2977
  # resp.rule_group.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
2906
2978
  # resp.rule_group.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
2907
2979
  # resp.rule_group.rules[0].visibility_config.metric_name #=> String
2980
+ # resp.rule_group.rules[0].captcha_config.immunity_time_property.immunity_time #=> Integer
2908
2981
  # resp.rule_group.visibility_config.sampled_requests_enabled #=> Boolean
2909
2982
  # resp.rule_group.visibility_config.cloud_watch_metrics_enabled #=> Boolean
2910
2983
  # resp.rule_group.visibility_config.metric_name #=> String
@@ -3018,6 +3091,9 @@ module Aws::WAFV2
3018
3091
  # resp.sampled_requests[0].response_code_sent #=> Integer
3019
3092
  # resp.sampled_requests[0].labels #=> Array
3020
3093
  # resp.sampled_requests[0].labels[0].name #=> String
3094
+ # resp.sampled_requests[0].captcha_response.response_code #=> Integer
3095
+ # resp.sampled_requests[0].captcha_response.solve_timestamp #=> Integer
3096
+ # resp.sampled_requests[0].captcha_response.failure_reason #=> String, one of "TOKEN_MISSING", "TOKEN_EXPIRED"
3021
3097
  # resp.population_size #=> Integer
3022
3098
  # resp.time_window.start_time #=> Time
3023
3099
  # resp.time_window.end_time #=> Time
@@ -3186,6 +3262,9 @@ module Aws::WAFV2
3186
3262
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers #=> Array
3187
3263
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
3188
3264
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
3265
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
3266
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
3267
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
3189
3268
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
3190
3269
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
3191
3270
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
@@ -3194,6 +3273,7 @@ module Aws::WAFV2
3194
3273
  # resp.web_acl.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
3195
3274
  # resp.web_acl.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
3196
3275
  # resp.web_acl.rules[0].visibility_config.metric_name #=> String
3276
+ # resp.web_acl.rules[0].captcha_config.immunity_time_property.immunity_time #=> Integer
3197
3277
  # resp.web_acl.visibility_config.sampled_requests_enabled #=> Boolean
3198
3278
  # resp.web_acl.visibility_config.cloud_watch_metrics_enabled #=> Boolean
3199
3279
  # resp.web_acl.visibility_config.metric_name #=> String
@@ -3405,6 +3485,7 @@ module Aws::WAFV2
3405
3485
  # resp.web_acl.custom_response_bodies #=> Hash
3406
3486
  # resp.web_acl.custom_response_bodies["EntityName"].content_type #=> String, one of "TEXT_PLAIN", "TEXT_HTML", "APPLICATION_JSON"
3407
3487
  # resp.web_acl.custom_response_bodies["EntityName"].content #=> String
3488
+ # resp.web_acl.captcha_config.immunity_time_property.immunity_time #=> Integer
3408
3489
  # resp.lock_token #=> String
3409
3490
  #
3410
3491
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACL AWS API Documentation
@@ -3548,6 +3629,9 @@ module Aws::WAFV2
3548
3629
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers #=> Array
3549
3630
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
3550
3631
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
3632
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
3633
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
3634
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
3551
3635
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
3552
3636
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
3553
3637
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
@@ -3556,6 +3640,7 @@ module Aws::WAFV2
3556
3640
  # resp.web_acl.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
3557
3641
  # resp.web_acl.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
3558
3642
  # resp.web_acl.rules[0].visibility_config.metric_name #=> String
3643
+ # resp.web_acl.rules[0].captcha_config.immunity_time_property.immunity_time #=> Integer
3559
3644
  # resp.web_acl.visibility_config.sampled_requests_enabled #=> Boolean
3560
3645
  # resp.web_acl.visibility_config.cloud_watch_metrics_enabled #=> Boolean
3561
3646
  # resp.web_acl.visibility_config.metric_name #=> String
@@ -3767,6 +3852,7 @@ module Aws::WAFV2
3767
3852
  # resp.web_acl.custom_response_bodies #=> Hash
3768
3853
  # resp.web_acl.custom_response_bodies["EntityName"].content_type #=> String, one of "TEXT_PLAIN", "TEXT_HTML", "APPLICATION_JSON"
3769
3854
  # resp.web_acl.custom_response_bodies["EntityName"].content #=> String
3855
+ # resp.web_acl.captcha_config.immunity_time_property.immunity_time #=> Integer
3770
3856
  #
3771
3857
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACLForResource AWS API Documentation
3772
3858
  #
@@ -3972,7 +4058,7 @@ module Aws::WAFV2
3972
4058
 
3973
4059
  # Retrieves an array of your LoggingConfiguration objects.
3974
4060
  #
3975
- # @option params [String] :scope
4061
+ # @option params [required, String] :scope
3976
4062
  # Specifies whether this is for an Amazon CloudFront distribution or for
3977
4063
  # a regional application. A regional application can be an Application
3978
4064
  # Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync
@@ -4007,7 +4093,7 @@ module Aws::WAFV2
4007
4093
  # @example Request syntax with placeholder values
4008
4094
  #
4009
4095
  # resp = client.list_logging_configurations({
4010
- # scope: "CLOUDFRONT", # accepts CLOUDFRONT, REGIONAL
4096
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
4011
4097
  # next_marker: "NextMarker",
4012
4098
  # limit: 1,
4013
4099
  # })
@@ -4030,7 +4116,7 @@ module Aws::WAFV2
4030
4116
  # resp.logging_configurations[0].logging_filter.filters[0].behavior #=> String, one of "KEEP", "DROP"
4031
4117
  # resp.logging_configurations[0].logging_filter.filters[0].requirement #=> String, one of "MEETS_ALL", "MEETS_ANY"
4032
4118
  # 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"
4119
+ # resp.logging_configurations[0].logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT", "CAPTCHA", "EXCLUDED_AS_COUNT"
4034
4120
  # resp.logging_configurations[0].logging_filter.filters[0].conditions[0].label_name_condition.label_name #=> String
4035
4121
  # resp.logging_configurations[0].logging_filter.default_behavior #=> String, one of "KEEP", "DROP"
4036
4122
  # resp.next_marker #=> String
@@ -4404,28 +4490,22 @@ module Aws::WAFV2
4404
4490
  # You can access information about all traffic that WAF inspects using
4405
4491
  # the following steps:
4406
4492
  #
4407
- # 1. Create an Amazon Kinesis Data Firehose.
4408
- #
4409
- # Create the data firehose with a PUT source and in the Region that
4410
- # you are operating. If you are capturing logs for Amazon
4411
- # CloudFront, always create the firehose in US East (N. Virginia).
4412
- #
4413
- # Give the data firehose a name that starts with the prefix
4414
- # `aws-waf-logs-`. For example, `aws-waf-logs-us-east-2-analytics`.
4415
- #
4416
- # <note markdown="1"> Do not create the data firehose using a `Kinesis stream` as your
4417
- # source.
4493
+ # 1. Create your logging destination. You can use an Amazon CloudWatch
4494
+ # Logs log group, an Amazon Simple Storage Service (Amazon S3)
4495
+ # bucket, or an Amazon Kinesis Data Firehose. For information about
4496
+ # configuring logging destinations and the permissions that are
4497
+ # required for each, see [Logging web ACL traffic information][1] in
4498
+ # the *WAF Developer Guide*.
4418
4499
  #
4419
- # </note>
4420
- #
4421
- # 2. Associate that firehose to your web ACL using a
4500
+ # 2. Associate your logging destination to your web ACL using a
4422
4501
  # `PutLoggingConfiguration` request.
4423
4502
  #
4424
4503
  # When you successfully enable logging using a `PutLoggingConfiguration`
4425
- # request, WAF will create a service linked role with the necessary
4426
- # permissions to write logs to the Amazon Kinesis Data Firehose. For
4427
- # more information, see [Logging Web ACL Traffic Information][1] in the
4428
- # *WAF Developer Guide*.
4504
+ # request, WAF creates an additional role or policy that is required to
4505
+ # write logs to the logging destination. For an Amazon CloudWatch Logs
4506
+ # log group, WAF creates a resource policy on the log group. For an
4507
+ # Amazon S3 bucket, WAF creates a bucket policy. For an Amazon Kinesis
4508
+ # Data Firehose, WAF creates a service-linked role.
4429
4509
  #
4430
4510
  # <note markdown="1"> This operation completely replaces the mutable specifications that you
4431
4511
  # already have for the logging configuration with the ones that you
@@ -4490,7 +4570,7 @@ module Aws::WAFV2
4490
4570
  # conditions: [ # required
4491
4571
  # {
4492
4572
  # action_condition: {
4493
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT
4573
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
4494
4574
  # },
4495
4575
  # label_name_condition: {
4496
4576
  # label_name: "LabelName", # required
@@ -4521,7 +4601,7 @@ module Aws::WAFV2
4521
4601
  # resp.logging_configuration.logging_filter.filters[0].behavior #=> String, one of "KEEP", "DROP"
4522
4602
  # resp.logging_configuration.logging_filter.filters[0].requirement #=> String, one of "MEETS_ALL", "MEETS_ANY"
4523
4603
  # 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"
4604
+ # resp.logging_configuration.logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT", "CAPTCHA", "EXCLUDED_AS_COUNT"
4525
4605
  # resp.logging_configuration.logging_filter.filters[0].conditions[0].label_name_condition.label_name #=> String
4526
4606
  # resp.logging_configuration.logging_filter.default_behavior #=> String, one of "KEEP", "DROP"
4527
4607
  #
@@ -5469,6 +5549,16 @@ module Aws::WAFV2
5469
5549
  # ],
5470
5550
  # },
5471
5551
  # },
5552
+ # captcha: {
5553
+ # custom_request_handling: {
5554
+ # insert_headers: [ # required
5555
+ # {
5556
+ # name: "CustomHTTPHeaderName", # required
5557
+ # value: "CustomHTTPHeaderValue", # required
5558
+ # },
5559
+ # ],
5560
+ # },
5561
+ # },
5472
5562
  # },
5473
5563
  # override_action: {
5474
5564
  # count: {
@@ -5494,6 +5584,11 @@ module Aws::WAFV2
5494
5584
  # cloud_watch_metrics_enabled: false, # required
5495
5585
  # metric_name: "MetricName", # required
5496
5586
  # },
5587
+ # captcha_config: {
5588
+ # immunity_time_property: {
5589
+ # immunity_time: 1, # required
5590
+ # },
5591
+ # },
5497
5592
  # },
5498
5593
  # ],
5499
5594
  # visibility_config: { # required
@@ -5614,6 +5709,11 @@ module Aws::WAFV2
5614
5709
  # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5615
5710
  # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
5616
5711
  #
5712
+ # @option params [Types::CaptchaConfig] :captcha_config
5713
+ # Specifies how WAF should handle `CAPTCHA` evaluations for rules that
5714
+ # don't have their own `CaptchaConfig` settings. If you don't specify
5715
+ # this, WAF uses its default settings for `CaptchaConfig`.
5716
+ #
5617
5717
  # @return [Types::UpdateWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5618
5718
  #
5619
5719
  # * {Types::UpdateWebACLResponse#next_lock_token #next_lock_token} => String
@@ -5974,6 +6074,16 @@ module Aws::WAFV2
5974
6074
  # ],
5975
6075
  # },
5976
6076
  # },
6077
+ # captcha: {
6078
+ # custom_request_handling: {
6079
+ # insert_headers: [ # required
6080
+ # {
6081
+ # name: "CustomHTTPHeaderName", # required
6082
+ # value: "CustomHTTPHeaderValue", # required
6083
+ # },
6084
+ # ],
6085
+ # },
6086
+ # },
5977
6087
  # },
5978
6088
  # override_action: {
5979
6089
  # count: {
@@ -5999,6 +6109,11 @@ module Aws::WAFV2
5999
6109
  # cloud_watch_metrics_enabled: false, # required
6000
6110
  # metric_name: "MetricName", # required
6001
6111
  # },
6112
+ # captcha_config: {
6113
+ # immunity_time_property: {
6114
+ # immunity_time: 1, # required
6115
+ # },
6116
+ # },
6002
6117
  # },
6003
6118
  # ],
6004
6119
  # visibility_config: { # required
@@ -6013,6 +6128,11 @@ module Aws::WAFV2
6013
6128
  # content: "ResponseContent", # required
6014
6129
  # },
6015
6130
  # },
6131
+ # captcha_config: {
6132
+ # immunity_time_property: {
6133
+ # immunity_time: 1, # required
6134
+ # },
6135
+ # },
6016
6136
  # })
6017
6137
  #
6018
6138
  # @example Response structure
@@ -6041,7 +6161,7 @@ module Aws::WAFV2
6041
6161
  params: params,
6042
6162
  config: config)
6043
6163
  context[:gem_name] = 'aws-sdk-wafv2'
6044
- context[:gem_version] = '1.29.0'
6164
+ context[:gem_version] = '1.33.0'
6045
6165
  Seahorse::Client::Request.new(handlers, context)
6046
6166
  end
6047
6167
 
@@ -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')
@@ -284,6 +292,7 @@ module Aws::WAFV2
284
292
  WAFInvalidPermissionPolicyException = Shapes::StructureShape.new(name: 'WAFInvalidPermissionPolicyException')
285
293
  WAFInvalidResourceException = Shapes::StructureShape.new(name: 'WAFInvalidResourceException')
286
294
  WAFLimitsExceededException = Shapes::StructureShape.new(name: 'WAFLimitsExceededException')
295
+ WAFLogDestinationPermissionIssueException = Shapes::StructureShape.new(name: 'WAFLogDestinationPermissionIssueException')
287
296
  WAFNonexistentItemException = Shapes::StructureShape.new(name: 'WAFNonexistentItemException')
288
297
  WAFOptimisticLockException = Shapes::StructureShape.new(name: 'WAFOptimisticLockException')
289
298
  WAFServiceLinkedRoleErrorException = Shapes::StructureShape.new(name: 'WAFServiceLinkedRoleErrorException')
@@ -326,6 +335,17 @@ module Aws::WAFV2
326
335
  ByteMatchStatement.add_member(:positional_constraint, Shapes::ShapeRef.new(shape: PositionalConstraint, required: true, location_name: "PositionalConstraint"))
327
336
  ByteMatchStatement.struct_class = Types::ByteMatchStatement
328
337
 
338
+ CaptchaAction.add_member(:custom_request_handling, Shapes::ShapeRef.new(shape: CustomRequestHandling, location_name: "CustomRequestHandling"))
339
+ CaptchaAction.struct_class = Types::CaptchaAction
340
+
341
+ CaptchaConfig.add_member(:immunity_time_property, Shapes::ShapeRef.new(shape: ImmunityTimeProperty, location_name: "ImmunityTimeProperty"))
342
+ CaptchaConfig.struct_class = Types::CaptchaConfig
343
+
344
+ CaptchaResponse.add_member(:response_code, Shapes::ShapeRef.new(shape: ResponseCode, location_name: "ResponseCode"))
345
+ CaptchaResponse.add_member(:solve_timestamp, Shapes::ShapeRef.new(shape: SolveTimestamp, location_name: "SolveTimestamp"))
346
+ CaptchaResponse.add_member(:failure_reason, Shapes::ShapeRef.new(shape: FailureReason, location_name: "FailureReason"))
347
+ CaptchaResponse.struct_class = Types::CaptchaResponse
348
+
329
349
  CheckCapacityRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
330
350
  CheckCapacityRequest.add_member(:rules, Shapes::ShapeRef.new(shape: Rules, required: true, location_name: "Rules"))
331
351
  CheckCapacityRequest.struct_class = Types::CheckCapacityRequest
@@ -386,6 +406,7 @@ module Aws::WAFV2
386
406
  CreateWebACLRequest.add_member(:visibility_config, Shapes::ShapeRef.new(shape: VisibilityConfig, required: true, location_name: "VisibilityConfig"))
387
407
  CreateWebACLRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
388
408
  CreateWebACLRequest.add_member(:custom_response_bodies, Shapes::ShapeRef.new(shape: CustomResponseBodies, location_name: "CustomResponseBodies"))
409
+ CreateWebACLRequest.add_member(:captcha_config, Shapes::ShapeRef.new(shape: CaptchaConfig, location_name: "CaptchaConfig"))
389
410
  CreateWebACLRequest.struct_class = Types::CreateWebACLRequest
390
411
 
391
412
  CreateWebACLResponse.add_member(:summary, Shapes::ShapeRef.new(shape: WebACLSummary, location_name: "Summary"))
@@ -657,6 +678,9 @@ module Aws::WAFV2
657
678
  IPSetSummary.add_member(:arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ARN"))
658
679
  IPSetSummary.struct_class = Types::IPSetSummary
659
680
 
681
+ ImmunityTimeProperty.add_member(:immunity_time, Shapes::ShapeRef.new(shape: TimeWindowSecond, required: true, location_name: "ImmunityTime"))
682
+ ImmunityTimeProperty.struct_class = Types::ImmunityTimeProperty
683
+
660
684
  JsonBody.add_member(:match_pattern, Shapes::ShapeRef.new(shape: JsonMatchPattern, required: true, location_name: "MatchPattern"))
661
685
  JsonBody.add_member(:match_scope, Shapes::ShapeRef.new(shape: JsonMatchScope, required: true, location_name: "MatchScope"))
662
686
  JsonBody.add_member(:invalid_fallback_behavior, Shapes::ShapeRef.new(shape: BodyParsingFallbackBehavior, location_name: "InvalidFallbackBehavior"))
@@ -714,7 +738,7 @@ module Aws::WAFV2
714
738
  ListIPSetsResponse.add_member(:ip_sets, Shapes::ShapeRef.new(shape: IPSetSummaries, location_name: "IPSets"))
715
739
  ListIPSetsResponse.struct_class = Types::ListIPSetsResponse
716
740
 
717
- ListLoggingConfigurationsRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, location_name: "Scope"))
741
+ ListLoggingConfigurationsRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
718
742
  ListLoggingConfigurationsRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
719
743
  ListLoggingConfigurationsRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
720
744
  ListLoggingConfigurationsRequest.struct_class = Types::ListLoggingConfigurationsRequest
@@ -931,11 +955,13 @@ module Aws::WAFV2
931
955
  Rule.add_member(:override_action, Shapes::ShapeRef.new(shape: OverrideAction, location_name: "OverrideAction"))
932
956
  Rule.add_member(:rule_labels, Shapes::ShapeRef.new(shape: Labels, location_name: "RuleLabels"))
933
957
  Rule.add_member(:visibility_config, Shapes::ShapeRef.new(shape: VisibilityConfig, required: true, location_name: "VisibilityConfig"))
958
+ Rule.add_member(:captcha_config, Shapes::ShapeRef.new(shape: CaptchaConfig, location_name: "CaptchaConfig"))
934
959
  Rule.struct_class = Types::Rule
935
960
 
936
961
  RuleAction.add_member(:block, Shapes::ShapeRef.new(shape: BlockAction, location_name: "Block"))
937
962
  RuleAction.add_member(:allow, Shapes::ShapeRef.new(shape: AllowAction, location_name: "Allow"))
938
963
  RuleAction.add_member(:count, Shapes::ShapeRef.new(shape: CountAction, location_name: "Count"))
964
+ RuleAction.add_member(:captcha, Shapes::ShapeRef.new(shape: CaptchaAction, location_name: "Captcha"))
939
965
  RuleAction.struct_class = Types::RuleAction
940
966
 
941
967
  RuleGroup.add_member(:name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "Name"))
@@ -980,6 +1006,7 @@ module Aws::WAFV2
980
1006
  SampledHTTPRequest.add_member(:request_headers_inserted, Shapes::ShapeRef.new(shape: HTTPHeaders, location_name: "RequestHeadersInserted"))
981
1007
  SampledHTTPRequest.add_member(:response_code_sent, Shapes::ShapeRef.new(shape: ResponseStatusCode, location_name: "ResponseCodeSent"))
982
1008
  SampledHTTPRequest.add_member(:labels, Shapes::ShapeRef.new(shape: Labels, location_name: "Labels"))
1009
+ SampledHTTPRequest.add_member(:captcha_response, Shapes::ShapeRef.new(shape: CaptchaResponse, location_name: "CaptchaResponse"))
983
1010
  SampledHTTPRequest.struct_class = Types::SampledHTTPRequest
984
1011
 
985
1012
  SampledHTTPRequests.member = Shapes::ShapeRef.new(shape: SampledHTTPRequest)
@@ -1110,6 +1137,7 @@ module Aws::WAFV2
1110
1137
  UpdateWebACLRequest.add_member(:visibility_config, Shapes::ShapeRef.new(shape: VisibilityConfig, required: true, location_name: "VisibilityConfig"))
1111
1138
  UpdateWebACLRequest.add_member(:lock_token, Shapes::ShapeRef.new(shape: LockToken, required: true, location_name: "LockToken"))
1112
1139
  UpdateWebACLRequest.add_member(:custom_response_bodies, Shapes::ShapeRef.new(shape: CustomResponseBodies, location_name: "CustomResponseBodies"))
1140
+ UpdateWebACLRequest.add_member(:captcha_config, Shapes::ShapeRef.new(shape: CaptchaConfig, location_name: "CaptchaConfig"))
1113
1141
  UpdateWebACLRequest.struct_class = Types::UpdateWebACLRequest
1114
1142
 
1115
1143
  UpdateWebACLResponse.add_member(:next_lock_token, Shapes::ShapeRef.new(shape: LockToken, location_name: "NextLockToken"))
@@ -1159,6 +1187,9 @@ module Aws::WAFV2
1159
1187
  WAFLimitsExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1160
1188
  WAFLimitsExceededException.struct_class = Types::WAFLimitsExceededException
1161
1189
 
1190
+ WAFLogDestinationPermissionIssueException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1191
+ WAFLogDestinationPermissionIssueException.struct_class = Types::WAFLogDestinationPermissionIssueException
1192
+
1162
1193
  WAFNonexistentItemException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1163
1194
  WAFNonexistentItemException.struct_class = Types::WAFNonexistentItemException
1164
1195
 
@@ -1193,6 +1224,7 @@ module Aws::WAFV2
1193
1224
  WebACL.add_member(:managed_by_firewall_manager, Shapes::ShapeRef.new(shape: Boolean, location_name: "ManagedByFirewallManager"))
1194
1225
  WebACL.add_member(:label_namespace, Shapes::ShapeRef.new(shape: LabelName, location_name: "LabelNamespace"))
1195
1226
  WebACL.add_member(:custom_response_bodies, Shapes::ShapeRef.new(shape: CustomResponseBodies, location_name: "CustomResponseBodies"))
1227
+ WebACL.add_member(:captcha_config, Shapes::ShapeRef.new(shape: CaptchaConfig, location_name: "CaptchaConfig"))
1196
1228
  WebACL.struct_class = Types::WebACL
1197
1229
 
1198
1230
  WebACLSummaries.member = Shapes::ShapeRef.new(shape: WebACLSummary)
@@ -1700,6 +1732,7 @@ module Aws::WAFV2
1700
1732
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidParameterException)
1701
1733
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1702
1734
  o.errors << Shapes::ShapeRef.new(shape: WAFLimitsExceededException)
1735
+ o.errors << Shapes::ShapeRef.new(shape: WAFLogDestinationPermissionIssueException)
1703
1736
  end)
1704
1737
 
1705
1738
  api.add_operation(:put_managed_rule_set_versions, Seahorse::Model::Operation.new.tap do |o|