aws-sdk-wafv2 1.29.0 → 1.33.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: 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|