aws-sdk-wafv2 1.27.0 → 1.31.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: 46c471be3d92b196efbf014311f41e37d6e2eb93b18dddbc4086bf9b785c1b28
4
- data.tar.gz: 8555875acfcc8bd5c7f346956d1bd2e44d003279955d66c62306a9b74ab3eab0
3
+ metadata.gz: b3b1c92cb789ccf4f30ff1c2d2e5b2d7814f58ed48f6c122cf00a223d6b96714
4
+ data.tar.gz: 2e0b15160d174f1ebd884e92eca57256d43f5dc04273090f1c65698827167467
5
5
  SHA512:
6
- metadata.gz: 4d510113dba74dc15004271c9b1d4bf71c3388cdb8fd706e85104b5af25959030dee5664e6493ed39d36ab222ac0ac4dd231d1844baef767bf692ed8b3180426
7
- data.tar.gz: e4e365468a603648dd4c0f0ebbaf4020b66d193b095d2cb12938a3b8db1f9ee3833d4d499e7b16cf189ccb9f3d0537de2ca4b2f2060918d1773d1f63f7d89363
6
+ metadata.gz: 884441ff2f923c2c198f3ae70edc67688646cc318a1fad59701e1bb4a10f9486b96efb1d82ff56c66b0ed61afe1bdb71b729bf48d166acc28ec4bc962bcebefc
7
+ data.tar.gz: 03e62ccd185255c3004e2b05bd9b7aaf60c81ae687b789b1bd290bfd9bf9fd225dbe9265b2bff33a8b667f5ed8c1f65cd5b8c06dbdb8eea6a6ea52f1cd6f2172
data/CHANGELOG.md CHANGED
@@ -1,6 +1,26 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.31.0 (2021-11-15)
5
+ ------------------
6
+
7
+ * Feature - Your options for logging web ACL traffic now include Amazon CloudWatch Logs log groups and Amazon S3 buckets.
8
+
9
+ 1.30.0 (2021-11-08)
10
+ ------------------
11
+
12
+ * Feature - You can now configure rules to run a CAPTCHA check against web requests and, as needed, send a CAPTCHA challenge to the client.
13
+
14
+ 1.29.0 (2021-11-04)
15
+ ------------------
16
+
17
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
18
+
19
+ 1.28.0 (2021-10-18)
20
+ ------------------
21
+
22
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
23
+
4
24
  1.27.0 (2021-09-22)
5
25
  ------------------
6
26
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.27.0
1
+ 1.31.0
@@ -285,6 +285,15 @@ module Aws::WAFV2
285
285
  # ** Please note ** When response stubbing is enabled, no HTTP
286
286
  # requests are made, and retries are disabled.
287
287
  #
288
+ # @option options [Boolean] :use_dualstack_endpoint
289
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
290
+ # will be used if available.
291
+ #
292
+ # @option options [Boolean] :use_fips_endpoint
293
+ # When set to `true`, fips compatible endpoints will be used if available.
294
+ # When a `fips` region is used, the region is normalized and this config
295
+ # is set to `true`.
296
+ #
288
297
  # @option options [Boolean] :validate_params (true)
289
298
  # When `true`, request parameters are validated before
290
299
  # sending the request.
@@ -753,6 +762,16 @@ module Aws::WAFV2
753
762
  # ],
754
763
  # },
755
764
  # },
765
+ # captcha: {
766
+ # custom_request_handling: {
767
+ # insert_headers: [ # required
768
+ # {
769
+ # name: "CustomHTTPHeaderName", # required
770
+ # value: "CustomHTTPHeaderValue", # required
771
+ # },
772
+ # ],
773
+ # },
774
+ # },
756
775
  # },
757
776
  # override_action: {
758
777
  # count: {
@@ -778,6 +797,11 @@ module Aws::WAFV2
778
797
  # cloud_watch_metrics_enabled: false, # required
779
798
  # metric_name: "MetricName", # required
780
799
  # },
800
+ # captcha_config: {
801
+ # immunity_time_property: {
802
+ # immunity_time: 1, # required
803
+ # },
804
+ # },
781
805
  # },
782
806
  # ],
783
807
  # })
@@ -1380,6 +1404,16 @@ module Aws::WAFV2
1380
1404
  # ],
1381
1405
  # },
1382
1406
  # },
