aws-sdk-wafv2 1.14.0 → 1.19.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: 3222f85c3e2de0ef0a6549850adec758bb9ef89811f7e89e4f8c949f381e4db3
4
- data.tar.gz: 5e6396431c68d0514dc647218bf9b9e8c4cd1c736a3443f840f526c1a10a0f3c
3
+ metadata.gz: 42609a9f60f039c6c55fb1738c2a7422486d60131feb323f89b68324475bbb72
4
+ data.tar.gz: 899c57a17a467ead8c055d5900fac8ec248766c7e65eb2d98739613c3f212f8f
5
5
  SHA512:
6
- metadata.gz: e2da24c94a98fef65504eb98d4ace3e65f0b7a8b6fc1a2e01e2864dd75307bb40527c97fef228aa58288c9c0c99759b0cbea9e80255be52ed1ef1686b0097882
7
- data.tar.gz: 1536f8a7f11c678c71f3b8c8ec4ef4ca065f68a7d458aa5a8e2fd6c5cc44a4785af5a0c09609e9ecc3353bb698d5b306c0ebdcc78e7719b68b68334b50f17458
6
+ metadata.gz: f586e630c69ecb878b8b5e3d5d744e31a718323baaa941c58e19b45d312ad5232beb03a31f84c8bdb6b4e2034212d75279ae02fa8d7ec564dd0f90c60a7d258c
7
+ data.tar.gz: 6c9e00d7434304df8fcffeb5797074065acbde25bbf2af3e717df8285ac4281c3bb04462955922b9ec77981c2045ee9281eae0ae558d37b0651b56ed7834ec20
data/CHANGELOG.md ADDED
@@ -0,0 +1,108 @@
1
+ Unreleased Changes
2
+ ------------------
3
+
4
+ 1.19.0 (2021-03-29)
5
+ ------------------
6
+
7
+ * Feature - Added custom request handling and custom response support in rule actions and default action; Added the option to inspect the web request body as parsed and filtered JSON.
8
+
9
+ 1.18.0 (2021-03-11)
10
+ ------------------
11
+
12
+ * Feature - Correct the documentation about JSON body parsing behavior and IP set update behavior
13
+
14
+ 1.17.0 (2021-03-10)
15
+ ------------------
16
+
17
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
18
+
19
+ 1.16.0 (2021-02-12)
20
+ ------------------
21
+
22
+ * Feature - Added the option to inspect the web request body as parsed and filtered JSON (new FieldToMatch type JsonBody), in addition to the existing option to inspect the web request body as plain text.
23
+
24
+ 1.15.0 (2021-02-02)
25
+ ------------------
26
+
27
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
28
+
29
+ 1.14.0 (2020-10-01)
30
+ ------------------
31
+
32
+ * Feature - AWS WAF is now available for AWS AppSync GraphQL APIs. AWS WAF protects against malicious attacks with AWS Managed Rules or your own custom rules. For more information see the AWS WAF Developer Guide.
33
+
34
+ 1.13.0 (2020-09-30)
35
+ ------------------
36
+
37
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
38
+
39
+ 1.12.0 (2020-09-15)
40
+ ------------------
41
+
42
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
43
+
44
+ 1.11.0 (2020-08-25)
45
+ ------------------
46
+
47
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
48
+
49
+ 1.10.0 (2020-07-31)
50
+ ------------------
51
+
52
+ * Feature - Add ManagedByFirewallManager flag to the logging configuration, which indicates whether AWS Firewall Manager controls the configuration.
53
+
54
+ 1.9.0 (2020-07-09)
55
+ ------------------
56
+
57
+ * Feature - Added the option to use IP addresses from an HTTP header that you specify, instead of using the web request origin. Available for IP set matching, geo matching, and rate-based rule count aggregation.
58
+
59
+ 1.8.0 (2020-07-02)
60
+ ------------------
61
+
62
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
63
+
64
+ 1.7.0 (2020-06-23)
65
+ ------------------
66
+
67
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
68
+
69
+ 1.6.1 (2020-06-11)
70
+ ------------------
71
+
72
+ * Issue - Republish previous version with correct dependency on `aws-sdk-core`.
73
+
74
+ 1.6.0 (2020-06-10)
75
+ ------------------
76
+
77
+ * Issue - This version has been yanked. (#2327).
78
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
79
+
80
+ 1.5.0 (2020-05-28)
81
+ ------------------
82
+
83
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
84
+
85
+ 1.4.0 (2020-05-07)
86
+ ------------------
87
+
88
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
89
+
90
+ 1.3.0 (2020-03-31)
91
+ ------------------
92
+
93
+ * Feature - Added support for AWS Firewall Manager for WAFv2 and PermissionPolicy APIs for WAFv2.
94
+
95
+ 1.2.0 (2020-03-09)
96
+ ------------------
97
+
98
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
99
+
100
+ 1.1.0 (2020-02-21)
101
+ ------------------
102
+
103
+ * Feature - Documentation updates for AWS WAF (wafv2) to correct the guidance for associating a web ACL to a CloudFront distribution.
104
+
105
+ 1.0.0 (2019-11-25)
106
+ ------------------
107
+
108
+ * Feature - Initial release of `aws-sdk-wafv2`.
data/LICENSE.txt ADDED
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.19.0
data/lib/aws-sdk-wafv2.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-wafv2/customizations'
48
48
  # @!group service
49
49
  module Aws::WAFV2
50
50
 
51
- GEM_VERSION = '1.14.0'
51
+ GEM_VERSION = '1.19.0'
52
52
 
53
53
  end
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -337,13 +337,6 @@ module Aws::WAFV2
337
337
 
338
338
  # @!group API Operations
339
339
 
340
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
341
- # in November, 2019. For information, including how to migrate your AWS
342
- # WAF resources from the prior release, see the [AWS WAF Developer
343
- # Guide][1].
344
- #
345
- # </note>
346
- #
347
340
  # Associates a Web ACL with a regional application resource, to protect
348
341
  # the resource. A regional application can be an Application Load
349
342
  # Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL API.
@@ -352,12 +345,11 @@ module Aws::WAFV2
352
345
  # distribution configuration. To associate a Web ACL, in the CloudFront
353
346
  # call `UpdateDistribution`, set the web ACL ID to the Amazon Resource
354
347
  # Name (ARN) of the Web ACL. For information, see
355
- # [UpdateDistribution][2].
348
+ # [UpdateDistribution][1].
356
349
  #
357
350
  #
358
351
  #
359
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
360
- # [2]: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html
352
+ # [1]: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html
361
353
  #
362
354
  # @option params [required, String] :web_acl_arn
363
355
  # The Amazon Resource Name (ARN) of the Web ACL that you want to
@@ -397,13 +389,6 @@ module Aws::WAFV2
397
389
  req.send_request(options)
398
390
  end
399
391
 
400
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
401
- # in November, 2019. For information, including how to migrate your AWS
402
- # WAF resources from the prior release, see the [AWS WAF Developer
403
- # Guide][1].
404
- #
405
- # </note>
406
- #
407
392
  # Returns the web ACL capacity unit (WCU) requirements for a specified
408
393
  # scope and set of rules. You can use this to check the capacity
409
394
  # requirements for the rules you want to use in a RuleGroup or WebACL.
@@ -417,10 +402,6 @@ module Aws::WAFV2
417
402
  # web ACL WCU usage when they use a rule group. The WCU limit for web
418
403
  # ACLs is 1,500.
419
404
  #
420
- #
421
- #
422
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
423
- #
424
405
  # @option params [required, String] :scope
425
406
  # Specifies whether this is for an AWS CloudFront distribution or for a
426
407
  # regional application. A regional application can be an Application
@@ -471,6 +452,15 @@ module Aws::WAFV2
471
452
  # },
472
453
  # method: {
473
454
  # },
455
+ # json_body: {
456
+ # match_pattern: { # required
457
+ # all: {
458
+ # },
459
+ # included_paths: ["JsonPointerPath"],
460
+ # },
461
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
462
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
463
+ # },
474
464
  # },
475
465
  # text_transformations: [ # required
476
466
  # {
@@ -498,6 +488,15 @@ module Aws::WAFV2
498
488
  # },
499
489
  # method: {
500
490
  # },
491
+ # json_body: {
492
+ # match_pattern: { # required
493
+ # all: {
494
+ # },
495
+ # included_paths: ["JsonPointerPath"],
496
+ # },
497
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
498
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
499
+ # },
501
500
  # },
502
501
  # text_transformations: [ # required
503
502
  # {
@@ -524,6 +523,15 @@ module Aws::WAFV2
524
523
  # },
525
524
  # method: {
526
525
  # },
526
+ # json_body: {
527
+ # match_pattern: { # required
528
+ # all: {
529
+ # },
530
+ # included_paths: ["JsonPointerPath"],
531
+ # },
532
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
533
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
534
+ # },
527
535
  # },
528
536
  # text_transformations: [ # required
529
537
  # {
@@ -550,6 +558,15 @@ module Aws::WAFV2
550
558
  # },
551
559
  # method: {
552
560
  # },
561
+ # json_body: {
562
+ # match_pattern: { # required
563
+ # all: {
564
+ # },
565
+ # included_paths: ["JsonPointerPath"],
566
+ # },
567
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
568
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
569
+ # },
553
570
  # },
554
571
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
555
572
  # size: 1, # required
@@ -602,6 +619,15 @@ module Aws::WAFV2
602
619
  # },
603
620
  # method: {
604
621
  # },
622
+ # json_body: {
623
+ # match_pattern: { # required
624
+ # all: {
625
+ # },
626
+ # included_paths: ["JsonPointerPath"],
627
+ # },
628
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
629
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
630
+ # },
605
631
  # },
606
632
  # text_transformations: [ # required
607
633
  # {
@@ -652,14 +678,48 @@ module Aws::WAFV2
652
678
  # },
653
679
  # action: {
654
680
  # block: {
681
+ # custom_response: {
682
+ # response_code: 1, # required
683
+ # custom_response_body_key: "EntityName",
684
+ # response_headers: [
685
+ # {
686
+ # name: "CustomHTTPHeaderName", # required
687
+ # value: "CustomHTTPHeaderValue", # required
688
+ # },
689
+ # ],
690
+ # },
655
691
  # },
656
692
  # allow: {
693
+ # custom_request_handling: {
694
+ # insert_headers: [ # required
695
+ # {
696
+ # name: "CustomHTTPHeaderName", # required
697
+ # value: "CustomHTTPHeaderValue", # required
698
+ # },
699
+ # ],
700
+ # },
657
701
  # },
658
702
  # count: {
703
+ # custom_request_handling: {
704
+ # insert_headers: [ # required
705
+ # {
706
+ # name: "CustomHTTPHeaderName", # required
707
+ # value: "CustomHTTPHeaderValue", # required
708
+ # },
709
+ # ],
710
+ # },
659
711
  # },
660
712
  # },
661
713
  # override_action: {
662
714
  # count: {
715
+ # custom_request_handling: {
716
+ # insert_headers: [ # required
717
+ # {
718
+ # name: "CustomHTTPHeaderName", # required
719
+ # value: "CustomHTTPHeaderValue", # required
720
+ # },
721
+ # ],
722
+ # },
663
723
  # },
664
724
  # none: {
665
725
  # },
@@ -686,23 +746,12 @@ module Aws::WAFV2
686
746
  req.send_request(options)
687
747
  end
688
748
 
689
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
690
- # in November, 2019. For information, including how to migrate your AWS
691
- # WAF resources from the prior release, see the [AWS WAF Developer
692
- # Guide][1].
693
- #
694
- # </note>
695
- #
696
749
  # Creates an IPSet, which you use to identify web requests that
697
750
  # originate from specific IP addresses or ranges of IP addresses. For
698
751
  # example, if you're receiving a lot of requests from a ranges of IP
699
752
  # addresses, you can configure AWS WAF to block them using an IPSet that
700
753
  # lists those IP addresses.
701
754
  #
702
- #
703
- #
704
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
705
- #
706
755
  # @option params [required, String] :name
707
756
  # The name of the IP set. You cannot change the name of an `IPSet` after
708
757
  # you create it.
@@ -722,8 +771,7 @@ module Aws::WAFV2
722
771
  # * API and SDKs - For all calls, use the Region endpoint us-east-1.
723
772
  #
724
773
  # @option params [String] :description
725
- # A description of the IP set that helps with identification. You cannot
726
- # change the description of an IP set after you create it.
774
+ # A description of the IP set that helps with identification.
727
775
  #
728
776
  # @option params [required, String] :ip_address_version
729
777
  # Specify IPV4 or IPV6.
@@ -731,8 +779,8 @@ module Aws::WAFV2
731
779
  # @option params [required, Array<String>] :addresses
732
780
  # Contains an array of strings that specify one or more IP addresses or
733
781
  # blocks of IP addresses in Classless Inter-Domain Routing (CIDR)
734
- # notation. AWS WAF supports all address ranges for IP versions IPv4 and
735
- # IPv6.
782
+ # notation. AWS WAF supports all IPv4 and IPv6 CIDR ranges except for
783
+ # /0.
736
784
  #
737
785
  # Examples:
738
786
  #
@@ -800,21 +848,10 @@ module Aws::WAFV2
800
848
  req.send_request(options)
801
849
  end
802
850
 
803
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
804
- # in November, 2019. For information, including how to migrate your AWS
805
- # WAF resources from the prior release, see the [AWS WAF Developer
806
- # Guide][1].
807
- #
808
- # </note>
809
- #
810
851
  # Creates a RegexPatternSet, which you reference in a
811
852
  # RegexPatternSetReferenceStatement, to have AWS WAF inspect a web
812
853
  # request component for the specified patterns.
813
854
  #
814
- #
815
- #
816
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
817
- #
818
855
  # @option params [required, String] :name
819
856
  # The name of the set. You cannot change the name after you create the
820
857
  # set.
@@ -834,8 +871,7 @@ module Aws::WAFV2
834
871
  # * API and SDKs - For all calls, use the Region endpoint us-east-1.
835
872
  #
836
873
  # @option params [String] :description
837
- # A description of the set that helps with identification. You cannot
838
- # change the description of a set after you create it.
874
+ # A description of the set that helps with identification.
839
875
  #
840
876
  # @option params [required, Array<Types::Regex>] :regular_expression_list
841
877
  # Array of regular expression strings.
@@ -883,13 +919,6 @@ module Aws::WAFV2
883
919
  req.send_request(options)
884
920
  end
885
921
 
886
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
887
- # in November, 2019. For information, including how to migrate your AWS
888
- # WAF resources from the prior release, see the [AWS WAF Developer
889
- # Guide][1].
890
- #
891
- # </note>
892
- #
893
922
  # Creates a RuleGroup per the specifications provided.
894
923
  #
895
924
  # A rule group defines a collection of rules to inspect and control web
@@ -898,10 +927,6 @@ module Aws::WAFV2
898
927
  # you must stay within the capacity. This allows others to reuse the
899
928
  # rule group with confidence in its capacity requirements.
900
929
  #
901
- #
902
- #
903
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
904
- #
905
930
  # @option params [required, String] :name
906
931
  # The name of the rule group. You cannot change the name of a rule group
907
932
  # after you create it.
@@ -938,8 +963,7 @@ module Aws::WAFV2
938
963
  # ACLs is 1,500.
939
964
  #
940
965
  # @option params [String] :description
941
- # A description of the rule group that helps with identification. You
942
- # cannot change the description of a rule group after you create it.
966
+ # A description of the rule group that helps with identification.
943
967
  #
944
968
  # @option params [Array<Types::Rule>] :rules
945
969
  # The Rule statements used to identify the web requests that you want to
@@ -954,6 +978,26 @@ module Aws::WAFV2
954
978
  # @option params [Array<Types::Tag>] :tags
955
979
  # An array of key:value pairs to associate with the resource.
956
980
  #
981
+ # @option params [Hash<String,Types::CustomResponseBody>] :custom_response_bodies
982
+ # A map of custom response keys and content bodies. When you create a
983
+ # rule with a block action, you can send a custom response to the web
984
+ # request. You define these for the rule group, and then use them in the
985
+ # rules that you define in the rule group.
986
+ #
987
+ # For information about customizing web requests and responses, see
988
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS WAF
989
+ # Developer Guide][2].
990
+ #
991
+ # For information about the limits on count and size for custom request
992
+ # and response settings, see [AWS WAF quotas][3] in the [AWS WAF
993
+ # Developer Guide][2].
994
+ #
995
+ #
996
+ #
997
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
998
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
999
+ # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
1000
+ #
957
1001
  # @return [Types::CreateRuleGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
958
1002
  #
959
1003
  # * {Types::CreateRuleGroupResponse#summary #summary} => Types::RuleGroupSummary
@@ -989,6 +1033,15 @@ module Aws::WAFV2
989
1033
  # },
990
1034
  # method: {
991
1035
  # },
1036
+ # json_body: {
1037
+ # match_pattern: { # required
1038
+ # all: {
1039
+ # },
1040
+ # included_paths: ["JsonPointerPath"],
1041
+ # },
1042
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1043
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1044
+ # },
992
1045
  # },
993
1046
  # text_transformations: [ # required
994
1047
  # {
@@ -1016,6 +1069,15 @@ module Aws::WAFV2
1016
1069
  # },
1017
1070
  # method: {
1018
1071
  # },
1072
+ # json_body: {
1073
+ # match_pattern: { # required
1074
+ # all: {
1075
+ # },
1076
+ # included_paths: ["JsonPointerPath"],
1077
+ # },
1078
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1079
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1080
+ # },
1019
1081
  # },
1020
1082
  # text_transformations: [ # required
1021
1083
  # {
@@ -1042,6 +1104,15 @@ module Aws::WAFV2
1042
1104
  # },
1043
1105
  # method: {
1044
1106
  # },
1107
+ # json_body: {
1108
+ # match_pattern: { # required
1109
+ # all: {
1110
+ # },
1111
+ # included_paths: ["JsonPointerPath"],
1112
+ # },
1113
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1114
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1115
+ # },
1045
1116
  # },
1046
1117
  # text_transformations: [ # required
1047
1118
  # {
@@ -1068,6 +1139,15 @@ module Aws::WAFV2
1068
1139
  # },
1069
1140
  # method: {
1070
1141
  # },
1142
+ # json_body: {
1143
+ # match_pattern: { # required
1144
+ # all: {
1145
+ # },
1146
+ # included_paths: ["JsonPointerPath"],
1147
+ # },
1148
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1149
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1150
+ # },
1071
1151
  # },
1072
1152
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
1073
1153
  # size: 1, # required
@@ -1120,6 +1200,15 @@ module Aws::WAFV2
1120
1200
  # },
1121
1201
  # method: {
1122
1202
  # },
1203
+ # json_body: {
1204
+ # match_pattern: { # required
1205
+ # all: {
1206
+ # },
1207
+ # included_paths: ["JsonPointerPath"],
1208
+ # },
1209
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1210
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1211
+ # },
1123
1212
  # },
1124
1213
  # text_transformations: [ # required
1125
1214
  # {
@@ -1170,14 +1259,48 @@ module Aws::WAFV2
1170
1259
  # },
1171
1260
  # action: {
1172
1261
  # block: {
1262
+ # custom_response: {
1263
+ # response_code: 1, # required
1264
+ # custom_response_body_key: "EntityName",
1265
+ # response_headers: [
1266
+ # {
1267
+ # name: "CustomHTTPHeaderName", # required
1268
+ # value: "CustomHTTPHeaderValue", # required
1269
+ # },
1270
+ # ],
1271
+ # },
1173
1272
  # },
1174
1273
  # allow: {
1274
+ # custom_request_handling: {
1275
+ # insert_headers: [ # required
1276
+ # {
1277
+ # name: "CustomHTTPHeaderName", # required
1278
+ # value: "CustomHTTPHeaderValue", # required
1279
+ # },
1280
+ # ],
1281
+ # },
1175
1282
  # },
1176
1283
  # count: {
1284
+ # custom_request_handling: {
1285
+ # insert_headers: [ # required
1286
+ # {
1287
+ # name: "CustomHTTPHeaderName", # required
1288
+ # value: "CustomHTTPHeaderValue", # required
1289
+ # },
1290
+ # ],
1291
+ # },
1177
1292
  # },
1178
1293
  # },
1179
1294
  # override_action: {
1180
1295
  # count: {
1296
+ # custom_request_handling: {
1297
+ # insert_headers: [ # required
1298
+ # {
1299
+ # name: "CustomHTTPHeaderName", # required
1300
+ # value: "CustomHTTPHeaderValue", # required
1301
+ # },
1302
+ # ],
1303
+ # },
1181
1304
  # },
1182
1305
  # none: {
1183
1306
  # },
@@ -1200,6 +1323,12 @@ module Aws::WAFV2
1200
1323
  # value: "TagValue", # required
1201
1324
  # },
1202
1325
  # ],
1326
+ # custom_response_bodies: {
1327
+ # "EntityName" => {
1328
+ # content_type: "TEXT_PLAIN", # required, accepts TEXT_PLAIN, TEXT_HTML, APPLICATION_JSON
1329
+ # content: "ResponseContent", # required
1330
+ # },
1331
+ # },
1203
1332
  # })
1204
1333
  #
1205
1334
  # @example Response structure
@@ -1219,13 +1348,6 @@ module Aws::WAFV2
1219
1348
  req.send_request(options)
1220
1349
  end
1221
1350
 
1222
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
1223
- # in November, 2019. For information, including how to migrate your AWS
1224
- # WAF resources from the prior release, see the [AWS WAF Developer
1225
- # Guide][1].
1226
- #
1227
- # </note>
1228
- #
1229
1351
  # Creates a WebACL per the specifications provided.
1230
1352
  #
1231
1353
  # A Web ACL defines a collection of rules to use to inspect and control
@@ -1238,10 +1360,6 @@ module Aws::WAFV2
1238
1360
  # resources can be Amazon CloudFront, an Amazon API Gateway REST API, an
1239
1361
  # Application Load Balancer, or an AWS AppSync GraphQL API.
1240
1362
  #
1241
- #
1242
- #
1243
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1244
- #
1245
1363
  # @option params [required, String] :name
1246
1364
  # The name of the Web ACL. You cannot change the name of a Web ACL after
1247
1365
  # you create it.
@@ -1265,8 +1383,7 @@ module Aws::WAFV2
1265
1383
  # match.
1266
1384
  #
1267
1385
  # @option params [String] :description
1268
- # A description of the Web ACL that helps with identification. You
1269
- # cannot change the description of a Web ACL after you create it.
1386
+ # A description of the Web ACL that helps with identification.
1270
1387
  #
1271
1388
  # @option params [Array<Types::Rule>] :rules
1272
1389
  # The Rule statements used to identify the web requests that you want to
@@ -1281,6 +1398,26 @@ module Aws::WAFV2
1281
1398
  # @option params [Array<Types::Tag>] :tags
1282
1399
  # An array of key:value pairs to associate with the resource.
1283
1400
  #
1401
+ # @option params [Hash<String,Types::CustomResponseBody>] :custom_response_bodies
1402
+ # A map of custom response keys and content bodies. When you create a
1403
+ # rule with a block action, you can send a custom response to the web
1404
+ # request. You define these for the web ACL, and then use them in the
1405
+ # rules and default actions that you define in the web ACL.
1406
+ #
1407
+ # For information about customizing web requests and responses, see
1408
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS WAF
1409
+ # Developer Guide][2].
1410
+ #
1411
+ # For information about the limits on count and size for custom request
1412
+ # and response settings, see [AWS WAF quotas][3] in the [AWS WAF
1413
+ # Developer Guide][2].
1414
+ #
1415
+ #
1416
+ #
1417
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
1418
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1419
+ # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
1420
+ #
1284
1421
  # @return [Types::CreateWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1285
1422
  #
1286
1423
  # * {Types::CreateWebACLResponse#summary #summary} => Types::WebACLSummary
@@ -1292,8 +1429,26 @@ module Aws::WAFV2
1292
1429
  # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
1293
1430
  # default_action: { # required
1294
1431
  # block: {
1432
+ # custom_response: {
1433
+ # response_code: 1, # required
1434
+ # custom_response_body_key: "EntityName",
1435
+ # response_headers: [
1436
+ # {
1437
+ # name: "CustomHTTPHeaderName", # required
1438
+ # value: "CustomHTTPHeaderValue", # required
1439
+ # },
1440
+ # ],
1441
+ # },
1295
1442
  # },
1296
1443
  # allow: {
1444
+ # custom_request_handling: {
1445
+ # insert_headers: [ # required
1446
+ # {
1447
+ # name: "CustomHTTPHeaderName", # required
1448
+ # value: "CustomHTTPHeaderValue", # required
1449
+ # },
1450
+ # ],
1451
+ # },
1297
1452
  # },
1298
1453
  # },
1299
1454
  # description: "EntityDescription",
@@ -1321,6 +1476,15 @@ module Aws::WAFV2
1321
1476
  # },
1322
1477
  # method: {
1323
1478
  # },
1479
+ # json_body: {
1480
+ # match_pattern: { # required
1481
+ # all: {
1482
+ # },
1483
+ # included_paths: ["JsonPointerPath"],
1484
+ # },
1485
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1486
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1487
+ # },
1324
1488
  # },
1325
1489
  # text_transformations: [ # required
1326
1490
  # {
@@ -1348,6 +1512,15 @@ module Aws::WAFV2
1348
1512
  # },
1349
1513
  # method: {
1350
1514
  # },
1515
+ # json_body: {
1516
+ # match_pattern: { # required
1517
+ # all: {
1518
+ # },
1519
+ # included_paths: ["JsonPointerPath"],
1520
+ # },
1521
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1522
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1523
+ # },
1351
1524
  # },
1352
1525
  # text_transformations: [ # required
1353
1526
  # {
@@ -1374,6 +1547,15 @@ module Aws::WAFV2
1374
1547
  # },
1375
1548
  # method: {
1376
1549
  # },
1550
+ # json_body: {
1551
+ # match_pattern: { # required
1552
+ # all: {
1553
+ # },
1554
+ # included_paths: ["JsonPointerPath"],
1555
+ # },
1556
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1557
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1558
+ # },
1377
1559
  # },
1378
1560
  # text_transformations: [ # required
1379
1561
  # {
@@ -1400,6 +1582,15 @@ module Aws::WAFV2
1400
1582
  # },
1401
1583
  # method: {
1402
1584
  # },
1585
+ # json_body: {
1586
+ # match_pattern: { # required
1587
+ # all: {
1588
+ # },
1589
+ # included_paths: ["JsonPointerPath"],
1590
+ # },
1591
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1592
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1593
+ # },
1403
1594
  # },
1404
1595
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
1405
1596
  # size: 1, # required
@@ -1452,6 +1643,15 @@ module Aws::WAFV2
1452
1643
  # },
1453
1644
  # method: {
1454
1645
  # },
1646
+ # json_body: {
1647
+ # match_pattern: { # required
1648
+ # all: {
1649
+ # },
1650
+ # included_paths: ["JsonPointerPath"],
1651
+ # },
1652
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1653
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1654
+ # },
1455
1655
  # },
1456
1656
  # text_transformations: [ # required
1457
1657
  # {
@@ -1502,14 +1702,48 @@ module Aws::WAFV2
1502
1702
  # },
1503
1703
  # action: {
1504
1704
  # block: {
1705
+ # custom_response: {
1706
+ # response_code: 1, # required
1707
+ # custom_response_body_key: "EntityName",
1708
+ # response_headers: [
1709
+ # {
1710
+ # name: "CustomHTTPHeaderName", # required
1711
+ # value: "CustomHTTPHeaderValue", # required
1712
+ # },
1713
+ # ],
1714
+ # },
1505
1715
  # },
1506
1716
  # allow: {
1717
+ # custom_request_handling: {
1718
+ # insert_headers: [ # required
1719
+ # {
1720
+ # name: "CustomHTTPHeaderName", # required
1721
+ # value: "CustomHTTPHeaderValue", # required
1722
+ # },
1723
+ # ],
1724
+ # },
1507
1725
  # },
1508
1726
  # count: {
1727
+ # custom_request_handling: {
1728
+ # insert_headers: [ # required
1729
+ # {
1730
+ # name: "CustomHTTPHeaderName", # required
1731
+ # value: "CustomHTTPHeaderValue", # required
1732
+ # },
1733
+ # ],
1734
+ # },
1509
1735
  # },
1510
1736
  # },
1511
1737
  # override_action: {
1512
1738
  # count: {
1739
+ # custom_request_handling: {
1740
+ # insert_headers: [ # required
1741
+ # {
1742
+ # name: "CustomHTTPHeaderName", # required
1743
+ # value: "CustomHTTPHeaderValue", # required
1744
+ # },
1745
+ # ],
1746
+ # },
1513
1747
  # },
1514
1748
  # none: {
1515
1749
  # },
@@ -1532,6 +1766,12 @@ module Aws::WAFV2
1532
1766
  # value: "TagValue", # required
1533
1767
  # },
1534
1768
  # ],
1769
+ # custom_response_bodies: {
1770
+ # "EntityName" => {
1771
+ # content_type: "TEXT_PLAIN", # required, accepts TEXT_PLAIN, TEXT_HTML, APPLICATION_JSON
1772
+ # content: "ResponseContent", # required
1773
+ # },
1774
+ # },
1535
1775
  # })
1536
1776
  #
1537
1777
  # @example Response structure
@@ -1594,19 +1834,8 @@ module Aws::WAFV2
1594
1834
  req.send_request(options)
1595
1835
  end
1596
1836
 
1597
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
1598
- # in November, 2019. For information, including how to migrate your AWS
1599
- # WAF resources from the prior release, see the [AWS WAF Developer
1600
- # Guide][1].
1601
- #
1602
- # </note>
1603
- #
1604
1837
  # Deletes the specified IPSet.
1605
1838
  #
1606
- #
1607
- #
1608
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1609
- #
1610
1839
  # @option params [required, String] :name
1611
1840
  # The name of the IP set. You cannot change the name of an `IPSet` after
1612
1841
  # you create it.
@@ -1660,19 +1889,8 @@ module Aws::WAFV2
1660
1889
  req.send_request(options)
1661
1890
  end
1662
1891
 
1663
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
1664
- # in November, 2019. For information, including how to migrate your AWS
1665
- # WAF resources from the prior release, see the [AWS WAF Developer
1666
- # Guide][1].
1667
- #
1668
- # </note>
1669
- #
1670
1892
  # Deletes the LoggingConfiguration from the specified web ACL.
1671
1893
  #
1672
- #
1673
- #
1674
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1675
- #
1676
1894
  # @option params [required, String] :resource_arn
1677
1895
  # The Amazon Resource Name (ARN) of the web ACL from which you want to
1678
1896
  # delete the LoggingConfiguration.
@@ -1721,19 +1939,8 @@ module Aws::WAFV2
1721
1939
  req.send_request(options)
1722
1940
  end
1723
1941
 
1724
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
1725
- # in November, 2019. For information, including how to migrate your AWS
1726
- # WAF resources from the prior release, see the [AWS WAF Developer
1727
- # Guide][1].
1728
- #
1729
- # </note>
1730
- #
1731
1942
  # Deletes the specified RegexPatternSet.
1732
1943
  #
1733
- #
1734
- #
1735
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1736
- #
1737
1944
  # @option params [required, String] :name
1738
1945
  # The name of the set. You cannot change the name after you create the
1739
1946
  # set.
@@ -1787,19 +1994,8 @@ module Aws::WAFV2
1787
1994
  req.send_request(options)
1788
1995
  end
1789
1996
 
1790
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
1791
- # in November, 2019. For information, including how to migrate your AWS
1792
- # WAF resources from the prior release, see the [AWS WAF Developer
1793
- # Guide][1].
1794
- #
1795
- # </note>
1796
- #
1797
1997
  # Deletes the specified RuleGroup.
1798
1998
  #
1799
- #
1800
- #
1801
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1802
- #
1803
1999
  # @option params [required, String] :name
1804
2000
  # The name of the rule group. You cannot change the name of a rule group
1805
2001
  # after you create it.
@@ -1853,22 +2049,11 @@ module Aws::WAFV2
1853
2049
  req.send_request(options)
1854
2050
  end
1855
2051
 
1856
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
1857
- # in November, 2019. For information, including how to migrate your AWS
1858
- # WAF resources from the prior release, see the [AWS WAF Developer
1859
- # Guide][1].
1860
- #
1861
- # </note>
1862
- #
1863
2052
  # Deletes the specified WebACL.
1864
2053
  #
1865
2054
  # You can only use this if `ManagedByFirewallManager` is false in the
1866
2055
  # specified WebACL.
1867
2056
  #
1868
- #
1869
- #
1870
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1871
- #
1872
2057
  # @option params [required, String] :name
1873
2058
  # The name of the Web ACL. You cannot change the name of a Web ACL after
1874
2059
  # you create it.
@@ -1922,20 +2107,9 @@ module Aws::WAFV2
1922
2107
  req.send_request(options)
1923
2108
  end
1924
2109
 
1925
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
1926
- # in November, 2019. For information, including how to migrate your AWS
1927
- # WAF resources from the prior release, see the [AWS WAF Developer
1928
- # Guide][1].
1929
- #
1930
- # </note>
1931
- #
1932
2110
  # Provides high-level information for a managed rule group, including
1933
2111
  # descriptions of the rules.
1934
2112
  #
1935
- #
1936
- #
1937
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1938
- #
1939
2113
  # @option params [required, String] :vendor_name
1940
2114
  # The name of the managed rule group vendor. You use this, along with
1941
2115
  # the rule group name, to identify the rule group.
@@ -1976,6 +2150,17 @@ module Aws::WAFV2
1976
2150
  # resp.capacity #=> Integer
1977
2151
  # resp.rules #=> Array
1978
2152
  # resp.rules[0].name #=> String
2153
+ # resp.rules[0].action.block.custom_response.response_code #=> Integer
2154
+ # resp.rules[0].action.block.custom_response.custom_response_body_key #=> String
2155
+ # resp.rules[0].action.block.custom_response.response_headers #=> Array
2156
+ # resp.rules[0].action.block.custom_response.response_headers[0].name #=> String
2157
+ # resp.rules[0].action.block.custom_response.response_headers[0].value #=> String
2158
+ # resp.rules[0].action.allow.custom_request_handling.insert_headers #=> Array
2159
+ # resp.rules[0].action.allow.custom_request_handling.insert_headers[0].name #=> String
2160
+ # resp.rules[0].action.allow.custom_request_handling.insert_headers[0].value #=> String
2161
+ # resp.rules[0].action.count.custom_request_handling.insert_headers #=> Array
2162
+ # resp.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
2163
+ # resp.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
1979
2164
  #
1980
2165
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DescribeManagedRuleGroup AWS API Documentation
1981
2166
  #
@@ -1986,13 +2171,6 @@ module Aws::WAFV2
1986
2171
  req.send_request(options)
1987
2172
  end
1988
2173
 
1989
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
1990
- # in November, 2019. For information, including how to migrate your AWS
1991
- # WAF resources from the prior release, see the [AWS WAF Developer
1992
- # Guide][1].
1993
- #
1994
- # </note>
1995
- #
1996
2174
  # Disassociates a Web ACL from a regional application resource. A
1997
2175
  # regional application can be an Application Load Balancer (ALB), an API
1998
2176
  # Gateway REST API, or an AppSync GraphQL API.
@@ -2000,12 +2178,11 @@ module Aws::WAFV2
2000
2178
  # For AWS CloudFront, don't use this call. Instead, use your CloudFront
2001
2179
  # distribution configuration. To disassociate a Web ACL, provide an
2002
2180
  # empty web ACL ID in the CloudFront call `UpdateDistribution`. For
2003
- # information, see [UpdateDistribution][2].
2181
+ # information, see [UpdateDistribution][1].
2004
2182
  #
2005
2183
  #
2006
2184
  #
2007
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2008
- # [2]: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html
2185
+ # [1]: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html
2009
2186
  #
2010
2187
  # @option params [required, String] :resource_arn
2011
2188
  # The Amazon Resource Name (ARN) of the resource to disassociate from
@@ -2040,19 +2217,8 @@ module Aws::WAFV2
2040
2217
  req.send_request(options)
2041
2218
  end
2042
2219
 
2043
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2044
- # in November, 2019. For information, including how to migrate your AWS
2045
- # WAF resources from the prior release, see the [AWS WAF Developer
2046
- # Guide][1].
2047
- #
2048
- # </note>
2049
- #
2050
2220
  # Retrieves the specified IPSet.
2051
2221
  #
2052
- #
2053
- #
2054
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2055
- #
2056
2222
  # @option params [required, String] :name
2057
2223
  # The name of the IP set. You cannot change the name of an `IPSet` after
2058
2224
  # you create it.
@@ -2109,19 +2275,8 @@ module Aws::WAFV2
2109
2275
  req.send_request(options)
2110
2276
  end
2111
2277
 
2112
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2113
- # in November, 2019. For information, including how to migrate your AWS
2114
- # WAF resources from the prior release, see the [AWS WAF Developer
2115
- # Guide][1].
2116
- #
2117
- # </note>
2118
- #
2119
2278
  # Returns the LoggingConfiguration for the specified web ACL.
2120
2279
  #
2121
- #
2122
- #
2123
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2124
- #
2125
2280
  # @option params [required, String] :resource_arn
2126
2281
  # The Amazon Resource Name (ARN) of the web ACL for which you want to
2127
2282
  # get the LoggingConfiguration.
@@ -2144,6 +2299,10 @@ module Aws::WAFV2
2144
2299
  # resp.logging_configuration.redacted_fields #=> Array
2145
2300
  # resp.logging_configuration.redacted_fields[0].single_header.name #=> String
2146
2301
  # resp.logging_configuration.redacted_fields[0].single_query_argument.name #=> String
2302
+ # resp.logging_configuration.redacted_fields[0].json_body.match_pattern.included_paths #=> Array
2303
+ # resp.logging_configuration.redacted_fields[0].json_body.match_pattern.included_paths[0] #=> String
2304
+ # resp.logging_configuration.redacted_fields[0].json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2305
+ # resp.logging_configuration.redacted_fields[0].json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2147
2306
  # resp.logging_configuration.managed_by_firewall_manager #=> Boolean
2148
2307
  #
2149
2308
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetLoggingConfiguration AWS API Documentation
@@ -2186,22 +2345,11 @@ module Aws::WAFV2
2186
2345
  req.send_request(options)
2187
2346
  end
2188
2347
 
2189
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2190
- # in November, 2019. For information, including how to migrate your AWS
2191
- # WAF resources from the prior release, see the [AWS WAF Developer
2192
- # Guide][1].
2193
- #
2194
- # </note>
2195
- #
2196
2348
  # Retrieves the keys that are currently blocked by a rate-based rule.
2197
2349
  # The maximum number of managed keys that can be blocked for a single
2198
2350
  # rate-based rule is 10,000. If more than 10,000 addresses exceed the
2199
2351
  # rate limit, those with the highest rates are blocked.
2200
2352
  #
2201
- #
2202
- #
2203
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2204
- #
2205
2353
  # @option params [required, String] :scope
2206
2354
  # Specifies whether this is for an AWS CloudFront distribution or for a
2207
2355
  # regional application. A regional application can be an Application
@@ -2260,19 +2408,8 @@ module Aws::WAFV2
2260
2408
  req.send_request(options)
2261
2409
  end
2262
2410
 
2263
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2264
- # in November, 2019. For information, including how to migrate your AWS
2265
- # WAF resources from the prior release, see the [AWS WAF Developer
2266
- # Guide][1].
2267
- #
2268
- # </note>
2269
- #
2270
2411
  # Retrieves the specified RegexPatternSet.
2271
2412
  #
2272
- #
2273
- #
2274
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2275
- #
2276
2413
  # @option params [required, String] :name
2277
2414
  # The name of the set. You cannot change the name after you create the
2278
2415
  # set.
@@ -2328,19 +2465,8 @@ module Aws::WAFV2
2328
2465
  req.send_request(options)
2329
2466
  end
2330
2467
 
2331
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2332
- # in November, 2019. For information, including how to migrate your AWS
2333
- # WAF resources from the prior release, see the [AWS WAF Developer
2334
- # Guide][1].
2335
- #
2336
- # </note>
2337
- #
2338
2468
  # Retrieves the specified RuleGroup.
2339
2469
  #
2340
- #
2341
- #
2342
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2343
- #
2344
2470
  # @option params [required, String] :name
2345
2471
  # The name of the rule group. You cannot change the name of a rule group
2346
2472
  # after you create it.
@@ -2390,22 +2516,38 @@ module Aws::WAFV2
2390
2516
  # resp.rule_group.rules[0].statement.byte_match_statement.search_string #=> String
2391
2517
  # resp.rule_group.rules[0].statement.byte_match_statement.field_to_match.single_header.name #=> String
2392
2518
  # resp.rule_group.rules[0].statement.byte_match_statement.field_to_match.single_query_argument.name #=> String
2519
+ # resp.rule_group.rules[0].statement.byte_match_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
2520
+ # resp.rule_group.rules[0].statement.byte_match_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
2521
+ # resp.rule_group.rules[0].statement.byte_match_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2522
+ # resp.rule_group.rules[0].statement.byte_match_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2393
2523
  # resp.rule_group.rules[0].statement.byte_match_statement.text_transformations #=> Array
2394
2524
  # resp.rule_group.rules[0].statement.byte_match_statement.text_transformations[0].priority #=> Integer
2395
2525
  # resp.rule_group.rules[0].statement.byte_match_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2396
2526
  # resp.rule_group.rules[0].statement.byte_match_statement.positional_constraint #=> String, one of "EXACTLY", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CONTAINS_WORD"
2397
2527
  # resp.rule_group.rules[0].statement.sqli_match_statement.field_to_match.single_header.name #=> String
2398
2528
  # resp.rule_group.rules[0].statement.sqli_match_statement.field_to_match.single_query_argument.name #=> String
2529
+ # resp.rule_group.rules[0].statement.sqli_match_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
2530
+ # resp.rule_group.rules[0].statement.sqli_match_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
2531
+ # resp.rule_group.rules[0].statement.sqli_match_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2532
+ # resp.rule_group.rules[0].statement.sqli_match_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2399
2533
  # resp.rule_group.rules[0].statement.sqli_match_statement.text_transformations #=> Array
2400
2534
  # resp.rule_group.rules[0].statement.sqli_match_statement.text_transformations[0].priority #=> Integer
2401
2535
  # resp.rule_group.rules[0].statement.sqli_match_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2402
2536
  # resp.rule_group.rules[0].statement.xss_match_statement.field_to_match.single_header.name #=> String
2403
2537
  # resp.rule_group.rules[0].statement.xss_match_statement.field_to_match.single_query_argument.name #=> String
2538
+ # resp.rule_group.rules[0].statement.xss_match_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
2539
+ # resp.rule_group.rules[0].statement.xss_match_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
2540
+ # resp.rule_group.rules[0].statement.xss_match_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2541
+ # resp.rule_group.rules[0].statement.xss_match_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2404
2542
  # resp.rule_group.rules[0].statement.xss_match_statement.text_transformations #=> Array
2405
2543
  # resp.rule_group.rules[0].statement.xss_match_statement.text_transformations[0].priority #=> Integer
2406
2544
  # resp.rule_group.rules[0].statement.xss_match_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2407
2545
  # resp.rule_group.rules[0].statement.size_constraint_statement.field_to_match.single_header.name #=> String
2408
2546
  # resp.rule_group.rules[0].statement.size_constraint_statement.field_to_match.single_query_argument.name #=> String
2547
+ # resp.rule_group.rules[0].statement.size_constraint_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
2548
+ # resp.rule_group.rules[0].statement.size_constraint_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
2549
+ # resp.rule_group.rules[0].statement.size_constraint_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2550
+ # resp.rule_group.rules[0].statement.size_constraint_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2409
2551
  # resp.rule_group.rules[0].statement.size_constraint_statement.comparison_operator #=> String, one of "EQ", "NE", "LE", "LT", "GE", "GT"
2410
2552
  # resp.rule_group.rules[0].statement.size_constraint_statement.size #=> Integer
2411
2553
  # resp.rule_group.rules[0].statement.size_constraint_statement.text_transformations #=> Array
@@ -2425,6 +2567,10 @@ module Aws::WAFV2
2425
2567
  # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.arn #=> String
2426
2568
  # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.single_header.name #=> String
2427
2569
  # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.single_query_argument.name #=> String
2570
+ # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
2571
+ # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
2572
+ # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2573
+ # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2428
2574
  # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.text_transformations #=> Array
2429
2575
  # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.text_transformations[0].priority #=> Integer
2430
2576
  # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
@@ -2442,12 +2588,29 @@ module Aws::WAFV2
2442
2588
  # resp.rule_group.rules[0].statement.managed_rule_group_statement.name #=> String
2443
2589
  # resp.rule_group.rules[0].statement.managed_rule_group_statement.excluded_rules #=> Array
2444
2590
  # resp.rule_group.rules[0].statement.managed_rule_group_statement.excluded_rules[0].name #=> String
2591
+ # resp.rule_group.rules[0].action.block.custom_response.response_code #=> Integer
2592
+ # resp.rule_group.rules[0].action.block.custom_response.custom_response_body_key #=> String
2593
+ # resp.rule_group.rules[0].action.block.custom_response.response_headers #=> Array
2594
+ # resp.rule_group.rules[0].action.block.custom_response.response_headers[0].name #=> String
2595
+ # resp.rule_group.rules[0].action.block.custom_response.response_headers[0].value #=> String
2596
+ # resp.rule_group.rules[0].action.allow.custom_request_handling.insert_headers #=> Array
2597
+ # resp.rule_group.rules[0].action.allow.custom_request_handling.insert_headers[0].name #=> String
2598
+ # resp.rule_group.rules[0].action.allow.custom_request_handling.insert_headers[0].value #=> String
2599
+ # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers #=> Array
2600
+ # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
2601
+ # resp.rule_group.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
2602
+ # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
2603
+ # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
2604
+ # resp.rule_group.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
2445
2605
  # resp.rule_group.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
2446
2606
  # resp.rule_group.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
2447
2607
  # resp.rule_group.rules[0].visibility_config.metric_name #=> String
2448
2608
  # resp.rule_group.visibility_config.sampled_requests_enabled #=> Boolean
2449
2609
  # resp.rule_group.visibility_config.cloud_watch_metrics_enabled #=> Boolean
2450
2610
  # resp.rule_group.visibility_config.metric_name #=> String
2611
+ # resp.rule_group.custom_response_bodies #=> Hash
2612
+ # resp.rule_group.custom_response_bodies["EntityName"].content_type #=> String, one of "TEXT_PLAIN", "TEXT_HTML", "APPLICATION_JSON"
2613
+ # resp.rule_group.custom_response_bodies["EntityName"].content #=> String
2451
2614
  # resp.lock_token #=> String
2452
2615
  #
2453
2616
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRuleGroup AWS API Documentation
@@ -2459,13 +2622,6 @@ module Aws::WAFV2
2459
2622
  req.send_request(options)
2460
2623
  end
2461
2624
 
2462
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2463
- # in November, 2019. For information, including how to migrate your AWS
2464
- # WAF resources from the prior release, see the [AWS WAF Developer
2465
- # Guide][1].
2466
- #
2467
- # </note>
2468
- #
2469
2625
  # Gets detailed information about a specified number of requests--a
2470
2626
  # sample--that AWS WAF randomly selects from among the first 5,000
2471
2627
  # requests that your AWS resource received during a time range that you
@@ -2479,10 +2635,6 @@ module Aws::WAFV2
2479
2635
  # range. This new time range indicates the actual period during which
2480
2636
  # AWS WAF selected the requests in the sample.
2481
2637
  #
2482
- #
2483
- #
2484
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2485
- #
2486
2638
  # @option params [required, String] :web_acl_arn
2487
2639
  # The Amazon resource name (ARN) of the `WebACL` for which you want a
2488
2640
  # sample of requests.
@@ -2511,7 +2663,8 @@ module Aws::WAFV2
2511
2663
  # You must specify the times in Coordinated Universal Time (UTC) format.
2512
2664
  # UTC format includes the special designator, `Z`. For example,
2513
2665
  # `"2016-09-27T14:50Z"`. You can specify any time range in the previous
2514
- # three hours.
2666
+ # three hours. If you specify a start time that's earlier than three
2667
+ # hours ago, AWS WAF sets it to three hours ago.
2515
2668
  #
2516
2669
  # @option params [required, Integer] :max_items
2517
2670
  # The number of requests that you want AWS WAF to return from among the
@@ -2554,6 +2707,10 @@ module Aws::WAFV2
2554
2707
  # resp.sampled_requests[0].timestamp #=> Time
2555
2708
  # resp.sampled_requests[0].action #=> String
2556
2709
  # resp.sampled_requests[0].rule_name_within_rule_group #=> String
2710
+ # resp.sampled_requests[0].request_headers_inserted #=> Array
2711
+ # resp.sampled_requests[0].request_headers_inserted[0].name #=> String
2712
+ # resp.sampled_requests[0].request_headers_inserted[0].value #=> String
2713
+ # resp.sampled_requests[0].response_code_sent #=> Integer
2557
2714
  # resp.population_size #=> Integer
2558
2715
  # resp.time_window.start_time #=> Time
2559
2716
  # resp.time_window.end_time #=> Time
@@ -2567,19 +2724,8 @@ module Aws::WAFV2
2567
2724
  req.send_request(options)
2568
2725
  end
2569
2726
 
2570
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2571
- # in November, 2019. For information, including how to migrate your AWS
2572
- # WAF resources from the prior release, see the [AWS WAF Developer
2573
- # Guide][1].
2574
- #
2575
- # </note>
2576
- #
2577
2727
  # Retrieves the specified WebACL.
2578
2728
  #
2579
- #
2580
- #
2581
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2582
- #
2583
2729
  # @option params [required, String] :name
2584
2730
  # The name of the Web ACL. You cannot change the name of a Web ACL after
2585
2731
  # you create it.
@@ -2621,6 +2767,14 @@ module Aws::WAFV2
2621
2767
  # resp.web_acl.name #=> String
2622
2768
  # resp.web_acl.id #=> String
2623
2769
  # resp.web_acl.arn #=> String
2770
+ # resp.web_acl.default_action.block.custom_response.response_code #=> Integer
2771
+ # resp.web_acl.default_action.block.custom_response.custom_response_body_key #=> String
2772
+ # resp.web_acl.default_action.block.custom_response.response_headers #=> Array
2773
+ # resp.web_acl.default_action.block.custom_response.response_headers[0].name #=> String
2774
+ # resp.web_acl.default_action.block.custom_response.response_headers[0].value #=> String
2775
+ # resp.web_acl.default_action.allow.custom_request_handling.insert_headers #=> Array
2776
+ # resp.web_acl.default_action.allow.custom_request_handling.insert_headers[0].name #=> String
2777
+ # resp.web_acl.default_action.allow.custom_request_handling.insert_headers[0].value #=> String
2624
2778
  # resp.web_acl.description #=> String
2625
2779
  # resp.web_acl.rules #=> Array
2626
2780
  # resp.web_acl.rules[0].name #=> String
@@ -2628,22 +2782,38 @@ module Aws::WAFV2
2628
2782
  # resp.web_acl.rules[0].statement.byte_match_statement.search_string #=> String
2629
2783
  # resp.web_acl.rules[0].statement.byte_match_statement.field_to_match.single_header.name #=> String
2630
2784
  # resp.web_acl.rules[0].statement.byte_match_statement.field_to_match.single_query_argument.name #=> String
2785
+ # resp.web_acl.rules[0].statement.byte_match_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
2786
+ # resp.web_acl.rules[0].statement.byte_match_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
2787
+ # resp.web_acl.rules[0].statement.byte_match_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2788
+ # resp.web_acl.rules[0].statement.byte_match_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2631
2789
  # resp.web_acl.rules[0].statement.byte_match_statement.text_transformations #=> Array
2632
2790
  # resp.web_acl.rules[0].statement.byte_match_statement.text_transformations[0].priority #=> Integer
2633
2791
  # resp.web_acl.rules[0].statement.byte_match_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2634
2792
  # resp.web_acl.rules[0].statement.byte_match_statement.positional_constraint #=> String, one of "EXACTLY", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CONTAINS_WORD"
2635
2793
  # resp.web_acl.rules[0].statement.sqli_match_statement.field_to_match.single_header.name #=> String
2636
2794
  # resp.web_acl.rules[0].statement.sqli_match_statement.field_to_match.single_query_argument.name #=> String
2795
+ # resp.web_acl.rules[0].statement.sqli_match_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
2796
+ # resp.web_acl.rules[0].statement.sqli_match_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
2797
+ # resp.web_acl.rules[0].statement.sqli_match_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2798
+ # resp.web_acl.rules[0].statement.sqli_match_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2637
2799
  # resp.web_acl.rules[0].statement.sqli_match_statement.text_transformations #=> Array
2638
2800
  # resp.web_acl.rules[0].statement.sqli_match_statement.text_transformations[0].priority #=> Integer
2639
2801
  # resp.web_acl.rules[0].statement.sqli_match_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2640
2802
  # resp.web_acl.rules[0].statement.xss_match_statement.field_to_match.single_header.name #=> String
2641
2803
  # resp.web_acl.rules[0].statement.xss_match_statement.field_to_match.single_query_argument.name #=> String
2804
+ # resp.web_acl.rules[0].statement.xss_match_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
2805
+ # resp.web_acl.rules[0].statement.xss_match_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
2806
+ # resp.web_acl.rules[0].statement.xss_match_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2807
+ # resp.web_acl.rules[0].statement.xss_match_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2642
2808
  # resp.web_acl.rules[0].statement.xss_match_statement.text_transformations #=> Array
2643
2809
  # resp.web_acl.rules[0].statement.xss_match_statement.text_transformations[0].priority #=> Integer
2644
2810
  # resp.web_acl.rules[0].statement.xss_match_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2645
2811
  # resp.web_acl.rules[0].statement.size_constraint_statement.field_to_match.single_header.name #=> String
2646
2812
  # resp.web_acl.rules[0].statement.size_constraint_statement.field_to_match.single_query_argument.name #=> String
2813
+ # resp.web_acl.rules[0].statement.size_constraint_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
2814
+ # resp.web_acl.rules[0].statement.size_constraint_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
2815
+ # resp.web_acl.rules[0].statement.size_constraint_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2816
+ # resp.web_acl.rules[0].statement.size_constraint_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2647
2817
  # resp.web_acl.rules[0].statement.size_constraint_statement.comparison_operator #=> String, one of "EQ", "NE", "LE", "LT", "GE", "GT"
2648
2818
  # resp.web_acl.rules[0].statement.size_constraint_statement.size #=> Integer
2649
2819
  # resp.web_acl.rules[0].statement.size_constraint_statement.text_transformations #=> Array
@@ -2663,6 +2833,10 @@ module Aws::WAFV2
2663
2833
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.arn #=> String
2664
2834
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.single_header.name #=> String
2665
2835
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.single_query_argument.name #=> String
2836
+ # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
2837
+ # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
2838
+ # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2839
+ # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2666
2840
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.text_transformations #=> Array
2667
2841
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.text_transformations[0].priority #=> Integer
2668
2842
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
@@ -2680,6 +2854,20 @@ module Aws::WAFV2
2680
2854
  # resp.web_acl.rules[0].statement.managed_rule_group_statement.name #=> String
2681
2855
  # resp.web_acl.rules[0].statement.managed_rule_group_statement.excluded_rules #=> Array
2682
2856
  # resp.web_acl.rules[0].statement.managed_rule_group_statement.excluded_rules[0].name #=> String
2857
+ # resp.web_acl.rules[0].action.block.custom_response.response_code #=> Integer
2858
+ # resp.web_acl.rules[0].action.block.custom_response.custom_response_body_key #=> String
2859
+ # resp.web_acl.rules[0].action.block.custom_response.response_headers #=> Array
2860
+ # resp.web_acl.rules[0].action.block.custom_response.response_headers[0].name #=> String
2861
+ # resp.web_acl.rules[0].action.block.custom_response.response_headers[0].value #=> String
2862
+ # resp.web_acl.rules[0].action.allow.custom_request_handling.insert_headers #=> Array
2863
+ # resp.web_acl.rules[0].action.allow.custom_request_handling.insert_headers[0].name #=> String
2864
+ # resp.web_acl.rules[0].action.allow.custom_request_handling.insert_headers[0].value #=> String
2865
+ # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers #=> Array
2866
+ # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
2867
+ # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
2868
+ # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
2869
+ # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
2870
+ # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
2683
2871
  # resp.web_acl.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
2684
2872
  # resp.web_acl.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
2685
2873
  # resp.web_acl.rules[0].visibility_config.metric_name #=> String
@@ -2697,6 +2885,9 @@ module Aws::WAFV2
2697
2885
  # resp.web_acl.pre_process_firewall_manager_rule_groups[0].firewall_manager_statement.rule_group_reference_statement.arn #=> String
2698
2886
  # resp.web_acl.pre_process_firewall_manager_rule_groups[0].firewall_manager_statement.rule_group_reference_statement.excluded_rules #=> Array
2699
2887
  # resp.web_acl.pre_process_firewall_manager_rule_groups[0].firewall_manager_statement.rule_group_reference_statement.excluded_rules[0].name #=> String
2888
+ # resp.web_acl.pre_process_firewall_manager_rule_groups[0].override_action.count.custom_request_handling.insert_headers #=> Array
2889
+ # resp.web_acl.pre_process_firewall_manager_rule_groups[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
2890
+ # resp.web_acl.pre_process_firewall_manager_rule_groups[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
2700
2891
  # resp.web_acl.pre_process_firewall_manager_rule_groups[0].visibility_config.sampled_requests_enabled #=> Boolean
2701
2892
  # resp.web_acl.pre_process_firewall_manager_rule_groups[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
2702
2893
  # resp.web_acl.pre_process_firewall_manager_rule_groups[0].visibility_config.metric_name #=> String
@@ -2710,10 +2901,16 @@ module Aws::WAFV2
2710
2901
  # resp.web_acl.post_process_firewall_manager_rule_groups[0].firewall_manager_statement.rule_group_reference_statement.arn #=> String
2711
2902
  # resp.web_acl.post_process_firewall_manager_rule_groups[0].firewall_manager_statement.rule_group_reference_statement.excluded_rules #=> Array
2712
2903
  # resp.web_acl.post_process_firewall_manager_rule_groups[0].firewall_manager_statement.rule_group_reference_statement.excluded_rules[0].name #=> String
2904
+ # resp.web_acl.post_process_firewall_manager_rule_groups[0].override_action.count.custom_request_handling.insert_headers #=> Array
2905
+ # resp.web_acl.post_process_firewall_manager_rule_groups[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
2906
+ # resp.web_acl.post_process_firewall_manager_rule_groups[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
2713
2907
  # resp.web_acl.post_process_firewall_manager_rule_groups[0].visibility_config.sampled_requests_enabled #=> Boolean
2714
2908
  # resp.web_acl.post_process_firewall_manager_rule_groups[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
2715
2909
  # resp.web_acl.post_process_firewall_manager_rule_groups[0].visibility_config.metric_name #=> String
2716
2910
  # resp.web_acl.managed_by_firewall_manager #=> Boolean
2911
+ # resp.web_acl.custom_response_bodies #=> Hash
2912
+ # resp.web_acl.custom_response_bodies["EntityName"].content_type #=> String, one of "TEXT_PLAIN", "TEXT_HTML", "APPLICATION_JSON"
2913
+ # resp.web_acl.custom_response_bodies["EntityName"].content #=> String
2717
2914
  # resp.lock_token #=> String
2718
2915
  #
2719
2916
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACL AWS API Documentation
@@ -2725,19 +2922,8 @@ module Aws::WAFV2
2725
2922
  req.send_request(options)
2726
2923
  end
2727
2924
 
2728
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2729
- # in November, 2019. For information, including how to migrate your AWS
2730
- # WAF resources from the prior release, see the [AWS WAF Developer
2731
- # Guide][1].
2732
- #
2733
- # </note>
2734
- #
2735
2925
  # Retrieves the WebACL for the specified resource.
2736
2926
  #
2737
- #
2738
- #
2739
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2740
- #
2741
2927
  # @option params [required, String] :resource_arn
2742
2928
  # The ARN (Amazon Resource Name) of the resource.
2743
2929
  #
@@ -2756,6 +2942,14 @@ module Aws::WAFV2
2756
2942
  # resp.web_acl.name #=> String
2757
2943
  # resp.web_acl.id #=> String
2758
2944
  # resp.web_acl.arn #=> String
2945
+ # resp.web_acl.default_action.block.custom_response.response_code #=> Integer
2946
+ # resp.web_acl.default_action.block.custom_response.custom_response_body_key #=> String
2947
+ # resp.web_acl.default_action.block.custom_response.response_headers #=> Array
2948
+ # resp.web_acl.default_action.block.custom_response.response_headers[0].name #=> String
2949
+ # resp.web_acl.default_action.block.custom_response.response_headers[0].value #=> String
2950
+ # resp.web_acl.default_action.allow.custom_request_handling.insert_headers #=> Array
2951
+ # resp.web_acl.default_action.allow.custom_request_handling.insert_headers[0].name #=> String
2952
+ # resp.web_acl.default_action.allow.custom_request_handling.insert_headers[0].value #=> String
2759
2953
  # resp.web_acl.description #=> String
2760
2954
  # resp.web_acl.rules #=> Array
2761
2955
  # resp.web_acl.rules[0].name #=> String
@@ -2763,22 +2957,38 @@ module Aws::WAFV2
2763
2957
  # resp.web_acl.rules[0].statement.byte_match_statement.search_string #=> String
2764
2958
  # resp.web_acl.rules[0].statement.byte_match_statement.field_to_match.single_header.name #=> String
2765
2959
  # resp.web_acl.rules[0].statement.byte_match_statement.field_to_match.single_query_argument.name #=> String
2960
+ # resp.web_acl.rules[0].statement.byte_match_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
2961
+ # resp.web_acl.rules[0].statement.byte_match_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
2962
+ # resp.web_acl.rules[0].statement.byte_match_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2963
+ # resp.web_acl.rules[0].statement.byte_match_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2766
2964
  # resp.web_acl.rules[0].statement.byte_match_statement.text_transformations #=> Array
2767
2965
  # resp.web_acl.rules[0].statement.byte_match_statement.text_transformations[0].priority #=> Integer
2768
2966
  # resp.web_acl.rules[0].statement.byte_match_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2769
2967
  # resp.web_acl.rules[0].statement.byte_match_statement.positional_constraint #=> String, one of "EXACTLY", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CONTAINS_WORD"
2770
2968
  # resp.web_acl.rules[0].statement.sqli_match_statement.field_to_match.single_header.name #=> String
2771
2969
  # resp.web_acl.rules[0].statement.sqli_match_statement.field_to_match.single_query_argument.name #=> String
2970
+ # resp.web_acl.rules[0].statement.sqli_match_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
2971
+ # resp.web_acl.rules[0].statement.sqli_match_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
2972
+ # resp.web_acl.rules[0].statement.sqli_match_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2973
+ # resp.web_acl.rules[0].statement.sqli_match_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2772
2974
  # resp.web_acl.rules[0].statement.sqli_match_statement.text_transformations #=> Array
2773
2975
  # resp.web_acl.rules[0].statement.sqli_match_statement.text_transformations[0].priority #=> Integer
2774
2976
  # resp.web_acl.rules[0].statement.sqli_match_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2775
2977
  # resp.web_acl.rules[0].statement.xss_match_statement.field_to_match.single_header.name #=> String
2776
2978
  # resp.web_acl.rules[0].statement.xss_match_statement.field_to_match.single_query_argument.name #=> String
2979
+ # resp.web_acl.rules[0].statement.xss_match_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
2980
+ # resp.web_acl.rules[0].statement.xss_match_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
2981
+ # resp.web_acl.rules[0].statement.xss_match_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2982
+ # resp.web_acl.rules[0].statement.xss_match_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2777
2983
  # resp.web_acl.rules[0].statement.xss_match_statement.text_transformations #=> Array
2778
2984
  # resp.web_acl.rules[0].statement.xss_match_statement.text_transformations[0].priority #=> Integer
2779
2985
  # resp.web_acl.rules[0].statement.xss_match_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2780
2986
  # resp.web_acl.rules[0].statement.size_constraint_statement.field_to_match.single_header.name #=> String
2781
2987
  # resp.web_acl.rules[0].statement.size_constraint_statement.field_to_match.single_query_argument.name #=> String
2988
+ # resp.web_acl.rules[0].statement.size_constraint_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
2989
+ # resp.web_acl.rules[0].statement.size_constraint_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
2990
+ # resp.web_acl.rules[0].statement.size_constraint_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
2991
+ # resp.web_acl.rules[0].statement.size_constraint_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2782
2992
  # resp.web_acl.rules[0].statement.size_constraint_statement.comparison_operator #=> String, one of "EQ", "NE", "LE", "LT", "GE", "GT"
2783
2993
  # resp.web_acl.rules[0].statement.size_constraint_statement.size #=> Integer
2784
2994
  # resp.web_acl.rules[0].statement.size_constraint_statement.text_transformations #=> Array
@@ -2798,6 +3008,10 @@ module Aws::WAFV2
2798
3008
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.arn #=> String
2799
3009
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.single_header.name #=> String
2800
3010
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.single_query_argument.name #=> String
3011
+ # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.json_body.match_pattern.included_paths #=> Array
3012
+ # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.json_body.match_pattern.included_paths[0] #=> String
3013
+ # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
3014
+ # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
2801
3015
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.text_transformations #=> Array
2802
3016
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.text_transformations[0].priority #=> Integer
2803
3017
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
@@ -2815,6 +3029,20 @@ module Aws::WAFV2
2815
3029
  # resp.web_acl.rules[0].statement.managed_rule_group_statement.name #=> String
2816
3030
  # resp.web_acl.rules[0].statement.managed_rule_group_statement.excluded_rules #=> Array
2817
3031
  # resp.web_acl.rules[0].statement.managed_rule_group_statement.excluded_rules[0].name #=> String
3032
+ # resp.web_acl.rules[0].action.block.custom_response.response_code #=> Integer
3033
+ # resp.web_acl.rules[0].action.block.custom_response.custom_response_body_key #=> String
3034
+ # resp.web_acl.rules[0].action.block.custom_response.response_headers #=> Array
3035
+ # resp.web_acl.rules[0].action.block.custom_response.response_headers[0].name #=> String
3036
+ # resp.web_acl.rules[0].action.block.custom_response.response_headers[0].value #=> String
3037
+ # resp.web_acl.rules[0].action.allow.custom_request_handling.insert_headers #=> Array
3038
+ # resp.web_acl.rules[0].action.allow.custom_request_handling.insert_headers[0].name #=> String
3039
+ # resp.web_acl.rules[0].action.allow.custom_request_handling.insert_headers[0].value #=> String
3040
+ # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers #=> Array
3041
+ # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].name #=> String
3042
+ # resp.web_acl.rules[0].action.count.custom_request_handling.insert_headers[0].value #=> String
3043
+ # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers #=> Array
3044
+ # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
3045
+ # resp.web_acl.rules[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
2818
3046
  # resp.web_acl.rules[0].visibility_config.sampled_requests_enabled #=> Boolean
2819
3047
  # resp.web_acl.rules[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
2820
3048
  # resp.web_acl.rules[0].visibility_config.metric_name #=> String
@@ -2832,6 +3060,9 @@ module Aws::WAFV2
2832
3060
  # resp.web_acl.pre_process_firewall_manager_rule_groups[0].firewall_manager_statement.rule_group_reference_statement.arn #=> String
2833
3061
  # resp.web_acl.pre_process_firewall_manager_rule_groups[0].firewall_manager_statement.rule_group_reference_statement.excluded_rules #=> Array
2834
3062
  # resp.web_acl.pre_process_firewall_manager_rule_groups[0].firewall_manager_statement.rule_group_reference_statement.excluded_rules[0].name #=> String
3063
+ # resp.web_acl.pre_process_firewall_manager_rule_groups[0].override_action.count.custom_request_handling.insert_headers #=> Array
3064
+ # resp.web_acl.pre_process_firewall_manager_rule_groups[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
3065
+ # resp.web_acl.pre_process_firewall_manager_rule_groups[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
2835
3066
  # resp.web_acl.pre_process_firewall_manager_rule_groups[0].visibility_config.sampled_requests_enabled #=> Boolean
2836
3067
  # resp.web_acl.pre_process_firewall_manager_rule_groups[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
2837
3068
  # resp.web_acl.pre_process_firewall_manager_rule_groups[0].visibility_config.metric_name #=> String
@@ -2845,10 +3076,16 @@ module Aws::WAFV2
2845
3076
  # resp.web_acl.post_process_firewall_manager_rule_groups[0].firewall_manager_statement.rule_group_reference_statement.arn #=> String
2846
3077
  # resp.web_acl.post_process_firewall_manager_rule_groups[0].firewall_manager_statement.rule_group_reference_statement.excluded_rules #=> Array
2847
3078
  # resp.web_acl.post_process_firewall_manager_rule_groups[0].firewall_manager_statement.rule_group_reference_statement.excluded_rules[0].name #=> String
3079
+ # resp.web_acl.post_process_firewall_manager_rule_groups[0].override_action.count.custom_request_handling.insert_headers #=> Array
3080
+ # resp.web_acl.post_process_firewall_manager_rule_groups[0].override_action.count.custom_request_handling.insert_headers[0].name #=> String
3081
+ # resp.web_acl.post_process_firewall_manager_rule_groups[0].override_action.count.custom_request_handling.insert_headers[0].value #=> String
2848
3082
  # resp.web_acl.post_process_firewall_manager_rule_groups[0].visibility_config.sampled_requests_enabled #=> Boolean
2849
3083
  # resp.web_acl.post_process_firewall_manager_rule_groups[0].visibility_config.cloud_watch_metrics_enabled #=> Boolean
2850
3084
  # resp.web_acl.post_process_firewall_manager_rule_groups[0].visibility_config.metric_name #=> String
2851
3085
  # resp.web_acl.managed_by_firewall_manager #=> Boolean
3086
+ # resp.web_acl.custom_response_bodies #=> Hash
3087
+ # resp.web_acl.custom_response_bodies["EntityName"].content_type #=> String, one of "TEXT_PLAIN", "TEXT_HTML", "APPLICATION_JSON"
3088
+ # resp.web_acl.custom_response_bodies["EntityName"].content #=> String
2852
3089
  #
2853
3090
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACLForResource AWS API Documentation
2854
3091
  #
@@ -2859,21 +3096,10 @@ module Aws::WAFV2
2859
3096
  req.send_request(options)
2860
3097
  end
2861
3098
 
2862
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2863
- # in November, 2019. For information, including how to migrate your AWS
2864
- # WAF resources from the prior release, see the [AWS WAF Developer
2865
- # Guide][1].
2866
- #
2867
- # </note>
2868
- #
2869
3099
  # Retrieves an array of managed rule groups that are available for you
2870
3100
  # to use. This list includes all AWS Managed Rules rule groups and the
2871
3101
  # AWS Marketplace managed rule groups that you're subscribed to.
2872
3102
  #
2873
- #
2874
- #
2875
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2876
- #
2877
3103
  # @option params [required, String] :scope
2878
3104
  # Specifies whether this is for an AWS CloudFront distribution or for a
2879
3105
  # regional application. A regional application can be an Application
@@ -2931,20 +3157,9 @@ module Aws::WAFV2
2931
3157
  req.send_request(options)
2932
3158
  end
2933
3159
 
2934
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2935
- # in November, 2019. For information, including how to migrate your AWS
2936
- # WAF resources from the prior release, see the [AWS WAF Developer
2937
- # Guide][1].
2938
- #
2939
- # </note>
2940
- #
2941
3160
  # Retrieves an array of IPSetSummary objects for the IP sets that you
2942
3161
  # manage.
2943
3162
  #
2944
- #
2945
- #
2946
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2947
- #
2948
3163
  # @option params [required, String] :scope
2949
3164
  # Specifies whether this is for an AWS CloudFront distribution or for a
2950
3165
  # regional application. A regional application can be an Application
@@ -3004,19 +3219,8 @@ module Aws::WAFV2
3004
3219
  req.send_request(options)
3005
3220
  end
3006
3221
 
3007
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3008
- # in November, 2019. For information, including how to migrate your AWS
3009
- # WAF resources from the prior release, see the [AWS WAF Developer
3010
- # Guide][1].
3011
- #
3012
- # </note>
3013
- #
3014
3222
  # Retrieves an array of your LoggingConfiguration objects.
3015
3223
  #
3016
- #
3017
- #
3018
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3019
- #
3020
3224
  # @option params [String] :scope
3021
3225
  # Specifies whether this is for an AWS CloudFront distribution or for a
3022
3226
  # regional application. A regional application can be an Application
@@ -3066,6 +3270,10 @@ module Aws::WAFV2
3066
3270
  # resp.logging_configurations[0].redacted_fields #=> Array
3067
3271
  # resp.logging_configurations[0].redacted_fields[0].single_header.name #=> String
3068
3272
  # resp.logging_configurations[0].redacted_fields[0].single_query_argument.name #=> String
3273
+ # resp.logging_configurations[0].redacted_fields[0].json_body.match_pattern.included_paths #=> Array
3274
+ # resp.logging_configurations[0].redacted_fields[0].json_body.match_pattern.included_paths[0] #=> String
3275
+ # resp.logging_configurations[0].redacted_fields[0].json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
3276
+ # resp.logging_configurations[0].redacted_fields[0].json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
3069
3277
  # resp.logging_configurations[0].managed_by_firewall_manager #=> Boolean
3070
3278
  # resp.next_marker #=> String
3071
3279
  #
@@ -3078,20 +3286,9 @@ module Aws::WAFV2
3078
3286
  req.send_request(options)
3079
3287
  end
3080
3288
 
3081
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3082
- # in November, 2019. For information, including how to migrate your AWS
3083
- # WAF resources from the prior release, see the [AWS WAF Developer
3084
- # Guide][1].
3085
- #
3086
- # </note>
3087
- #
3088
3289
  # Retrieves an array of RegexPatternSetSummary objects for the regex
3089
3290
  # pattern sets that you manage.
3090
3291
  #
3091
- #
3092
- #
3093
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3094
- #
3095
3292
  # @option params [required, String] :scope
3096
3293
  # Specifies whether this is for an AWS CloudFront distribution or for a
3097
3294
  # regional application. A regional application can be an Application
@@ -3151,22 +3348,11 @@ module Aws::WAFV2
3151
3348
  req.send_request(options)
3152
3349
  end
3153
3350
 
3154
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3155
- # in November, 2019. For information, including how to migrate your AWS
3156
- # WAF resources from the prior release, see the [AWS WAF Developer
3157
- # Guide][1].
3158
- #
3159
- # </note>
3160
- #
3161
3351
  # Retrieves an array of the Amazon Resource Names (ARNs) for the
3162
3352
  # regional resources that are associated with the specified web ACL. If
3163
3353
  # you want the list of AWS CloudFront resources, use the AWS CloudFront
3164
3354
  # call `ListDistributionsByWebACLId`.
3165
3355
  #
3166
- #
3167
- #
3168
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3169
- #
3170
3356
  # @option params [required, String] :web_acl_arn
3171
3357
  # The Amazon Resource Name (ARN) of the Web ACL.
3172
3358
  #
@@ -3200,20 +3386,9 @@ module Aws::WAFV2
3200
3386
  req.send_request(options)
3201
3387
  end
3202
3388
 
3203
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3204
- # in November, 2019. For information, including how to migrate your AWS
3205
- # WAF resources from the prior release, see the [AWS WAF Developer
3206
- # Guide][1].
3207
- #
3208
- # </note>
3209
- #
3210
3389
  # Retrieves an array of RuleGroupSummary objects for the rule groups
3211
3390
  # that you manage.
3212
3391
  #
3213
- #
3214
- #
3215
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3216
- #
3217
3392
  # @option params [required, String] :scope
3218
3393
  # Specifies whether this is for an AWS CloudFront distribution or for a
3219
3394
  # regional application. A regional application can be an Application
@@ -3273,13 +3448,6 @@ module Aws::WAFV2
3273
3448
  req.send_request(options)
3274
3449
  end
3275
3450
 
3276
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3277
- # in November, 2019. For information, including how to migrate your AWS
3278
- # WAF resources from the prior release, see the [AWS WAF Developer
3279
- # Guide][1].
3280
- #
3281
- # </note>
3282
- #
3283
3451
  # Retrieves the TagInfoForResource for the specified resource. Tags are
3284
3452
  # key:value pairs that you can use to categorize and manage your
3285
3453
  # resources, for purposes like billing. For example, you might set the
@@ -3291,10 +3459,6 @@ module Aws::WAFV2
3291
3459
  # ACLs, rule groups, IP sets, and regex pattern sets. You can't manage
3292
3460
  # or view tags through the AWS WAF console.
3293
3461
  #
3294
- #
3295
- #
3296
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3297
- #
3298
3462
  # @option params [String] :next_marker
3299
3463
  # When you request a list of objects with a `Limit` setting, if the
3300
3464
  # number of objects that are still available for retrieval exceeds the
@@ -3341,20 +3505,9 @@ module Aws::WAFV2
3341
3505
  req.send_request(options)
3342
3506
  end
3343
3507
 
3344
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3345
- # in November, 2019. For information, including how to migrate your AWS
3346
- # WAF resources from the prior release, see the [AWS WAF Developer
3347
- # Guide][1].
3348
- #
3349
- # </note>
3350
- #
3351
3508
  # Retrieves an array of WebACLSummary objects for the web ACLs that you
3352
3509
  # manage.
3353
3510
  #
3354
- #
3355
- #
3356
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3357
- #
3358
3511
  # @option params [required, String] :scope
3359
3512
  # Specifies whether this is for an AWS CloudFront distribution or for a
3360
3513
  # regional application. A regional application can be an Application
@@ -3414,13 +3567,6 @@ module Aws::WAFV2
3414
3567
  req.send_request(options)
3415
3568
  end
3416
3569
 
3417
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3418
- # in November, 2019. For information, including how to migrate your AWS
3419
- # WAF resources from the prior release, see the [AWS WAF Developer
3420
- # Guide][1].
3421
- #
3422
- # </note>
3423
- #
3424
3570
  # Enables the specified LoggingConfiguration, to start logging from a
3425
3571
  # web ACL, according to the configuration provided.
3426
3572
  #
@@ -3447,13 +3593,12 @@ module Aws::WAFV2
3447
3593
  # When you successfully enable logging using a `PutLoggingConfiguration`
3448
3594
  # request, AWS WAF will create a service linked role with the necessary
3449
3595
  # permissions to write logs to the Amazon Kinesis Data Firehose. For
3450
- # more information, see [Logging Web ACL Traffic Information][2] in the
3596
+ # more information, see [Logging Web ACL Traffic Information][1] in the
3451
3597
  # *AWS WAF Developer Guide*.
3452
3598
  #
3453
3599
  #
3454
3600
  #
3455
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3456
- # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/logging.html
3601
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/logging.html
3457
3602
  #
3458
3603
  # @option params [required, Types::LoggingConfiguration] :logging_configuration
3459
3604
  #
@@ -3485,6 +3630,15 @@ module Aws::WAFV2
3485
3630
  # },
3486
3631
  # method: {
3487
3632
  # },
3633
+ # json_body: {
3634
+ # match_pattern: { # required
3635
+ # all: {
3636
+ # },
3637
+ # included_paths: ["JsonPointerPath"],
3638
+ # },
3639
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
3640
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
3641
+ # },
3488
3642
  # },
3489
3643
  # ],
3490
3644
  # managed_by_firewall_manager: false,
@@ -3499,6 +3653,10 @@ module Aws::WAFV2
3499
3653
  # resp.logging_configuration.redacted_fields #=> Array
3500
3654
  # resp.logging_configuration.redacted_fields[0].single_header.name #=> String
3501
3655
  # resp.logging_configuration.redacted_fields[0].single_query_argument.name #=> String
3656
+ # resp.logging_configuration.redacted_fields[0].json_body.match_pattern.included_paths #=> Array
3657
+ # resp.logging_configuration.redacted_fields[0].json_body.match_pattern.included_paths[0] #=> String
3658
+ # resp.logging_configuration.redacted_fields[0].json_body.match_scope #=> String, one of "ALL", "KEY", "VALUE"
3659
+ # resp.logging_configuration.redacted_fields[0].json_body.invalid_fallback_behavior #=> String, one of "MATCH", "NO_MATCH", "EVALUATE_AS_STRING"
3502
3660
  # resp.logging_configuration.managed_by_firewall_manager #=> Boolean
3503
3661
  #
3504
3662
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutLoggingConfiguration AWS API Documentation
@@ -3572,13 +3730,6 @@ module Aws::WAFV2
3572
3730
  req.send_request(options)
3573
3731
  end
3574
3732
 
3575
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3576
- # in November, 2019. For information, including how to migrate your AWS
3577
- # WAF resources from the prior release, see the [AWS WAF Developer
3578
- # Guide][1].
3579
- #
3580
- # </note>
3581
- #
3582
3733
  # Associates tags with the specified AWS resource. Tags are key:value
3583
3734
  # pairs that you can use to categorize and manage your resources, for
3584
3735
  # purposes like billing. For example, you might set the tag key to
@@ -3590,10 +3741,6 @@ module Aws::WAFV2
3590
3741
  # ACLs, rule groups, IP sets, and regex pattern sets. You can't manage
3591
3742
  # or view tags through the AWS WAF console.
3592
3743
  #
3593
- #
3594
- #
3595
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3596
- #
3597
3744
  # @option params [required, String] :resource_arn
3598
3745
  # The Amazon Resource Name (ARN) of the resource.
3599
3746
  #
@@ -3623,23 +3770,12 @@ module Aws::WAFV2
3623
3770
  req.send_request(options)
3624
3771
  end
3625
3772
 
3626
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3627
- # in November, 2019. For information, including how to migrate your AWS
3628
- # WAF resources from the prior release, see the [AWS WAF Developer
3629
- # Guide][1].
3630
- #
3631
- # </note>
3632
- #
3633
3773
  # Disassociates tags from an AWS resource. Tags are key:value pairs that
3634
3774
  # you can associate with AWS resources. For example, the tag key might
3635
3775
  # be "customer" and the tag value might be "companyA." You can
3636
3776
  # specify one or more tags to add to each container. You can add up to
3637
3777
  # 50 tags to each AWS resource.
3638
3778
  #
3639
- #
3640
- #
3641
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3642
- #
3643
3779
  # @option params [required, String] :resource_arn
3644
3780
  # The Amazon Resource Name (ARN) of the resource.
3645
3781
  #
@@ -3665,19 +3801,8 @@ module Aws::WAFV2
3665
3801
  req.send_request(options)
3666
3802
  end
3667
3803
 
3668
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3669
- # in November, 2019. For information, including how to migrate your AWS
3670
- # WAF resources from the prior release, see the [AWS WAF Developer
3671
- # Guide][1].
3672
- #
3673
- # </note>
3674
- #
3675
3804
  # Updates the specified IPSet.
3676
3805
  #
3677
- #
3678
- #
3679
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3680
- #
3681
3806
  # @option params [required, String] :name
3682
3807
  # The name of the IP set. You cannot change the name of an `IPSet` after
3683
3808
  # you create it.
@@ -3702,14 +3827,13 @@ module Aws::WAFV2
3702
3827
  # and delete.
3703
3828
  #
3704
3829
  # @option params [String] :description
3705
- # A description of the IP set that helps with identification. You cannot
3706
- # change the description of an IP set after you create it.
3830
+ # A description of the IP set that helps with identification.
3707
3831
  #
3708
3832
  # @option params [required, Array<String>] :addresses
3709
3833
  # Contains an array of strings that specify one or more IP addresses or
3710
3834
  # blocks of IP addresses in Classless Inter-Domain Routing (CIDR)
3711
- # notation. AWS WAF supports all address ranges for IP versions IPv4 and
3712
- # IPv6.
3835
+ # notation. AWS WAF supports all IPv4 and IPv6 CIDR ranges except for
3836
+ # /0.
3713
3837
  #
3714
3838
  # Examples:
3715
3839
  #
@@ -3775,19 +3899,8 @@ module Aws::WAFV2
3775
3899
  req.send_request(options)
3776
3900
  end
3777
3901
 
3778
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3779
- # in November, 2019. For information, including how to migrate your AWS
3780
- # WAF resources from the prior release, see the [AWS WAF Developer
3781
- # Guide][1].
3782
- #
3783
- # </note>
3784
- #
3785
3902
  # Updates the specified RegexPatternSet.
3786
3903
  #
3787
- #
3788
- #
3789
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3790
- #
3791
3904
  # @option params [required, String] :name
3792
3905
  # The name of the set. You cannot change the name after you create the
3793
3906
  # set.
@@ -3812,8 +3925,7 @@ module Aws::WAFV2
3812
3925
  # and delete.
3813
3926
  #
3814
3927
  # @option params [String] :description
3815
- # A description of the set that helps with identification. You cannot
3816
- # change the description of a set after you create it.
3928
+ # A description of the set that helps with identification.
3817
3929
  #
3818
3930
  # @option params [required, Array<Types::Regex>] :regular_expression_list
3819
3931
  #
@@ -3859,13 +3971,6 @@ module Aws::WAFV2
3859
3971
  req.send_request(options)
3860
3972
  end
3861
3973
 
3862
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3863
- # in November, 2019. For information, including how to migrate your AWS
3864
- # WAF resources from the prior release, see the [AWS WAF Developer
3865
- # Guide][1].
3866
- #
3867
- # </note>
3868
- #
3869
3974
  # Updates the specified RuleGroup.
3870
3975
  #
3871
3976
  # A rule group defines a collection of rules to inspect and control web
@@ -3874,10 +3979,6 @@ module Aws::WAFV2
3874
3979
  # you must stay within the capacity. This allows others to reuse the
3875
3980
  # rule group with confidence in its capacity requirements.
3876
3981
  #
3877
- #
3878
- #
3879
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3880
- #
3881
3982
  # @option params [required, String] :name
3882
3983
  # The name of the rule group. You cannot change the name of a rule group
3883
3984
  # after you create it.
@@ -3902,8 +4003,7 @@ module Aws::WAFV2
3902
4003
  # like update and delete.
3903
4004
  #
3904
4005
  # @option params [String] :description
3905
- # A description of the rule group that helps with identification. You
3906
- # cannot change the description of a rule group after you create it.
4006
+ # A description of the rule group that helps with identification.
3907
4007
  #
3908
4008
  # @option params [Array<Types::Rule>] :rules
3909
4009
  # The Rule statements used to identify the web requests that you want to
@@ -3925,6 +4025,26 @@ module Aws::WAFV2
3925
4025
  # fails with a `WAFOptimisticLockException`. If this happens, perform
3926
4026
  # another get, and use the new token returned by that operation.
3927
4027
  #
4028
+ # @option params [Hash<String,Types::CustomResponseBody>] :custom_response_bodies
4029
+ # A map of custom response keys and content bodies. When you create a
4030
+ # rule with a block action, you can send a custom response to the web
4031
+ # request. You define these for the rule group, and then use them in the
4032
+ # rules that you define in the rule group.
4033
+ #
4034
+ # For information about customizing web requests and responses, see
4035
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS WAF
4036
+ # Developer Guide][2].
4037
+ #
4038
+ # For information about the limits on count and size for custom request
4039
+ # and response settings, see [AWS WAF quotas][3] in the [AWS WAF
4040
+ # Developer Guide][2].
4041
+ #
4042
+ #
4043
+ #
4044
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
4045
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
4046
+ # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
4047
+ #
3928
4048
  # @return [Types::UpdateRuleGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3929
4049
  #
3930
4050
  # * {Types::UpdateRuleGroupResponse#next_lock_token #next_lock_token} => String
@@ -3960,6 +4080,15 @@ module Aws::WAFV2
3960
4080
  # },
3961
4081
  # method: {
3962
4082
  # },
4083
+ # json_body: {
4084
+ # match_pattern: { # required
4085
+ # all: {
4086
+ # },
4087
+ # included_paths: ["JsonPointerPath"],
4088
+ # },
4089
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4090
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4091
+ # },
3963
4092
  # },
3964
4093
  # text_transformations: [ # required
3965
4094
  # {
@@ -3987,6 +4116,15 @@ module Aws::WAFV2
3987
4116
  # },
3988
4117
  # method: {
3989
4118
  # },
4119
+ # json_body: {
4120
+ # match_pattern: { # required
4121
+ # all: {
4122
+ # },
4123
+ # included_paths: ["JsonPointerPath"],
4124
+ # },
4125
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4126
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4127
+ # },
3990
4128
  # },
3991
4129
  # text_transformations: [ # required
3992
4130
  # {
@@ -4013,6 +4151,15 @@ module Aws::WAFV2
4013
4151
  # },
4014
4152
  # method: {
4015
4153
  # },
4154
+ # json_body: {
4155
+ # match_pattern: { # required
4156
+ # all: {
4157
+ # },
4158
+ # included_paths: ["JsonPointerPath"],
4159
+ # },
4160
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4161
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4162
+ # },
4016
4163
  # },
4017
4164
  # text_transformations: [ # required
4018
4165
  # {
@@ -4039,6 +4186,15 @@ module Aws::WAFV2
4039
4186
  # },
4040
4187
  # method: {
4041
4188
  # },
4189
+ # json_body: {
4190
+ # match_pattern: { # required
4191
+ # all: {
4192
+ # },
4193
+ # included_paths: ["JsonPointerPath"],
4194
+ # },
4195
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4196
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4197
+ # },
4042
4198
  # },
4043
4199
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
4044
4200
  # size: 1, # required
@@ -4091,6 +4247,15 @@ module Aws::WAFV2
4091
4247
  # },
4092
4248
  # method: {
4093
4249
  # },
4250
+ # json_body: {
4251
+ # match_pattern: { # required
4252
+ # all: {
4253
+ # },
4254
+ # included_paths: ["JsonPointerPath"],
4255
+ # },
4256
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4257
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4258
+ # },
4094
4259
  # },
4095
4260
  # text_transformations: [ # required
4096
4261
  # {
@@ -4141,14 +4306,48 @@ module Aws::WAFV2
4141
4306
  # },
4142
4307
  # action: {
4143
4308
  # block: {
4309
+ # custom_response: {
4310
+ # response_code: 1, # required
4311
+ # custom_response_body_key: "EntityName",
4312
+ # response_headers: [
4313
+ # {
4314
+ # name: "CustomHTTPHeaderName", # required
4315
+ # value: "CustomHTTPHeaderValue", # required
4316
+ # },
4317
+ # ],
4318
+ # },
4144
4319
  # },
4145
4320
  # allow: {
4321
+ # custom_request_handling: {
4322
+ # insert_headers: [ # required
4323
+ # {
4324
+ # name: "CustomHTTPHeaderName", # required
4325
+ # value: "CustomHTTPHeaderValue", # required
4326
+ # },
4327
+ # ],
4328
+ # },
4146
4329
  # },
4147
4330
  # count: {
4331
+ # custom_request_handling: {
4332
+ # insert_headers: [ # required
4333
+ # {
4334
+ # name: "CustomHTTPHeaderName", # required
4335
+ # value: "CustomHTTPHeaderValue", # required
4336
+ # },
4337
+ # ],
4338
+ # },
4148
4339
  # },
4149
4340
  # },
4150
4341
  # override_action: {
4151
4342
  # count: {
4343
+ # custom_request_handling: {
4344
+ # insert_headers: [ # required
4345
+ # {
4346
+ # name: "CustomHTTPHeaderName", # required
4347
+ # value: "CustomHTTPHeaderValue", # required
4348
+ # },
4349
+ # ],
4350
+ # },
4152
4351
  # },
4153
4352
  # none: {
4154
4353
  # },
@@ -4166,6 +4365,12 @@ module Aws::WAFV2
4166
4365
  # metric_name: "MetricName", # required
4167
4366
  # },
4168
4367
  # lock_token: "LockToken", # required
4368
+ # custom_response_bodies: {
4369
+ # "EntityName" => {
4370
+ # content_type: "TEXT_PLAIN", # required, accepts TEXT_PLAIN, TEXT_HTML, APPLICATION_JSON
4371
+ # content: "ResponseContent", # required
4372
+ # },
4373
+ # },
4169
4374
  # })
4170
4375
  #
4171
4376
  # @example Response structure
@@ -4181,13 +4386,6 @@ module Aws::WAFV2
4181
4386
  req.send_request(options)
4182
4387
  end
4183
4388
 
4184
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
4185
- # in November, 2019. For information, including how to migrate your AWS
4186
- # WAF resources from the prior release, see the [AWS WAF Developer
4187
- # Guide][1].
4188
- #
4189
- # </note>
4190
- #
4191
4389
  # Updates the specified WebACL.
4192
4390
  #
4193
4391
  # A Web ACL defines a collection of rules to use to inspect and control
@@ -4200,10 +4398,6 @@ module Aws::WAFV2
4200
4398
  # resources can be Amazon CloudFront, an Amazon API Gateway REST API, an
4201
4399
  # Application Load Balancer, or an AWS AppSync GraphQL API.
4202
4400
  #
4203
- #
4204
- #
4205
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
4206
- #
4207
4401
  # @option params [required, String] :name
4208
4402
  # The name of the Web ACL. You cannot change the name of a Web ACL after
4209
4403
  # you create it.
@@ -4232,8 +4426,7 @@ module Aws::WAFV2
4232
4426
  # match.
4233
4427
  #
4234
4428
  # @option params [String] :description
4235
- # A description of the Web ACL that helps with identification. You
4236
- # cannot change the description of a Web ACL after you create it.
4429
+ # A description of the Web ACL that helps with identification.
4237
4430
  #
4238
4431
  # @option params [Array<Types::Rule>] :rules
4239
4432
  # The Rule statements used to identify the web requests that you want to
@@ -4255,6 +4448,26 @@ module Aws::WAFV2
4255
4448
  # fails with a `WAFOptimisticLockException`. If this happens, perform
4256
4449
  # another get, and use the new token returned by that operation.
4257
4450
  #
4451
+ # @option params [Hash<String,Types::CustomResponseBody>] :custom_response_bodies
4452
+ # A map of custom response keys and content bodies. When you create a
4453
+ # rule with a block action, you can send a custom response to the web
4454
+ # request. You define these for the web ACL, and then use them in the
4455
+ # rules and default actions that you define in the web ACL.
4456
+ #
4457
+ # For information about customizing web requests and responses, see
4458
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS WAF
4459
+ # Developer Guide][2].
4460
+ #
4461
+ # For information about the limits on count and size for custom request
4462
+ # and response settings, see [AWS WAF quotas][3] in the [AWS WAF
4463
+ # Developer Guide][2].
4464
+ #
4465
+ #
4466
+ #
4467
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
4468
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
4469
+ # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
4470
+ #
4258
4471
  # @return [Types::UpdateWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4259
4472
  #
4260
4473
  # * {Types::UpdateWebACLResponse#next_lock_token #next_lock_token} => String
@@ -4267,8 +4480,26 @@ module Aws::WAFV2
4267
4480
  # id: "EntityId", # required
4268
4481
  # default_action: { # required
4269
4482
  # block: {
4483
+ # custom_response: {
4484
+ # response_code: 1, # required
4485
+ # custom_response_body_key: "EntityName",
4486
+ # response_headers: [
4487
+ # {
4488
+ # name: "CustomHTTPHeaderName", # required
4489
+ # value: "CustomHTTPHeaderValue", # required
4490
+ # },
4491
+ # ],
4492
+ # },
4270
4493
  # },
4271
4494
  # allow: {
4495
+ # custom_request_handling: {
4496
+ # insert_headers: [ # required
4497
+ # {
4498
+ # name: "CustomHTTPHeaderName", # required
4499
+ # value: "CustomHTTPHeaderValue", # required
4500
+ # },
4501
+ # ],
4502
+ # },
4272
4503
  # },
4273
4504
  # },
4274
4505
  # description: "EntityDescription",
@@ -4296,6 +4527,15 @@ module Aws::WAFV2
4296
4527
  # },
4297
4528
  # method: {
4298
4529
  # },
4530
+ # json_body: {
4531
+ # match_pattern: { # required
4532
+ # all: {
4533
+ # },
4534
+ # included_paths: ["JsonPointerPath"],
4535
+ # },
4536
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4537
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4538
+ # },
4299
4539
  # },
4300
4540
  # text_transformations: [ # required
4301
4541
  # {
@@ -4323,6 +4563,15 @@ module Aws::WAFV2
4323
4563
  # },
4324
4564
  # method: {
4325
4565
  # },
4566
+ # json_body: {
4567
+ # match_pattern: { # required
4568
+ # all: {
4569
+ # },
4570
+ # included_paths: ["JsonPointerPath"],
4571
+ # },
4572
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4573
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4574
+ # },
4326
4575
  # },
4327
4576
  # text_transformations: [ # required
4328
4577
  # {
@@ -4349,6 +4598,15 @@ module Aws::WAFV2
4349
4598
  # },
4350
4599
  # method: {
4351
4600
  # },
4601
+ # json_body: {
4602
+ # match_pattern: { # required
4603
+ # all: {
4604
+ # },
4605
+ # included_paths: ["JsonPointerPath"],
4606
+ # },
4607
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4608
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4609
+ # },
4352
4610
  # },
4353
4611
  # text_transformations: [ # required
4354
4612
  # {
@@ -4375,6 +4633,15 @@ module Aws::WAFV2
4375
4633
  # },
4376
4634
  # method: {
4377
4635
  # },
4636
+ # json_body: {
4637
+ # match_pattern: { # required
4638
+ # all: {
4639
+ # },
4640
+ # included_paths: ["JsonPointerPath"],
4641
+ # },
4642
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4643
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4644
+ # },
4378
4645
  # },
4379
4646
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
4380
4647
  # size: 1, # required
@@ -4427,6 +4694,15 @@ module Aws::WAFV2
4427
4694
  # },
4428
4695
  # method: {
4429
4696
  # },
4697
+ # json_body: {
4698
+ # match_pattern: { # required
4699
+ # all: {
4700
+ # },
4701
+ # included_paths: ["JsonPointerPath"],
4702
+ # },
4703
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4704
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4705
+ # },
4430
4706
  # },
4431
4707
  # text_transformations: [ # required
4432
4708
  # {
@@ -4477,14 +4753,48 @@ module Aws::WAFV2
4477
4753
  # },
4478
4754
  # action: {
4479
4755
  # block: {
4756
+ # custom_response: {
4757
+ # response_code: 1, # required
4758
+ # custom_response_body_key: "EntityName",
4759
+ # response_headers: [
4760
+ # {
4761
+ # name: "CustomHTTPHeaderName", # required
4762
+ # value: "CustomHTTPHeaderValue", # required
4763
+ # },
4764
+ # ],
4765
+ # },
4480
4766
  # },
4481
4767
  # allow: {
4768
+ # custom_request_handling: {
4769
+ # insert_headers: [ # required
4770
+ # {
4771
+ # name: "CustomHTTPHeaderName", # required
4772
+ # value: "CustomHTTPHeaderValue", # required
4773
+ # },
4774
+ # ],
4775
+ # },
4482
4776
  # },
4483
4777
  # count: {
4778
+ # custom_request_handling: {
4779
+ # insert_headers: [ # required
4780
+ # {
4781
+ # name: "CustomHTTPHeaderName", # required
4782
+ # value: "CustomHTTPHeaderValue", # required
4783
+ # },
4784
+ # ],
4785
+ # },
4484
4786
  # },
4485
4787
  # },
4486
4788
  # override_action: {
4487
4789
  # count: {
4790
+ # custom_request_handling: {
4791
+ # insert_headers: [ # required
4792
+ # {
4793
+ # name: "CustomHTTPHeaderName", # required
4794
+ # value: "CustomHTTPHeaderValue", # required
4795
+ # },
4796
+ # ],
4797
+ # },
4488
4798
  # },
4489
4799
  # none: {
4490
4800
  # },
@@ -4502,6 +4812,12 @@ module Aws::WAFV2
4502
4812
  # metric_name: "MetricName", # required
4503
4813
  # },
4504
4814
  # lock_token: "LockToken", # required
4815
+ # custom_response_bodies: {
4816
+ # "EntityName" => {
4817
+ # content_type: "TEXT_PLAIN", # required, accepts TEXT_PLAIN, TEXT_HTML, APPLICATION_JSON
4818
+ # content: "ResponseContent", # required
4819
+ # },
4820
+ # },
4505
4821
  # })
4506
4822
  #
4507
4823
  # @example Response structure
@@ -4530,7 +4846,7 @@ module Aws::WAFV2
4530
4846
  params: params,
4531
4847
  config: config)
4532
4848
  context[:gem_name] = 'aws-sdk-wafv2'
4533
- context[:gem_version] = '1.14.0'
4849
+ context[:gem_version] = '1.19.0'
4534
4850
  Seahorse::Client::Request.new(handlers, context)
4535
4851
  end
4536
4852