aws-sdk-wafv2 1.28.0 → 1.32.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: 4b206f6136550394175f6892d68f5251ed144656d69ab4c49e759fe2fb5b9902
4
- data.tar.gz: c38b69a9983aa54e12a3ff37636030b2fd05613a616ca15c62f9fdcddb148135
3
+ metadata.gz: b49fb00fb3091146492c357b33ab6fae6ac653e6827c49b7b191c88001c57bec
4
+ data.tar.gz: 93180ac25984d733e1b91f6d347af72919bed70b7b005107e2ca8f2a12b9c307
5
5
  SHA512:
6
- metadata.gz: f9cbccf2304cf36306c10754fb6f666b6182d5a21e94a9295b542da7342473e5729aba5b6debdd5ea540442b3e161a9f76065961cd8b134d837c836298410c16
7
- data.tar.gz: 5ee2b369a09ab087c4cba82fc694946630a16ea0be2c59b1be322feff647713d1be2ab916b217bc1d8b5c70220fb032f66ee61a51e2a98ca16d98d8cc6153f11
6
+ metadata.gz: 147eef6c9cc48fcdd1917e34af5674be72d4976ad459eaa4184051178e4194014c56f4a8515061e5e1a8700b49fa7bcf4ce71754fe19e8f45abb2325c638e682
7
+ data.tar.gz: 81a142ea9622e96022a69ae9669ab58c6214f753d29b9177385b6a8a1f1ebba2250c58744275f1bf291fb503318d4d4869451df5f4c5402aa002c040eeccecf0
data/CHANGELOG.md CHANGED
@@ -1,6 +1,26 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.32.0 (2021-11-30)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ 1.31.0 (2021-11-15)
10
+ ------------------
11
+
12
+ * Feature - Your options for logging web ACL traffic now include Amazon CloudWatch Logs log groups and Amazon S3 buckets.
13
+
14
+ 1.30.0 (2021-11-08)
15
+ ------------------
16
+
17
+ * Feature - You can now configure rules to run a CAPTCHA check against web requests and, as needed, send a CAPTCHA challenge to the client.
18
+
19
+ 1.29.0 (2021-11-04)
20
+ ------------------
21
+
22
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
23
+
4
24
  1.28.0 (2021-10-18)
5
25
  ------------------
6
26
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.28.0
1
+ 1.32.0
@@ -119,7 +119,9 @@ module Aws::WAFV2
119
119
  # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
120
  # are very aggressive. Construct and pass an instance of
121
121
  # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
- # enable retries and extended timeouts.
122
+ # enable retries and extended timeouts. Instance profile credential
123
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
124
+ # to true.
123
125
  #
124
126
  # @option options [required, String] :region
125
127
  # The AWS region to connect to. The configured `:region` is
@@ -285,6 +287,15 @@ module Aws::WAFV2
285
287
  # ** Please note ** When response stubbing is enabled, no HTTP
286
288
  # requests are made, and retries are disabled.
287
289
  #
290
+ # @option options [Boolean] :use_dualstack_endpoint
291
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
292
+ # will be used if available.
293
+ #
294
+ # @option options [Boolean] :use_fips_endpoint
295
+ # When set to `true`, fips compatible endpoints will be used if available.
296
+ # When a `fips` region is used, the region is normalized and this config
297
+ # is set to `true`.
298
+ #
288
299
  # @option options [Boolean] :validate_params (true)
289
300
  # When `true`, request parameters are validated before
290
301
  # sending the request.
@@ -753,6 +764,16 @@ module Aws::WAFV2
753
764
  # ],
754
765
  # },
755
766
  # },
767
+ # captcha: {
768
+ # custom_request_handling: {
769
+ # insert_headers: [ # required
770
+ # {
771
+ # name: "CustomHTTPHeaderName", # required
772
+ # value: "CustomHTTPHeaderValue", # required
773
+ # },
774
+ # ],
775
+ # },
776
+ # },
756
777
  # },
757
778
  # override_action: {
758
779
  # count: {