1407
+ # captcha: {
1408
+ # custom_request_handling: {
1409
+ # insert_headers: [ # required
1410
+ # {
1411
+ # name: "CustomHTTPHeaderName", # required
1412
+ # value: "CustomHTTPHeaderValue", # required
1413
+ # },
1414
+ # ],
1415
+ # },
1416
+ # },
1383
1417
  # },
1384
1418
  # override_action: {
1385
1419
  # count: {
@@ -1405,6 +1439,11 @@ module Aws::WAFV2
1405
1439
  # cloud_watch_metrics_enabled: false, # required
1406
1440
  # metric_name: "MetricName", # required
1407
1441
  # },
1442
+ # captcha_config: {
1443
+ # immunity_time_property: {
1444
+ # immunity_time: 1, # required
1445
+ # },
1446
+ # },
1408
1447
  # },
1409
1448
  # ],
1410
1449
  # visibility_config: { # required
@@ -1514,6 +1553,11 @@ module Aws::WAFV2
1514
1553
  # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1515
1554
  # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
1516
1555
  #
1556
+ # @option params [Types::CaptchaConfig] :captcha_config
1557
+ # Specifies how WAF should handle `CAPTCHA` evaluations for rules that
1558
+ # don't have their own `CaptchaConfig` settings. If you don't specify
1559
+ # this, WAF uses its default settings for `CaptchaConfig`.
1560
+ #
1517
1561
  # @return [Types::CreateWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1518
1562
  #
1519
1563
  # * {Types::CreateWebACLResponse#summary #summary} => Types::WebACLSummary
@@ -1873,6 +1917,16 @@ module Aws::WAFV2
1873
1917
  # ],
1874
1918
  # },
1875
1919
  # },
1920
+ # captcha: {
1921
+ # custom_request_handling: {
1922
+ # insert_headers: [ # required
1923
+ # {
1924
+ # name: "CustomHTTPHeaderName", # required
1925
+ # value: "CustomHTTPHeaderValue", # required
1926
+ # },
1927
+ # ],
1928
+ # },
1929
+ # },
1876
1930
  # },
1877
1931
  # override_action: {
1878
1932
  # count: {
@@ -1898,6 +1952,11 @@ module Aws::WAFV2
1898
1952
  # cloud_watch_metrics_enabled: false, # required
1899
1953
  # metric_name: "MetricName", # required
1900
1954
  # },
1955
+ # captcha_config: {
1956
+ # immunity_time_property: {
1957
+ # immunity_time: 1, # required
1958
+ # },
1959
+ # },
1901
1960
  # },
1902
1961
  # ],
1903
1962
  # visibility_config: { # required
@@ -1917,6 +1976,11 @@ module Aws::WAFV2
1917
1976
  # content: "ResponseContent", # required
1918
1977
  # },
1919
1978
  # },
1979
+ # captcha_config: {
1980
+ # immunity_time_property: {
1981
+ # immunity_time: 1, # required
1982
+ # },
1983
+ # },
1920
1984
  # })
1921
1985
  #
1922
1986
  # @example Response structure
@@ -2319,6 +2383,9 @@ module Aws::WAFV2
2319
2383
  # resp.rules[0].action.count.custom_request_handling.insert_headers #=> Array
2320
2384
  # resp.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
2321
2385
  # resp.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
2386
+ # resp.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
2387
+ # resp.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
2388
+ # resp.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
2322
2389
  # resp.label_namespace #=> String
2323
2390
  # resp.available_labels #=> Array
2324
2391
  # resp.available_labels[0].name #=> String
@@ -2471,7 +2538,7 @@ module Aws::WAFV2
2471
2538
  # resp.logging_configuration.logging_filter.filters[0].behavior #=> String, one of "KEEP", "DROP"
2472
2539
  # resp.logging_configuration.logging_filter.filters[0].requirement #=> String, one of "MEETS_ALL", "MEETS_ANY"
2473
2540
  # 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"
2541
+ # resp.logging_configuration.logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT", "CAPTCHA", "EXCLUDED_AS_COUNT"
2475
2542
  # resp.logging_configuration.logging_filter.filters[0].conditions[0].label_name_condition.label_name #=> String
2476
2543
  # resp.logging_configuration.logging_filter.default_behavior #=> String, one of "KEEP", "DROP"
2477
2544
  #
@@ -2888,6 +2955,9 @@ module Aws::WAFV2
2888
2955
  # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers #=> Array
2889
2956
  # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
2890
2957
  # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
2958
+ # resp.rule_group.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
2959
+ # resp.rule_group.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
2960
+ # resp.rule_group.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
2891
2961
  # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
2892
2962
  # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
2893
2963
  # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
@@ -2896,6 +2966,7 @@ module Aws::WAFV2
2896
2966
  # resp.rule_group.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
2897
2967
  # resp.rule_group.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
2898
2968
  # resp.rule_group.rules[0].visibility_config.metric_name #=> String
2969
+ # resp.rule_group.rules[0].captcha_config.immunity_time_property.immunity_time #=> Integer
2899
2970
  # resp.rule_group.visibility_config.sampled_requests_enabled #=> Boolean
2900
2971
  # resp.rule_group.visibility_config.cloud_watch_metrics_enabled #=> Boolean
2901
2972
  # resp.rule_group.visibility_config.metric_name #=> String
@@ -3009,6 +3080,9 @@ module Aws::WAFV2
3009
3080
  # resp.sampled_requests[0].response_code_sent #=> Integer
3010
3081
  # resp.sampled_requests[0].labels #=> Array
3011
3082
  # resp.sampled_requests[0].labels[0].name #=> String
3083
+ # resp.sampled_requests[0].captcha_response.response_code #=> Integer
3084
+ # resp.sampled_requests[0].captcha_response.solve_timestamp #=> Integer
3085
+ # resp.sampled_requests[0].captcha_response.failure_reason #=> String, one of "TOKEN_MISSING", "TOKEN_EXPIRED"
3012
3086
  # resp.population_size #=> Integer
3013
3087
  # resp.time_window.start_time #=> Time
3014
3088
  # resp.time_window.end_time #=> Time
@@ -3177,6 +3251,9 @@ module Aws::WAFV2
3177
3251
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers #=> Array
3178
3252
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
3179
3253
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
3254
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
3255
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
3256
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
3180
3257
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
3181
3258
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
3182
3259
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
@@ -3185,6 +3262,7 @@ module Aws::WAFV2
3185
3262
  # resp.web_acl.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
3186
3263
  # resp.web_acl.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
3187
3264
  # resp.web_acl.rules[0].visibility_config.metric_name #=> String
3265
+ # resp.web_acl.rules[0].captcha_config.immunity_time_property.immunity_time #=> Integer
3188
3266
  # resp.web_acl.visibility_config.sampled_requests_enabled #=> Boolean
3189
3267
  # resp.web_acl.visibility_config.cloud_watch_metrics_enabled #=> Boolean
3190
3268
  # resp.web_acl.visibility_config.metric_name #=> String
@@ -3396,6 +3474,7 @@ module Aws::WAFV2
3396
3474
  # resp.web_acl.custom_response_bodies #=> Hash
3397
3475
  # resp.web_acl.custom_response_bodies["EntityName"].content_type #=> String, one of "TEXT_PLAIN", "TEXT_HTML", "APPLICATION_JSON"
3398
3476
  # resp.web_acl.custom_response_bodies["EntityName"].content #=> String
3477
+ # resp.web_acl.captcha_config.immunity_time_property.immunity_time #=> Integer
3399
3478
  # resp.lock_token #=> String
3400
3479
  #
3401
3480
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACL AWS API Documentation
@@ -3539,6 +3618,9 @@ module Aws::WAFV2
3539
3618
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers #=> Array
3540
3619
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
3541
3620
  # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
3621
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers #=> Array
3622
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].name #=> String
3623
+ # resp.web_acl.rules[0].action.captcha.custom_request_handling.insert_headers[0].value #=> String
3542
3624
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
3543
3625
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
3544
3626
  # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
@@ -3547,6 +3629,7 @@ module Aws::WAFV2
3547
3629
  # resp.web_acl.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
3548
3630
  # resp.web_acl.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
3549
3631
  # resp.web_acl.rules[0].visibility_config.metric_name #=> String
3632
+ # resp.web_acl.rules[0].captcha_config.immunity_time_property.immunity_time #=> Integer
3550
3633
  # resp.web_acl.visibility_config.sampled_requests_enabled #=> Boolean
3551
3634
  # resp.web_acl.visibility_config.cloud_watch_metrics_enabled #=> Boolean
3552
3635
  # resp.web_acl.visibility_config.metric_name #=> String