@@ -778,6 +799,11 @@ module Aws::WAFV2
778
799
  # cloud_watch_metrics_enabled: false, # required
779
800
  # metric_name: "MetricName", # required
780
801
  # },
802
+ # captcha_config: {
803
+ # immunity_time_property: {
804
+ # immunity_time: 1, # required
805
+ # },
806
+ # },
781
807
  # },
782
808
  # ],
783
809
  # })
@@ -1380,6 +1406,16 @@ module Aws::WAFV2
1380
1406
  # ],
1381
1407
  # },
1382
1408
  # },
1409
+ # captcha: {
1410
+ # custom_request_handling: {
1411
+ # insert_headers: [ # required
1412
+ # {
1413
+ # name: "CustomHTTPHeaderName", # required
1414
+ # value: "CustomHTTPHeaderValue", # required
1415
+ # },
1416
+ # ],
1417
+ # },
1418
+ # },
1383
1419
  # },
1384
1420
  # override_action: {
1385
1421
  # count: {
@@ -1405,6 +1441,11 @@ module Aws::WAFV2
1405
1441
  # cloud_watch_metrics_enabled: false, # required
1406
1442
  # metric_name: "MetricName", # required
1407
1443
  # },
1444
+ # captcha_config: {
1445
+ # immunity_time_property: {
1446
+ # immunity_time: 1, # required
1447
+ # },
1448
+ # },
1408
1449
  # },
1409
1450
  # ],
1410
1451
  # visibility_config: { # required
@@ -1514,6 +1555,11 @@ module Aws::WAFV2
1514
1555
  # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1515
1556
  # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
1516
1557
  #
1558
+ # @option params [Types::CaptchaConfig] :captcha_config
1559
+ # Specifies how WAF should handle `CAPTCHA` evaluations for rules that
1560
+ # don't have their own `CaptchaConfig` settings. If you don't specify
1561
+ # this, WAF uses its default settings for `CaptchaConfig`.
1562
+ #
1517
1563
  # @return [Types::CreateWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1518
1564
  #
1519
1565
  # * {Types::CreateWebACLResponse#summary #summary} => Types::WebACLSummary
@@ -1873,6 +1919,16 @@ module Aws::WAFV2
1873
1919
  # ],
1874
1920
  # },
1875
1921
  # },
1922
+ # captcha: {
1923
+ # custom_request_handling: {
1924
+ # insert_headers: [ # required
1925
+ # {
1926
+ # name: "CustomHTTPHeaderName", # required
1927
+ # value: "CustomHTTPHeaderValue", # required
1928
+ # },
1929
+ # ],
1930
+ # },
1931
+ # },
1876
1932
  # },
1877
1933
  # override_action: {
1878
1934
  # count: {
@@ -1898,6 +1954,11 @@ module Aws::WAFV2
1898
1954
  # cloud_watch_metrics_enabled: false, # required
1899
1955
  # metric_name: "MetricName", # required
1900
1956
  # },
1957
+ # captcha_config: {
1958
+ # immunity_time_property: {
1959
+ # immunity_time: 1, # required
1960
+ # },
1961
+ # },
1901
1962
  # },
1902
1963
  # ],
1903
1964
  # visibility_config: { # required
@@ -1917,6 +1978,11 @@ module Aws::WAFV2
1917
1978
  # content: "ResponseContent", # required
1918
1979
  # },
1919
1980
  # },
1981
+ # captcha_config: {
1982
+ # immunity_time_property: {
1983
+ # immunity_time: 1, # required
1984
+ # },
1985
+ # },
1920
1986
  # })
1921
1987
  #
1922
1988
  # @example Response structure
@@ -2319,6 +2385,9 @@ module Aws::WAFV2
2319
2385
  # resp.rules[0].action.count.custom_request_handling.insert_headers #=> Array
2320
2386
  # resp.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
2321
2387
  # resp.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
2388
+ # resp.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
2389
+ # resp.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
2390
+ # resp.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
2322
2391
  # resp.label_namespace #=> String
2323
2392
  # resp.available_labels #=> Array
2324
2393
  # resp.available_labels[0].name #=> String
@@ -2471,7 +2540,7 @@ module Aws::WAFV2
2471
2540
  # resp.logging_configuration.logging_filter.filters[0].behavior #=> String, one of "KEEP", "DROP"
2472
2541
  # resp.logging_configuration.logging_filter.filters[0].requirement #=> String, one of "MEETS_ALL", "MEETS_ANY"
2473
2542
  # resp.logging_configuration.logging_filter.filters[0].conditions #=> Array
2474
- # resp.logging_configuration.logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT"
2543
+ # resp.logging_configuration.logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT", "CAPTCHA", "EXCLUDED_AS_COUNT"
2475
2544
  # resp.logging_configuration.logging_filter.filters[0].conditions[0].label_name_condition.label_name #=> String
2476
2545
  # resp.logging_configuration.logging_filter.default_behavior #=> String, one of "KEEP", "DROP"
2477
2546
  #
@@ -2888,6 +2957,9 @@ module Aws::WAFV2
2888
2957
  # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers #=> Array
2889
2958
  # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
2890
2959
  # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
2960
+ # resp.rule_group.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
2961
+ # resp.rule_group.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
2962
+ # resp.rule_group.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
2891
2963
  # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
2892
2964
  # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
2893
2965
  # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
@@ -2896,6 +2968,7 @@ module Aws::WAFV2
2896
2968
  # resp.rule_group.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
2897
2969
  # resp.rule_group.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
2898
2970
  # resp.rule_group.rules[0].visibility_config.metric_name #=> String
2971
+ # resp.rule_group.rules[0].captcha_config.immunity_time_property.immunity_time #=> Integer
2899
2972
  # resp.rule_group.visibility_config.sampled_requests_enabled #=> Boolean
2900
2973
  # resp.rule_group.visibility_config.cloud_watch_metrics_enabled #=> Boolean
2901
2974
  # resp.rule_group.visibility_config.metric_name #=> String
@@ -3009,6 +3082,9 @@ module Aws::WAFV2
3009
3082
  # resp.sampled_requests[0].response_code_sent #=> Integer
3010
3083
  # resp.sampled_requests[0].labels #=> Array
3011
3084
  # resp.sampled_requests[0].labels[0].name #=> String
3085
+ # resp.sampled_requests[0].captcha_response.response_code #=> Integer
3086
+ # resp.sampled_requests[0].captcha_response.solve_timestamp #=> Integer
3087
+ # resp.sampled_requests[0].captcha_response.failure_reason #=> String, one of "TOKEN_MISSING", "TOKEN_EXPIRED"
3012
3088
  # resp.population_size #=> Integer
3013
3089
  # resp.time_window.start_time #=> Time
3014
3090
  # resp.time_window.end_time #=> Time
@@ -3177,6 +3253,9 @@ module Aws::WAFV2
3177
3253
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers #=> Array
3178
3254
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
3179
3255
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
3256
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
3257
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
3258
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
3180
3259
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
3181
3260
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
3182
3261
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
@@ -3185,6 +3264,7 @@ module Aws::WAFV2
3185
3264
  # resp.web_acl.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
3186
3265
  # resp.web_acl.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
3187
3266
  # resp.web_acl.rules[0].visibility_config.metric_name #=> String
3267
+ # resp.web_acl.rules[0].captcha_config.immunity_time_property.immunity_time #=> Integer
3188
3268
  # resp.web_acl.visibility_config.sampled_requests_enabled #=> Boolean
3189
3269
  # resp.web_acl.visibility_config.cloud_watch_metrics_enabled #=> Boolean
3190
3270
  # resp.web_acl.visibility_config.metric_name #=> String
@@ -3396,6 +3476,7 @@ module Aws::WAFV2
3396
3476
  # resp.web_acl.custom_response_bodies #=> Hash
3397
3477
  # resp.web_acl.custom_response_bodies["EntityName"].content_type #=> String, one of "TEXT_PLAIN", "TEXT_HTML", "APPLICATION_JSON"
3398
3478
  # resp.web_acl.custom_response_bodies["EntityName"].content #=> String