@@ -3758,6 +3841,7 @@ module Aws::WAFV2
3758
3841
  # resp.web_acl.custom_response_bodies #=> Hash
3759
3842
  # resp.web_acl.custom_response_bodies["EntityName"].content_type #=> String, one of "TEXT_PLAIN", "TEXT_HTML", "APPLICATION_JSON"
3760
3843
  # resp.web_acl.custom_response_bodies["EntityName"].content #=> String
3844
+ # resp.web_acl.captcha_config.immunity_time_property.immunity_time #=> Integer
3761
3845
  #
3762
3846
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACLForResource AWS API Documentation
3763
3847
  #
@@ -3963,7 +4047,7 @@ module Aws::WAFV2
3963
4047
 
3964
4048
  # Retrieves an array of your LoggingConfiguration objects.
3965
4049
  #
3966
- # @option params [String] :scope
4050
+ # @option params [required, String] :scope
3967
4051
  # Specifies whether this is for an Amazon CloudFront distribution or for
3968
4052
  # a regional application. A regional application can be an Application
3969
4053
  # Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync
@@ -3998,7 +4082,7 @@ module Aws::WAFV2
3998
4082
  # @example Request syntax with placeholder values
3999
4083
  #
4000
4084
  # resp = client.list_logging_configurations({
4001
- # scope: "CLOUDFRONT", # accepts CLOUDFRONT, REGIONAL
4085
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
4002
4086
  # next_marker: "NextMarker",
4003
4087
  # limit: 1,
4004
4088
  # })
@@ -4021,7 +4105,7 @@ module Aws::WAFV2
4021
4105
  # resp.logging_configurations[0].logging_filter.filters[0].behavior #=> String, one of "KEEP", "DROP"
4022
4106
  # resp.logging_configurations[0].logging_filter.filters[0].requirement #=> String, one of "MEETS_ALL", "MEETS_ANY"
4023
4107
  # 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"
4108
+ # resp.logging_configurations[0].logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT", "CAPTCHA", "EXCLUDED_AS_COUNT"
4025
4109
  # resp.logging_configurations[0].logging_filter.filters[0].conditions[0].label_name_condition.label_name #=> String
4026
4110
  # resp.logging_configurations[0].logging_filter.default_behavior #=> String, one of "KEEP", "DROP"
4027
4111
  # resp.next_marker #=> String
@@ -4395,28 +4479,22 @@ module Aws::WAFV2
4395
4479
  # You can access information about all traffic that WAF inspects using
4396
4480
  # the following steps:
4397
4481
  #
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`.
4482
+ # 1. Create your logging destination. You can use an Amazon CloudWatch
4483
+ # Logs log group, an Amazon Simple Storage Service (Amazon S3)
4484
+ # bucket, or an Amazon Kinesis Data Firehose. For information about
4485
+ # configuring logging destinations and the permissions that are
4486
+ # required for each, see [Logging web ACL traffic information][1] in
4487
+ # the *WAF Developer Guide*.
4406
4488
  #
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
4489
+ # 2. Associate your logging destination to your web ACL using a
4413
4490
  # `PutLoggingConfiguration` request.
4414
4491
  #
4415
4492
  # 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*.
4493
+ # request, WAF creates an additional role or policy that is required to
4494
+ # write logs to the logging destination. For an Amazon CloudWatch Logs
4495
+ # log group, WAF creates a resource policy on the log group. For an
4496
+ # Amazon S3 bucket, WAF creates a bucket policy. For an Amazon Kinesis
4497
+ # Data Firehose, WAF creates a service-linked role.
4420
4498
  #
4421
4499
  # <note markdown="1"> This operation completely replaces the mutable specifications that you
4422
4500
  # already have for the logging configuration with the ones that you
@@ -4481,7 +4559,7 @@ module Aws::WAFV2
4481
4559
  # conditions: [ # required
4482
4560
  # {
4483
4561
  # action_condition: {
4484
- # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT
4562
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, COUNT, CAPTCHA, EXCLUDED_AS_COUNT
4485
4563
  # },
4486
4564
  # label_name_condition: {
4487
4565
  # label_name: "LabelName", # required
@@ -4512,7 +4590,7 @@ module Aws::WAFV2
4512
4590
  # resp.logging_configuration.logging_filter.filters[0].behavior #=> String, one of "KEEP", "DROP"
4513
4591
  # resp.logging_configuration.logging_filter.filters[0].requirement #=> String, one of "MEETS_ALL", "MEETS_ANY"
4514
4592
  # 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"
4593
+ # resp.logging_configuration.logging_filter.filters[0].conditions[0].action_condition.action #=> String, one of "ALLOW", "BLOCK", "COUNT", "CAPTCHA", "EXCLUDED_AS_COUNT"
4516
4594
  # resp.logging_configuration.logging_filter.filters[0].conditions[0].label_name_condition.label_name #=> String
4517
4595
  # resp.logging_configuration.logging_filter.default_behavior #=> String, one of "KEEP", "DROP"
4518
4596
  #
@@ -5460,6 +5538,16 @@ module Aws::WAFV2
5460
5538
  # ],
5461
5539
  # },
5462
5540
  # },
5541
+ # captcha: {
5542
+ # custom_request_handling: {
5543
+ # insert_headers: [ # required
5544
+ # {
5545
+ # name: "CustomHTTPHeaderName", # required
5546
+ # value: "CustomHTTPHeaderValue", # required
5547
+ # },
5548
+ # ],
5549
+ # },
5550
+ # },
5463
5551
  # },
5464
5552
  # override_action: {
5465
5553
  # count: {
@@ -5485,6 +5573,11 @@ module Aws::WAFV2
5485
5573
  # cloud_watch_metrics_enabled: false, # required
5486
5574
  # metric_name: "MetricName", # required
5487
5575
  # },
5576
+ # captcha_config: {
5577
+ # immunity_time_property: {
5578
+ # immunity_time: 1, # required
5579
+ # },
5580
+ # },
5488
5581
  # },
5489
5582
  # ],
5490
5583
  # visibility_config: { # required
@@ -5605,6 +5698,11 @@ module Aws::WAFV2
5605
5698
  # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5606
5699
  # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
5607
5700
  #
5701
+ # @option params [Types::CaptchaConfig] :captcha_config
5702
+ # Specifies how WAF should handle `CAPTCHA` evaluations for rules that
5703
+ # don't have their own `CaptchaConfig` settings. If you don't specify
5704
+ # this, WAF uses its default settings for `CaptchaConfig`.
5705
+ #
5608
5706
  # @return [Types::UpdateWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5609
5707
  #
5610
5708
  # * {Types::UpdateWebACLResponse#next_lock_token #next_lock_token} => String
@@ -5965,6 +6063,16 @@ module Aws::WAFV2
5965
6063
  # ],
5966
6064
  # },
5967
6065
  # },
6066
+ # captcha: {
6067
+ # custom_request_handling: {
6068
+ # insert_headers: [ # required
6069
+ # {
6070
+ # name: "CustomHTTPHeaderName", # required
6071
+ # value: "CustomHTTPHeaderValue", # required
6072
+ # },
6073
+ # ],
6074
+ # },
6075
+ # },
5968
6076
  # },
5969
6077
  # override_action: {
5970
6078
  # count: {
@@ -5990,6 +6098,11 @@ module Aws::WAFV2
5990
6098
  # cloud_watch_metrics_enabled: false, # required
5991
6099
  # metric_name: "MetricName", # required
5992
6100
  # },
6101
+ # captcha_config: {
6102
+ # immunity_time_property: {
6103
+ # immunity_time: 1, # required
6104
+ # },
6105
+ # },
5993
6106
  # },
5994
6107
  # ],
5995
6108
  # visibility_config: { # required
@@ -6004,6 +6117,11 @@ module Aws::WAFV2
6004
6117
  # content: "ResponseContent", # required
6005
6118
  # },
6006
6119
  # },
6120
+ # captcha_config: {
6121
+ # immunity_time_property: {
6122
+ # immunity_time: 1, # required
6123
+ # },
6124
+ # },
6007
6125
  # })
6008
6126
  #
6009
6127
  # @example Response structure
@@ -6032,7 +6150,7 @@ module Aws::WAFV2
6032
6150
  params: params,
6033
6151
  config: config)
6034
6152
  context[:gem_name] = 'aws-sdk-wafv2'
6035
- context[:gem_version] = '1.27.0'
6153
+ context[:gem_version] = '1.31.0'
6036
6154
  Seahorse::Client::Request.new(handlers, context)
6037
6155
  end
6038
6156
 
@@ -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