3479
+ # resp.web_acl.captcha_config.immunity_time_property.immunity_time #=> Integer
3399
3480
  # resp.lock_token #=> String
3400
3481
  #
3401
3482
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACL AWS API Documentation
@@ -3539,6 +3620,9 @@ module Aws::WAFV2
3539
3620
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers #=> Array
3540
3621
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
3541
3622
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
3623
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
3624
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
3625
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
3542
3626
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
3543
3627
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
3544
3628
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
@@ -3547,6 +3631,7 @@ module Aws::WAFV2
3547
3631
  # resp.web_acl.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
3548
3632
  # resp.web_acl.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
3549
3633
  # resp.web_acl.rules[0].visibility_config.metric_name #=> String
3634
+ # resp.web_acl.rules[0].captcha_config.immunity_time_property.immunity_time #=> Integer
3550
3635
  # resp.web_acl.visibility_config.sampled_requests_enabled #=> Boolean
3551
3636
  # resp.web_acl.visibility_config.cloud_watch_metrics_enabled #=> Boolean
3552
3637
  # resp.web_acl.visibility_config.metric_name #=> String
@@ -3758,6 +3843,7 @@ module Aws::WAFV2
3758
3843
  # resp.web_acl.custom_response_bodies #=> Hash
3759
3844
  # resp.web_acl.custom_response_bodies["EntityName"].content_type #=> String, one of "TEXT_PLAIN", "TEXT_HTML", "APPLICATION_JSON"
3760
3845
  # resp.web_acl.custom_response_bodies["EntityName"].content #=> String
3846
+ # resp.web_acl.captcha_config.immunity_time_property.immunity_time #=> Integer
3761
3847
  #
3762
3848
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACLForResource AWS API Documentation
3763
3849
  #
@@ -3963,7 +4049,7 @@ module Aws::WAFV2
3963
4049
 
3964
4050
  # Retrieves an array of your LoggingConfiguration objects.
3965
4051
  #
3966
- # @option params [String] :scope
4052
+ # @option params [required, String] :scope
3967
4053
  # Specifies whether this is for an Amazon CloudFront distribution or for
3968
4054
  # a regional application. A regional application can be an Application
3969
4055
  # Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync
@@ -3998,7 +4084,7 @@ module Aws::WAFV2
3998
4084
  # @example Request syntax with placeholder values
3999
4085
  #
4000
4086
  # resp = client.list_logging_configurations({
4001
- # scope: "CLOUDFRONT", # accepts CLOUDFRONT, REGIONAL
4087
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
4002
4088
  # next_marker: "NextMarker",
4003
4089
  # limit: 1,
4004
4090
  # })
@@ -4021,7 +4107,7 @@ module Aws::WAFV2
4021
4107
  # resp.logging_configurations[0].logging_filter.filters[0].behavior #=> String, one of "KEEP", "DROP"
4022
4108
  # resp.logging_configurations[0].logging_filter.filters[0].requirement #=> String, one of "MEETS_ALL", "MEETS_ANY"
4023
4109
  # resp.logging_configurations[0].logging_filter.filters[0].conditions #=> Array
4024
- # resp.logging_configurations[0].logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT"
4110
+ # resp.logging_configurations[0].logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT", "CAPTCHA", "EXCLUDED_AS_COUNT"
4025
4111
  # resp.logging_configurations[0].logging_filter.filters[0].conditions[0].label_name_condition.label_name #=> String
4026
4112
  # resp.logging_configurations[0].logging_filter.default_behavior #=> String, one of "KEEP", "DROP"
4027
4113
  # resp.next_marker #=> String
@@ -4395,28 +4481,22 @@ module Aws::WAFV2
4395
4481
  # You can access information about all traffic that WAF inspects using
4396
4482
  # the following steps:
4397
4483
  #
4398
- # 1. Create an Amazon Kinesis Data Firehose.
4399
- #
4400
- # Create the data firehose with a PUT source and in the Region that
4401
- # you are operating. If you are capturing logs for Amazon
4402
- # CloudFront, always create the firehose in US East (N. Virginia).
4403
- #
4404
- # Give the data firehose a name that starts with the prefix
4405
- # `aws-waf-logs-`. For example, `aws-waf-logs-us-east-2-analytics`.
4484
+ # 1. Create your logging destination. You can use an Amazon CloudWatch
4485
+ # Logs log group, an Amazon Simple Storage Service (Amazon S3)
4486
+ # bucket, or an Amazon Kinesis Data Firehose. For information about
4487
+ # configuring logging destinations and the permissions that are
4488
+ # required for each, see [Logging web ACL traffic information][1] in
4489
+ # the *WAF Developer Guide*.
4406
4490
  #
4407
- # <note markdown="1"> Do not create the data firehose using a `Kinesis stream` as your
4408
- # source.
4409
- #
4410
- # </note>
4411
- #
4412
- # 2. Associate that firehose to your web ACL using a
4491
+ # 2. Associate your logging destination to your web ACL using a
4413
4492
  # `PutLoggingConfiguration` request.
4414
4493
  #
4415
4494
  # When you successfully enable logging using a `PutLoggingConfiguration`
4416
- # request, WAF will create a service linked role with the necessary
4417
- # permissions to write logs to the Amazon Kinesis Data Firehose. For
4418
- # more information, see [Logging Web ACL Traffic Information][1] in the
4419
- # *WAF Developer Guide*.
4495
+ # request, WAF creates an additional role or policy that is required to
4496
+ # write logs to the logging destination. For an Amazon CloudWatch Logs
4497
+ # log group, WAF creates a resource policy on the log group. For an
4498
+ # Amazon S3 bucket, WAF creates a bucket policy. For an Amazon Kinesis
4499
+ # Data Firehose, WAF creates a service-linked role.
4420
4500
  #
4421
4501
  # <note markdown="1"> This operation completely replaces the mutable specifications that you
4422
4502
  # already have for the logging configuration with the ones that you
@@ -4481,7 +4561,7 @@ module Aws::WAFV2
4481
4561
  # conditions: [ # required
4482
4562
  # {
4483
4563
  # action_condition: {
4484
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT
4564
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
4485
4565
  # },
4486
4566
  # label_name_condition: {
4487
4567
  # label_name: "LabelName", # required
@@ -4512,7 +4592,7 @@ module Aws::WAFV2
4512
4592
  # resp.logging_configuration.logging_filter.filters[0].behavior #=> String, one of "KEEP", "DROP"
4513
4593
  # resp.logging_configuration.logging_filter.filters[0].requirement #=> String, one of "MEETS_ALL", "MEETS_ANY"
4514
4594
  # resp.logging_configuration.logging_filter.filters[0].conditions #=> Array
4515
- # resp.logging_configuration.logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT"
4595
+ # resp.logging_configuration.logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT", "CAPTCHA", "EXCLUDED_AS_COUNT"
4516
4596
  # resp.logging_configuration.logging_filter.filters[0].conditions[0].label_name_condition.label_name #=> String
4517
4597
  # resp.logging_configuration.logging_filter.default_behavior #=> String, one of "KEEP", "DROP"
4518
4598
  #
@@ -5460,6 +5540,16 @@ module Aws::WAFV2
5460
5540
  # ],
5461
5541
  # },
5462
5542
  # },
5543
+ # captcha: {
5544
+ # custom_request_handling: {
5545
+ # insert_headers: [ # required
5546
+ # {
5547
+ # name: "CustomHTTPHeaderName", # required
5548
+ # value: "CustomHTTPHeaderValue", # required
5549
+ # },
5550
+ # ],
5551
+ # },
5552
+ # },
5463
5553
  # },
5464
5554
  # override_action: {
5465
5555
  # count: {
@@ -5485,6 +5575,11 @@ module Aws::WAFV2
5485
5575
  # cloud_watch_metrics_enabled: false, # required
5486
5576
  # metric_name: "MetricName", # required
5487
5577
  # },
5578
+ # captcha_config: {
5579
+ # immunity_time_property: {
5580
+ # immunity_time: 1, # required
5581
+ # },
5582
+ # },
5488
5583
  # },
5489
5584
  # ],
5490
5585
  # visibility_config: { # required
@@ -5605,6 +5700,11 @@ module Aws::WAFV2
5605
5700
  # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5606
5701
  # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
5607
5702
  #
5703
+ # @option params [Types::CaptchaConfig] :captcha_config
5704
+ # Specifies how WAF should handle `CAPTCHA` evaluations for rules that
5705
+ # don't have their own `CaptchaConfig` settings. If you don't specify
5706
+ # this, WAF uses its default settings for `CaptchaConfig`.
5707
+ #
5608
5708
  # @return [Types::UpdateWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5609
5709
  #
5610
5710
  # * {Types::UpdateWebACLResponse#next_lock_token #next_lock_token} => String
@@ -5965,6 +6065,16 @@ module Aws::WAFV2
5965
6065
  # ],
5966
6066
  # },
5967
6067
  # },
6068
+ # captcha: {
6069
+ # custom_request_handling: {
6070
+ # insert_headers: [ # required
6071
+ # {
6072
+ # name: "CustomHTTPHeaderName", # required
6073
+ # value: "CustomHTTPHeaderValue", # required
6074
+ # },
6075
+ # ],
6076
+ # },
6077
+ # },
5968
6078
  # },
5969
6079
  # override_action: {
5970
6080
  # count: {
@@ -5990,6 +6100,11 @@ module Aws::WAFV2
5990
6100
  # cloud_watch_metrics_enabled: false, # required
5991
6101
  # metric_name: "MetricName", # required
5992
6102
  # },
6103
+ # captcha_config: {
6104
+ # immunity_time_property: {
6105
+ # immunity_time: 1, # required
6106
+ # },
6107
+ # },
5993
6108
  # },
5994
6109
  # ],
5995
6110
  # visibility_config: { # required
@@ -6004,6 +6119,11 @@ module Aws::WAFV2
6004
6119
  # content: "ResponseContent", # required
6005
6120
  # },
6006
6121
  # },
6122
+ # captcha_config: {
6123
+ # immunity_time_property: {
6124
+ # immunity_time: 1, # required
6125
+ # },
6126
+ # },
6007
6127
  # })
6008
6128
  #
6009
6129
  # @example Response structure
@@ -6032,7 +6152,7 @@ module Aws::WAFV2
6032
6152
  params: params,
6033
6153
  config: config)
6034
6154
  context[:gem_name] = 'aws-sdk-wafv2'
6035
- context[:gem_version] = '1.28.0'
6155
+ context[:gem_version] = '1.32.0'
6036
6156
  Seahorse::Client::Request.new(handlers, context)
6037
6157
  end
6038
6158
 
@@ -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|
@@ -36,6 +36,7 @@ module Aws::WAFV2
36
36
  # * {WAFInvalidPermissionPolicyException}
37
37
  # * {WAFInvalidResourceException}
38
38
  # * {WAFLimitsExceededException}
39
+ # * {WAFLogDestinationPermissionIssueException}
39
40
  # * {WAFNonexistentItemException}
40
41
  # * {WAFOptimisticLockException}
41
42
  # * {WAFServiceLinkedRoleErrorException}
@@ -200,6 +201,21 @@ module Aws::WAFV2
200
201
  end
201
202
  end
202
203
 
204
+ class WAFLogDestinationPermissionIssueException < ServiceError
205
+
206
+ # @param [Seahorse::Client::RequestContext] context
207
+ # @param [String] message
208
+ # @param [Aws::WAFV2::Types::WAFLogDestinationPermissionIssueException] data
209
+ def initialize(context, message, data = Aws::EmptyStructure.new)
210
+ super(context, message, data)
211
+ end
212
+
213
+ # @return [String]
214
+ def message
215
+ @message || @data[:message]
216
+ end
217
+ end
218
+
203
219
  class WAFNonexistentItemException < ServiceError
204
220
 
205
221
  # @param [Seahorse::Client::RequestContext] context