aws-sdk-wafv2 1.13.0 → 1.18.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
 
@@ -14,6 +14,7 @@ module Aws::WAFV2
14
14
  include Seahorse::Model
15
15
 
16
16
  Action = Shapes::StringShape.new(name: 'Action')
17
+ All = Shapes::StructureShape.new(name: 'All')
17
18
  AllQueryArguments = Shapes::StructureShape.new(name: 'AllQueryArguments')
18
19
  AllowAction = Shapes::StructureShape.new(name: 'AllowAction')
19
20
  AndStatement = Shapes::StructureShape.new(name: 'AndStatement')
@@ -21,6 +22,7 @@ module Aws::WAFV2
21
22
  AssociateWebACLResponse = Shapes::StructureShape.new(name: 'AssociateWebACLResponse')
22
23
  BlockAction = Shapes::StructureShape.new(name: 'BlockAction')
23
24
  Body = Shapes::StructureShape.new(name: 'Body')
25
+ BodyParsingFallbackBehavior = Shapes::StringShape.new(name: 'BodyParsingFallbackBehavior')
24
26
  Boolean = Shapes::BooleanShape.new(name: 'Boolean')
25
27
  ByteMatchStatement = Shapes::StructureShape.new(name: 'ByteMatchStatement')
26
28
  CapacityUnit = Shapes::IntegerShape.new(name: 'CapacityUnit')
@@ -110,6 +112,11 @@ module Aws::WAFV2
110
112
  IPSetSummaries = Shapes::ListShape.new(name: 'IPSetSummaries')
111
113
  IPSetSummary = Shapes::StructureShape.new(name: 'IPSetSummary')
112
114
  IPString = Shapes::StringShape.new(name: 'IPString')
115
+ JsonBody = Shapes::StructureShape.new(name: 'JsonBody')
116
+ JsonMatchPattern = Shapes::StructureShape.new(name: 'JsonMatchPattern')
117
+ JsonMatchScope = Shapes::StringShape.new(name: 'JsonMatchScope')
118
+ JsonPointerPath = Shapes::StringShape.new(name: 'JsonPointerPath')
119
+ JsonPointerPaths = Shapes::ListShape.new(name: 'JsonPointerPaths')
113
120
  ListAvailableManagedRuleGroupsRequest = Shapes::StructureShape.new(name: 'ListAvailableManagedRuleGroupsRequest')
114
121
  ListAvailableManagedRuleGroupsResponse = Shapes::StructureShape.new(name: 'ListAvailableManagedRuleGroupsResponse')
115
122
  ListIPSetsRequest = Shapes::StructureShape.new(name: 'ListIPSetsRequest')
@@ -237,6 +244,8 @@ module Aws::WAFV2
237
244
  WebACLSummary = Shapes::StructureShape.new(name: 'WebACLSummary')
238
245
  XssMatchStatement = Shapes::StructureShape.new(name: 'XssMatchStatement')
239
246
 
247
+ All.struct_class = Types::All
248
+
240
249
  AllQueryArguments.struct_class = Types::AllQueryArguments
241
250
 
242
251
  AllowAction.struct_class = Types::AllowAction
@@ -395,6 +404,7 @@ module Aws::WAFV2
395
404
  FieldToMatch.add_member(:query_string, Shapes::ShapeRef.new(shape: QueryString, location_name: "QueryString"))
396
405
  FieldToMatch.add_member(:body, Shapes::ShapeRef.new(shape: Body, location_name: "Body"))
397
406
  FieldToMatch.add_member(:method, Shapes::ShapeRef.new(shape: Method, location_name: "Method"))
407
+ FieldToMatch.add_member(:json_body, Shapes::ShapeRef.new(shape: JsonBody, location_name: "JsonBody"))
398
408
  FieldToMatch.struct_class = Types::FieldToMatch
399
409
 
400
410
  FirewallManagerRuleGroup.add_member(:name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "Name"))
@@ -536,6 +546,17 @@ module Aws::WAFV2
536
546
  IPSetSummary.add_member(:arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ARN"))
537
547
  IPSetSummary.struct_class = Types::IPSetSummary
538
548
 
549
+ JsonBody.add_member(:match_pattern, Shapes::ShapeRef.new(shape: JsonMatchPattern, required: true, location_name: "MatchPattern"))
550
+ JsonBody.add_member(:match_scope, Shapes::ShapeRef.new(shape: JsonMatchScope, required: true, location_name: "MatchScope"))
551
+ JsonBody.add_member(:invalid_fallback_behavior, Shapes::ShapeRef.new(shape: BodyParsingFallbackBehavior, location_name: "InvalidFallbackBehavior"))
552
+ JsonBody.struct_class = Types::JsonBody
553
+
554
+ JsonMatchPattern.add_member(:all, Shapes::ShapeRef.new(shape: All, location_name: "All"))
555
+ JsonMatchPattern.add_member(:included_paths, Shapes::ShapeRef.new(shape: JsonPointerPaths, location_name: "IncludedPaths"))
556
+ JsonMatchPattern.struct_class = Types::JsonMatchPattern
557
+
558
+ JsonPointerPaths.member = Shapes::ShapeRef.new(shape: JsonPointerPath)
559
+
539
560
  ListAvailableManagedRuleGroupsRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
540
561
  ListAvailableManagedRuleGroupsRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
541
562
  ListAvailableManagedRuleGroupsRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
@@ -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
 
@@ -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
 
@@ -3,28 +3,30 @@
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
 
10
10
  module Aws::WAFV2
11
11
  module Types
12
12
 
13
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
14
- # in November, 2019. For information, including how to migrate your AWS
15
- # WAF resources from the prior release, see the [AWS WAF Developer
16
- # Guide][1].
17
- #
18
- # </note>
19
- #
20
- # All query arguments of a web request.
13
+ # Inspect all of the elements that AWS WAF has parsed and extracted from
14
+ # the web request JSON body that are within the JsonBody `MatchScope`.
15
+ # This is used with the FieldToMatch option `JsonBody`.
21
16
  #
22
17
  # This is used only to indicate the web request component for AWS WAF to
23
18
  # inspect, in the FieldToMatch specification.
24
19
  #
20
+ # @api private
21
+ #
22
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/All AWS API Documentation
25
23
  #
24
+ class All < Aws::EmptyStructure; end
25
+
26
+ # All query arguments of a web request.
26
27
  #
27
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
28
+ # This is used only to indicate the web request component for AWS WAF to
29
+ # inspect, in the FieldToMatch specification.
28
30
  #
29
31
  # @api private
30
32
  #
@@ -32,43 +34,21 @@ module Aws::WAFV2
32
34
  #
33
35
  class AllQueryArguments < Aws::EmptyStructure; end
34
36
 
35
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
36
- # in November, 2019. For information, including how to migrate your AWS
37
- # WAF resources from the prior release, see the [AWS WAF Developer
38
- # Guide][1].
39
- #
40
- # </note>
41
- #
42
37
  # Specifies that AWS WAF should allow requests.
43
38
  #
44
39
  # This is used only in the context of other settings, for example to
45
40
  # specify values for RuleAction and web ACL DefaultAction.
46
41
  #
47
- #
48
- #
49
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
50
- #
51
42
  # @api private
52
43
  #
53
44
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/AllowAction AWS API Documentation
54
45
  #
55
46
  class AllowAction < Aws::EmptyStructure; end
56
47
 
57
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
58
- # in November, 2019. For information, including how to migrate your AWS
59
- # WAF resources from the prior release, see the [AWS WAF Developer
60
- # Guide][1].
61
- #
62
- # </note>
63
- #
64
48
  # A logical rule statement used to combine other rule statements with
65
49
  # AND logic. You provide more than one Statement within the
66
50
  # `AndStatement`.
67
51
  #
68
- #
69
- #
70
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
71
- #
72
52
  # @note When making an API call, you may pass AndStatement
73
53
  # data as a hash:
74
54
  #
@@ -94,6 +74,15 @@ module Aws::WAFV2
94
74
  # },
95
75
  # method: {
96
76
  # },
77
+ # json_body: {
78
+ # match_pattern: { # required
79
+ # all: {
80
+ # },
81
+ # included_paths: ["JsonPointerPath"],
82
+ # },
83
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
84
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
85
+ # },
97
86
  # },
98
87
  # text_transformations: [ # required
99
88
  # {
@@ -121,6 +110,15 @@ module Aws::WAFV2
121
110
  # },
122
111
  # method: {
123
112
  # },
113
+ # json_body: {
114
+ # match_pattern: { # required
115
+ # all: {
116
+ # },
117
+ # included_paths: ["JsonPointerPath"],
118
+ # },
119
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
120
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
121
+ # },
124
122
  # },
125
123
  # text_transformations: [ # required
126
124
  # {
@@ -147,6 +145,15 @@ module Aws::WAFV2
147
145
  # },
148
146
  # method: {
149
147
  # },
148
+ # json_body: {
149
+ # match_pattern: { # required
150
+ # all: {
151
+ # },
152
+ # included_paths: ["JsonPointerPath"],
153
+ # },
154
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
155
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
156
+ # },
150
157
  # },
151
158
  # text_transformations: [ # required
152
159
  # {
@@ -173,6 +180,15 @@ module Aws::WAFV2
173
180
  # },
174
181
  # method: {
175
182
  # },
183
+ # json_body: {
184
+ # match_pattern: { # required
185
+ # all: {
186
+ # },
187
+ # included_paths: ["JsonPointerPath"],
188
+ # },
189
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
190
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
191
+ # },
176
192
  # },
177
193
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
178
194
  # size: 1, # required
@@ -225,6 +241,15 @@ module Aws::WAFV2
225
241
  # },
226
242
  # method: {
227
243
  # },
244
+ # json_body: {
245
+ # match_pattern: { # required
246
+ # all: {
247
+ # },
248
+ # included_paths: ["JsonPointerPath"],
249
+ # },
250
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
251
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
252
+ # },
228
253
  # },
229
254
  # text_transformations: [ # required
230
255
  # {
@@ -308,8 +333,11 @@ module Aws::WAFV2
308
333
  # `arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
309
334
  # `
310
335
  #
311
- # * For an Amazon API Gateway stage:
336
+ # * For an API Gateway REST API:
312
337
  # `arn:aws:apigateway:region::/restapis/api-id/stages/stage-name `
338
+ #
339
+ # * For an AppSync GraphQL API:
340
+ # `arn:aws:appsync:region:account-id:apis/GraphQLApiId `
313
341
  # @return [String]
314
342
  #
315
343
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/AssociateWebACLRequest AWS API Documentation
@@ -325,58 +353,29 @@ module Aws::WAFV2
325
353
  #
326
354
  class AssociateWebACLResponse < Aws::EmptyStructure; end
327
355
 
328
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
329
- # in November, 2019. For information, including how to migrate your AWS
330
- # WAF resources from the prior release, see the [AWS WAF Developer
331
- # Guide][1].
332
- #
333
- # </note>
334
- #
335
356
  # Specifies that AWS WAF should block requests.
336
357
  #
337
358
  # This is used only in the context of other settings, for example to
338
359
  # specify values for RuleAction and web ACL DefaultAction.
339
360
  #
340
- #
341
- #
342
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
343
- #
344
361
  # @api private
345
362
  #
346
363
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/BlockAction AWS API Documentation
347
364
  #
348
365
  class BlockAction < Aws::EmptyStructure; end
349
366
 
350
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
351
- # in November, 2019. For information, including how to migrate your AWS
352
- # WAF resources from the prior release, see the [AWS WAF Developer
353
- # Guide][1].
354
- #
355
- # </note>
356
- #
357
367
  # The body of a web request. This immediately follows the request
358
368
  # headers.
359
369
  #
360
370
  # This is used only to indicate the web request component for AWS WAF to
361
371
  # inspect, in the FieldToMatch specification.
362
372
  #
363
- #
364
- #
365
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
366
- #
367
373
  # @api private
368
374
  #
369
375
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/Body AWS API Documentation
370
376
  #
371
377
  class Body < Aws::EmptyStructure; end
372
378
 
373
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
374
- # in November, 2019. For information, including how to migrate your AWS
375
- # WAF resources from the prior release, see the [AWS WAF Developer
376
- # Guide][1].
377
- #
378
- # </note>
379
- #
380
379
  # A rule statement that defines a string match search for AWS WAF to
381
380
  # apply to web requests. The byte match statement provides the bytes to
382
381
  # search for, the location in requests that you want AWS WAF to search,
@@ -384,10 +383,6 @@ module Aws::WAFV2
384
383
  # that corresponds with ASCII characters. In the AWS WAF console and the
385
384
  # developer guide, this is refered to as a string match statement.
386
385
  #
387
- #
388
- #
389
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
390
- #
391
386
  # @note When making an API call, you may pass ByteMatchStatement
392
387
  # data as a hash:
393
388
  #
@@ -410,6 +405,15 @@ module Aws::WAFV2
410
405
  # },
411
406
  # method: {
412
407
  # },
408
+ # json_body: {
409
+ # match_pattern: { # required
410
+ # all: {
411
+ # },
412
+ # included_paths: ["JsonPointerPath"],
413
+ # },
414
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
415
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
416
+ # },
413
417
  # },
414
418
  # text_transformations: [ # required
415
419
  # {
@@ -551,6 +555,15 @@ module Aws::WAFV2
551
555
  # },
552
556
  # method: {
553
557
  # },
558
+ # json_body: {
559
+ # match_pattern: { # required
560
+ # all: {
561
+ # },
562
+ # included_paths: ["JsonPointerPath"],
563
+ # },
564
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
565
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
566
+ # },
554
567
  # },
555
568
  # text_transformations: [ # required
556
569
  # {
@@ -578,6 +591,15 @@ module Aws::WAFV2
578
591
  # },
579
592
  # method: {
580
593
  # },
594
+ # json_body: {
595
+ # match_pattern: { # required
596
+ # all: {
597
+ # },
598
+ # included_paths: ["JsonPointerPath"],
599
+ # },
600
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
601
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
602
+ # },
581
603
  # },
582
604
  # text_transformations: [ # required
583
605
  # {
@@ -604,6 +626,15 @@ module Aws::WAFV2
604
626
  # },
605
627
  # method: {
606
628
  # },
629
+ # json_body: {
630
+ # match_pattern: { # required
631
+ # all: {
632
+ # },
633
+ # included_paths: ["JsonPointerPath"],
634
+ # },
635
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
636
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
637
+ # },
607
638
  # },
608
639
  # text_transformations: [ # required
609
640
  # {
@@ -630,6 +661,15 @@ module Aws::WAFV2
630
661
  # },
631
662
  # method: {
632
663
  # },
664
+ # json_body: {
665
+ # match_pattern: { # required
666
+ # all: {
667
+ # },
668
+ # included_paths: ["JsonPointerPath"],
669
+ # },
670
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
671
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
672
+ # },
633
673
  # },
634
674
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
635
675
  # size: 1, # required
@@ -682,6 +722,15 @@ module Aws::WAFV2
682
722
  # },
683
723
  # method: {
684
724
  # },
725
+ # json_body: {
726
+ # match_pattern: { # required
727
+ # all: {
728
+ # },
729
+ # included_paths: ["JsonPointerPath"],
730
+ # },
731
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
732
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
733
+ # },
685
734
  # },
686
735
  # text_transformations: [ # required
687
736
  # {
@@ -756,7 +805,8 @@ module Aws::WAFV2
756
805
  # @!attribute [rw] scope
757
806
  # Specifies whether this is for an AWS CloudFront distribution or for
758
807
  # a regional application. A regional application can be an Application
759
- # Load Balancer (ALB) or an API Gateway stage.
808
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
809
+ # API.
760
810
  #
761
811
  # To work with CloudFront, you must also specify the Region US East
762
812
  # (N. Virginia) as follows:
@@ -793,22 +843,11 @@ module Aws::WAFV2
793
843
  include Aws::Structure
794
844
  end
795
845
 
796
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
797
- # in November, 2019. For information, including how to migrate your AWS
798
- # WAF resources from the prior release, see the [AWS WAF Developer
799
- # Guide][1].
800
- #
801
- # </note>
802
- #
803
846
  # Specifies that AWS WAF should count requests.
804
847
  #
805
848
  # This is used only in the context of other settings, for example to
806
849
  # specify values for RuleAction and web ACL DefaultAction.
807
850
  #
808
- #
809
- #
810
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
811
- #
812
851
  # @api private
813
852
  #
814
853
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CountAction AWS API Documentation
@@ -840,7 +879,8 @@ module Aws::WAFV2
840
879
  # @!attribute [rw] scope
841
880
  # Specifies whether this is for an AWS CloudFront distribution or for
842
881
  # a regional application. A regional application can be an Application
843
- # Load Balancer (ALB) or an API Gateway stage.
882
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
883
+ # API.
844
884
  #
845
885
  # To work with CloudFront, you must also specify the Region US East
846
886
  # (N. Virginia) as follows:
@@ -852,8 +892,7 @@ module Aws::WAFV2
852
892
  # @return [String]
853
893
  #
854
894
  # @!attribute [rw] description
855
- # A description of the IP set that helps with identification. You
856
- # cannot change the description of an IP set after you create it.
895
+ # A description of the IP set that helps with identification.
857
896
  # @return [String]
858
897
  #
859
898
  # @!attribute [rw] ip_address_version
@@ -863,8 +902,8 @@ module Aws::WAFV2
863
902
  # @!attribute [rw] addresses
864
903
  # Contains an array of strings that specify one or more IP addresses
865
904
  # or blocks of IP addresses in Classless Inter-Domain Routing (CIDR)
866
- # notation. AWS WAF supports all address ranges for IP versions IPv4
867
- # and IPv6.
905
+ # notation. AWS WAF supports all IPv4 and IPv6 CIDR ranges except for
906
+ # /0.
868
907
  #
869
908
  # Examples:
870
909
  #
@@ -955,7 +994,8 @@ module Aws::WAFV2
955
994
  # @!attribute [rw] scope
956
995
  # Specifies whether this is for an AWS CloudFront distribution or for
957
996
  # a regional application. A regional application can be an Application
958
- # Load Balancer (ALB) or an API Gateway stage.
997
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
998
+ # API.
959
999
  #
960
1000
  # To work with CloudFront, you must also specify the Region US East
961
1001
  # (N. Virginia) as follows:
@@ -967,8 +1007,7 @@ module Aws::WAFV2
967
1007
  # @return [String]
968
1008
  #
969
1009
  # @!attribute [rw] description
970
- # A description of the set that helps with identification. You cannot
971
- # change the description of a set after you create it.
1010
+ # A description of the set that helps with identification.
972
1011
  # @return [String]
973
1012
  #
974
1013
  # @!attribute [rw] regular_expression_list
@@ -1039,6 +1078,15 @@ module Aws::WAFV2
1039
1078
  # },
1040
1079
  # method: {
1041
1080
  # },
1081
+ # json_body: {
1082
+ # match_pattern: { # required
1083
+ # all: {
1084
+ # },
1085
+ # included_paths: ["JsonPointerPath"],
1086
+ # },
1087
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1088
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1089
+ # },
1042
1090
  # },
1043
1091
  # text_transformations: [ # required
1044
1092
  # {
@@ -1066,6 +1114,15 @@ module Aws::WAFV2
1066
1114
  # },
1067
1115
  # method: {
1068
1116
  # },
1117
+ # json_body: {
1118
+ # match_pattern: { # required
1119
+ # all: {
1120
+ # },
1121
+ # included_paths: ["JsonPointerPath"],
1122
+ # },
1123
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1124
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1125
+ # },
1069
1126
  # },
1070
1127
  # text_transformations: [ # required
1071
1128
  # {
@@ -1092,6 +1149,15 @@ module Aws::WAFV2
1092
1149
  # },
1093
1150
  # method: {
1094
1151
  # },
1152
+ # json_body: {
1153
+ # match_pattern: { # required
1154
+ # all: {
1155
+ # },
1156
+ # included_paths: ["JsonPointerPath"],
1157
+ # },
1158
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1159
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1160
+ # },
1095
1161
  # },
1096
1162
  # text_transformations: [ # required
1097
1163
  # {
@@ -1118,6 +1184,15 @@ module Aws::WAFV2
1118
1184
  # },
1119
1185
  # method: {
1120
1186
  # },
1187
+ # json_body: {
1188
+ # match_pattern: { # required
1189
+ # all: {
1190
+ # },
1191
+ # included_paths: ["JsonPointerPath"],
1192
+ # },
1193
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1194
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1195
+ # },
1121
1196
  # },
1122
1197
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
1123
1198
  # size: 1, # required
@@ -1170,6 +1245,15 @@ module Aws::WAFV2
1170
1245
  # },
1171
1246
  # method: {
1172
1247
  # },
1248
+ # json_body: {
1249
+ # match_pattern: { # required
1250
+ # all: {
1251
+ # },
1252
+ # included_paths: ["JsonPointerPath"],
1253
+ # },
1254
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1255
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1256
+ # },
1173
1257
  # },
1174
1258
  # text_transformations: [ # required
1175
1259
  # {
@@ -1260,7 +1344,8 @@ module Aws::WAFV2
1260
1344
  # @!attribute [rw] scope
1261
1345
  # Specifies whether this is for an AWS CloudFront distribution or for
1262
1346
  # a regional application. A regional application can be an Application
1263
- # Load Balancer (ALB) or an API Gateway stage.
1347
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
1348
+ # API.
1264
1349
  #
1265
1350
  # To work with CloudFront, you must also specify the Region US East
1266
1351
  # (N. Virginia) as follows:
@@ -1290,8 +1375,7 @@ module Aws::WAFV2
1290
1375
  # @return [Integer]
1291
1376
  #
1292
1377
  # @!attribute [rw] description
1293
- # A description of the rule group that helps with identification. You
1294
- # cannot change the description of a rule group after you create it.
1378
+ # A description of the rule group that helps with identification.
1295
1379
  # @return [String]
1296
1380
  #
1297
1381
  # @!attribute [rw] rules
@@ -1377,6 +1461,15 @@ module Aws::WAFV2
1377
1461
  # },
1378
1462
  # method: {
1379
1463
  # },
1464
+ # json_body: {
1465
+ # match_pattern: { # required
1466
+ # all: {
1467
+ # },
1468
+ # included_paths: ["JsonPointerPath"],
1469
+ # },
1470
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1471
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1472
+ # },
1380
1473
  # },
1381
1474
  # text_transformations: [ # required
1382
1475
  # {
@@ -1404,6 +1497,15 @@ module Aws::WAFV2
1404
1497
  # },
1405
1498
  # method: {
1406
1499
  # },
1500
+ # json_body: {
1501
+ # match_pattern: { # required
1502
+ # all: {
1503
+ # },
1504
+ # included_paths: ["JsonPointerPath"],
1505
+ # },
1506
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1507
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1508
+ # },
1407
1509
  # },
1408
1510
  # text_transformations: [ # required
1409
1511
  # {
@@ -1430,6 +1532,15 @@ module Aws::WAFV2
1430
1532
  # },
1431
1533
  # method: {
1432
1534
  # },
1535
+ # json_body: {
1536
+ # match_pattern: { # required
1537
+ # all: {
1538
+ # },
1539
+ # included_paths: ["JsonPointerPath"],
1540
+ # },
1541
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1542
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1543
+ # },
1433
1544
  # },
1434
1545
  # text_transformations: [ # required
1435
1546
  # {
@@ -1456,6 +1567,15 @@ module Aws::WAFV2
1456
1567
  # },
1457
1568
  # method: {
1458
1569
  # },
1570
+ # json_body: {
1571
+ # match_pattern: { # required
1572
+ # all: {
1573
+ # },
1574
+ # included_paths: ["JsonPointerPath"],
1575
+ # },
1576
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1577
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1578
+ # },
1459
1579
  # },
1460
1580
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
1461
1581
  # size: 1, # required
@@ -1508,6 +1628,15 @@ module Aws::WAFV2
1508
1628
  # },
1509
1629
  # method: {
1510
1630
  # },
1631
+ # json_body: {
1632
+ # match_pattern: { # required
1633
+ # all: {
1634
+ # },
1635
+ # included_paths: ["JsonPointerPath"],
1636
+ # },
1637
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1638
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1639
+ # },
1511
1640
  # },
1512
1641
  # text_transformations: [ # required
1513
1642
  # {
@@ -1598,7 +1727,8 @@ module Aws::WAFV2
1598
1727
  # @!attribute [rw] scope
1599
1728
  # Specifies whether this is for an AWS CloudFront distribution or for
1600
1729
  # a regional application. A regional application can be an Application
1601
- # Load Balancer (ALB) or an API Gateway stage.
1730
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
1731
+ # API.
1602
1732
  #
1603
1733
  # To work with CloudFront, you must also specify the Region US East
1604
1734
  # (N. Virginia) as follows:
@@ -1615,8 +1745,7 @@ module Aws::WAFV2
1615
1745
  # @return [Types::DefaultAction]
1616
1746
  #
1617
1747
  # @!attribute [rw] description
1618
- # A description of the Web ACL that helps with identification. You
1619
- # cannot change the description of a Web ACL after you create it.
1748
+ # A description of the Web ACL that helps with identification.
1620
1749
  # @return [String]
1621
1750
  #
1622
1751
  # @!attribute [rw] rules
@@ -1664,21 +1793,10 @@ module Aws::WAFV2
1664
1793
  include Aws::Structure
1665
1794
  end
1666
1795
 
1667
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
1668
- # in November, 2019. For information, including how to migrate your AWS
1669
- # WAF resources from the prior release, see the [AWS WAF Developer
1670
- # Guide][1].
1671
- #
1672
- # </note>
1673
- #
1674
1796
  # In a WebACL, this is the action that you want AWS WAF to perform when
1675
1797
  # a web request doesn't match any of the rules in the `WebACL`. The
1676
1798
  # default action must be a terminating action, so count is not allowed.
1677
1799
  #
1678
- #
1679
- #
1680
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1681
- #
1682
1800
  # @note When making an API call, you may pass DefaultAction
1683
1801
  # data as a hash:
1684
1802
  #
@@ -1777,7 +1895,8 @@ module Aws::WAFV2
1777
1895
  # @!attribute [rw] scope
1778
1896
  # Specifies whether this is for an AWS CloudFront distribution or for
1779
1897
  # a regional application. A regional application can be an Application
1780
- # Load Balancer (ALB) or an API Gateway stage.
1898
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
1899
+ # API.
1781
1900
  #
1782
1901
  # To work with CloudFront, you must also specify the Region US East
1783
1902
  # (N. Virginia) as follows:
@@ -1889,7 +2008,8 @@ module Aws::WAFV2
1889
2008
  # @!attribute [rw] scope
1890
2009
  # Specifies whether this is for an AWS CloudFront distribution or for
1891
2010
  # a regional application. A regional application can be an Application
1892
- # Load Balancer (ALB) or an API Gateway stage.
2011
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
2012
+ # API.
1893
2013
  #
1894
2014
  # To work with CloudFront, you must also specify the Region US East
1895
2015
  # (N. Virginia) as follows:
@@ -1951,7 +2071,8 @@ module Aws::WAFV2
1951
2071
  # @!attribute [rw] scope
1952
2072
  # Specifies whether this is for an AWS CloudFront distribution or for
1953
2073
  # a regional application. A regional application can be an Application
1954
- # Load Balancer (ALB) or an API Gateway stage.
2074
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
2075
+ # API.
1955
2076
  #
1956
2077
  # To work with CloudFront, you must also specify the Region US East
1957
2078
  # (N. Virginia) as follows:
@@ -2013,7 +2134,8 @@ module Aws::WAFV2
2013
2134
  # @!attribute [rw] scope
2014
2135
  # Specifies whether this is for an AWS CloudFront distribution or for
2015
2136
  # a regional application. A regional application can be an Application
2016
- # Load Balancer (ALB) or an API Gateway stage.
2137
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
2138
+ # API.
2017
2139
  #
2018
2140
  # To work with CloudFront, you must also specify the Region US East
2019
2141
  # (N. Virginia) as follows:
@@ -2079,7 +2201,8 @@ module Aws::WAFV2
2079
2201
  # @!attribute [rw] scope
2080
2202
  # Specifies whether this is for an AWS CloudFront distribution or for
2081
2203
  # a regional application. A regional application can be an Application
2082
- # Load Balancer (ALB) or an API Gateway stage.
2204
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
2205
+ # API.
2083
2206
  #
2084
2207
  # To work with CloudFront, you must also specify the Region US East
2085
2208
  # (N. Virginia) as follows:
@@ -2139,8 +2262,11 @@ module Aws::WAFV2
2139
2262
  # `arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
2140
2263
  # `
2141
2264
  #
2142
- # * For an Amazon API Gateway stage:
2265
+ # * For an API Gateway REST API:
2143
2266
  # `arn:aws:apigateway:region::/restapis/api-id/stages/stage-name `
2267
+ #
2268
+ # * For an AppSync GraphQL API:
2269
+ # `arn:aws:appsync:region:account-id:apis/GraphQLApiId `
2144
2270
  # @return [String]
2145
2271
  #
2146
2272
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DisassociateWebACLRequest AWS API Documentation
@@ -2155,22 +2281,11 @@ module Aws::WAFV2
2155
2281
  #
2156
2282
  class DisassociateWebACLResponse < Aws::EmptyStructure; end
2157
2283
 
2158
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2159
- # in November, 2019. For information, including how to migrate your AWS
2160
- # WAF resources from the prior release, see the [AWS WAF Developer
2161
- # Guide][1].
2162
- #
2163
- # </note>
2164
- #
2165
2284
  # Specifies a single rule to exclude from the rule group. Excluding a
2166
2285
  # rule overrides its action setting for the rule group in the web ACL,
2167
2286
  # setting it to `COUNT`. This effectively excludes the rule from acting
2168
2287
  # on web requests.
2169
2288
  #
2170
- #
2171
- #
2172
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2173
- #
2174
2289
  # @note When making an API call, you may pass ExcludedRule
2175
2290
  # data as a hash:
2176
2291
  #
@@ -2190,13 +2305,6 @@ module Aws::WAFV2
2190
2305
  include Aws::Structure
2191
2306
  end
2192
2307
 
2193
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2194
- # in November, 2019. For information, including how to migrate your AWS
2195
- # WAF resources from the prior release, see the [AWS WAF Developer
2196
- # Guide][1].
2197
- #
2198
- # </note>
2199
- #
2200
2308
  # The part of a web request that you want AWS WAF to inspect. Include
2201
2309
  # the single `FieldToMatch` type that you want to inspect, with
2202
2310
  # additional specifications as needed, according to the type. You
@@ -2204,10 +2312,6 @@ module Aws::WAFV2
2204
2312
  # statement that requires it. To inspect more than one component of a
2205
2313
  # web request, create a separate rule statement for each component.
2206
2314
  #
2207
- #
2208
- #
2209
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2210
- #
2211
2315
  # @note When making an API call, you may pass FieldToMatch
2212
2316
  # data as a hash:
2213
2317
  #
@@ -2228,12 +2332,23 @@ module Aws::WAFV2
2228
2332
  # },
2229
2333
  # method: {
2230
2334
  # },
2335
+ # json_body: {
2336
+ # match_pattern: { # required
2337
+ # all: {
2338
+ # },
2339
+ # included_paths: ["JsonPointerPath"],
2340
+ # },
2341
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
2342
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
2343
+ # },
2231
2344
  # }
2232
2345
  #
2233
2346
  # @!attribute [rw] single_header
2234
2347
  # Inspect a single header. Provide the name of the header to inspect,
2235
2348
  # for example, `User-Agent` or `Referer`. This setting isn't case
2236
2349
  # sensitive.
2350
+ #
2351
+ # Example JSON: `"SingleHeader": \{ "Name": "haystack" \}`
2237
2352
  # @return [Types::SingleHeader]
2238
2353
  #
2239
2354
  # @!attribute [rw] single_query_argument
@@ -2243,6 +2358,8 @@ module Aws::WAFV2
2243
2358
  #
2244
2359
  # This is used only to indicate the web request component for AWS WAF
2245
2360
  # to inspect, in the FieldToMatch specification.
2361
+ #
2362
+ # Example JSON: `"SingleQueryArgument": \{ "Name": "myArgument" \}`
2246
2363
  # @return [Types::SingleQueryArgument]
2247
2364
  #
2248
2365
  # @!attribute [rw] all_query_arguments
@@ -2260,10 +2377,10 @@ module Aws::WAFV2
2260
2377
  # @return [Types::QueryString]
2261
2378
  #
2262
2379
  # @!attribute [rw] body
2263
- # Inspect the request body, which immediately follows the request
2264
- # headers. This is the part of a request that contains any additional
2265
- # data that you want to send to your web server as the HTTP request
2266
- # body, such as data from a form.
2380
+ # Inspect the request body as plain text. The request body immediately
2381
+ # follows the request headers. This is the part of a request that
2382
+ # contains any additional data that you want to send to your web
2383
+ # server as the HTTP request body, such as data from a form.
2267
2384
  #
2268
2385
  # Note that only the first 8 KB (8192 bytes) of the request body are
2269
2386
  # forwarded to AWS WAF for inspection by the underlying host service.
@@ -2281,6 +2398,23 @@ module Aws::WAFV2
2281
2398
  # that the request is asking the origin to perform.
2282
2399
  # @return [Types::Method]
2283
2400
  #
2401
+ # @!attribute [rw] json_body
2402
+ # Inspect the request body as JSON. The request body immediately
2403
+ # follows the request headers. This is the part of a request that
2404
+ # contains any additional data that you want to send to your web
2405
+ # server as the HTTP request body, such as data from a form.
2406
+ #
2407
+ # Note that only the first 8 KB (8192 bytes) of the request body are
2408
+ # forwarded to AWS WAF for inspection by the underlying host service.
2409
+ # If you don't need to inspect more than 8 KB, you can guarantee that
2410
+ # you don't allow additional bytes in by combining a statement that
2411
+ # inspects the body of the web request, such as ByteMatchStatement or
2412
+ # RegexPatternSetReferenceStatement, with a SizeConstraintStatement
2413
+ # that enforces an 8 KB size limit on the body of the request. AWS WAF
2414
+ # doesn't support inspecting the entire contents of web requests
2415
+ # whose bodies exceed the 8 KB limit.
2416
+ # @return [Types::JsonBody]
2417
+ #
2284
2418
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/FieldToMatch AWS API Documentation
2285
2419
  #
2286
2420
  class FieldToMatch < Struct.new(
@@ -2290,7 +2424,8 @@ module Aws::WAFV2
2290
2424
  :uri_path,
2291
2425
  :query_string,
2292
2426
  :body,
2293
- :method)
2427
+ :method,
2428
+ :json_body)
2294
2429
  SENSITIVE = []
2295
2430
  include Aws::Structure
2296
2431
  end
@@ -2336,19 +2471,8 @@ module Aws::WAFV2
2336
2471
  # @return [Types::OverrideAction]
2337
2472
  #
2338
2473
  # @!attribute [rw] visibility_config
2339
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2340
- # in November, 2019. For information, including how to migrate your
2341
- # AWS WAF resources from the prior release, see the [AWS WAF Developer
2342
- # Guide][1].
2343
- #
2344
- # </note>
2345
- #
2346
2474
  # Defines and enables Amazon CloudWatch metrics and web request sample
2347
2475
  # collection.
2348
- #
2349
- #
2350
- #
2351
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2352
2476
  # @return [Types::VisibilityConfig]
2353
2477
  #
2354
2478
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/FirewallManagerRuleGroup AWS API Documentation
@@ -2368,13 +2492,6 @@ module Aws::WAFV2
2368
2492
  # reference.
2369
2493
  #
2370
2494
  # @!attribute [rw] managed_rule_group_statement
2371
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2372
- # in November, 2019. For information, including how to migrate your
2373
- # AWS WAF resources from the prior release, see the [AWS WAF Developer
2374
- # Guide][1].
2375
- #
2376
- # </note>
2377
- #
2378
2495
  # A rule statement used to run the rules that are defined in a managed
2379
2496
  # rule group. To use this, provide the vendor name and the name of the
2380
2497
  # rule group in this statement. You can retrieve the required names by
@@ -2383,20 +2500,9 @@ module Aws::WAFV2
2383
2500
  # You can't nest a `ManagedRuleGroupStatement`, for example for use
2384
2501
  # inside a `NotStatement` or `OrStatement`. It can only be referenced
2385
2502
  # as a top-level statement within a rule.
2386
- #
2387
- #
2388
- #
2389
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2390
2503
  # @return [Types::ManagedRuleGroupStatement]
2391
2504
  #
2392
2505
  # @!attribute [rw] rule_group_reference_statement
2393
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2394
- # in November, 2019. For information, including how to migrate your
2395
- # AWS WAF resources from the prior release, see the [AWS WAF Developer
2396
- # Guide][1].
2397
- #
2398
- # </note>
2399
- #
2400
2506
  # A rule statement used to run the rules that are defined in a
2401
2507
  # RuleGroup. To use this, create a rule group with your rules, then
2402
2508
  # provide the ARN of the rule group in this statement.
@@ -2404,10 +2510,6 @@ module Aws::WAFV2
2404
2510
  # You cannot nest a `RuleGroupReferenceStatement`, for example for use
2405
2511
  # inside a `NotStatement` or `OrStatement`. It can only be referenced
2406
2512
  # as a top-level statement within a rule.
2407
- #
2408
- #
2409
- #
2410
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2411
2513
  # @return [Types::RuleGroupReferenceStatement]
2412
2514
  #
2413
2515
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/FirewallManagerStatement AWS API Documentation
@@ -2466,10 +2568,10 @@ module Aws::WAFV2
2466
2568
  #
2467
2569
  # You can specify the following fallback behaviors:
2468
2570
  #
2469
- # * MATCH - Treat the web request as matching the rule statement. AWS
2470
- # WAF applies the rule action to the request.
2571
+ # * `MATCH` - Treat the web request as matching the rule statement.
2572
+ # AWS WAF applies the rule action to the request.
2471
2573
  #
2472
- # * NO\_MATCH - Treat the web request as not matching the rule
2574
+ # * `NO_MATCH` - Treat the web request as not matching the rule
2473
2575
  # statement.
2474
2576
  # @return [String]
2475
2577
  #
@@ -2482,20 +2584,9 @@ module Aws::WAFV2
2482
2584
  include Aws::Structure
2483
2585
  end
2484
2586
 
2485
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2486
- # in November, 2019. For information, including how to migrate your AWS
2487
- # WAF resources from the prior release, see the [AWS WAF Developer
2488
- # Guide][1].
2489
- #
2490
- # </note>
2491
- #
2492
2587
  # A rule statement used to identify web requests based on country of
2493
2588
  # origin.
2494
2589
  #
2495
- #
2496
- #
2497
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2498
- #
2499
2590
  # @note When making an API call, you may pass GeoMatchStatement
2500
2591
  # data as a hash:
2501
2592
  #
@@ -2551,7 +2642,8 @@ module Aws::WAFV2
2551
2642
  # @!attribute [rw] scope
2552
2643
  # Specifies whether this is for an AWS CloudFront distribution or for
2553
2644
  # a regional application. A regional application can be an Application
2554
- # Load Balancer (ALB) or an API Gateway stage.
2645
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
2646
+ # API.
2555
2647
  #
2556
2648
  # To work with CloudFront, you must also specify the Region US East
2557
2649
  # (N. Virginia) as follows:
@@ -2679,7 +2771,8 @@ module Aws::WAFV2
2679
2771
  # @!attribute [rw] scope
2680
2772
  # Specifies whether this is for an AWS CloudFront distribution or for
2681
2773
  # a regional application. A regional application can be an Application
2682
- # Load Balancer (ALB) or an API Gateway stage.
2774
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
2775
+ # API.
2683
2776
  #
2684
2777
  # To work with CloudFront, you must also specify the Region US East
2685
2778
  # (N. Virginia) as follows:
@@ -2750,7 +2843,8 @@ module Aws::WAFV2
2750
2843
  # @!attribute [rw] scope
2751
2844
  # Specifies whether this is for an AWS CloudFront distribution or for
2752
2845
  # a regional application. A regional application can be an Application
2753
- # Load Balancer (ALB) or an API Gateway stage.
2846
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
2847
+ # API.
2754
2848
  #
2755
2849
  # To work with CloudFront, you must also specify the Region US East
2756
2850
  # (N. Virginia) as follows:
@@ -2818,7 +2912,8 @@ module Aws::WAFV2
2818
2912
  # @!attribute [rw] scope
2819
2913
  # Specifies whether this is for an AWS CloudFront distribution or for
2820
2914
  # a regional application. A regional application can be an Application
2821
- # Load Balancer (ALB) or an API Gateway stage.
2915
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
2916
+ # API.
2822
2917
  #
2823
2918
  # To work with CloudFront, you must also specify the Region US East
2824
2919
  # (N. Virginia) as follows:
@@ -2896,7 +2991,8 @@ module Aws::WAFV2
2896
2991
  # @!attribute [rw] scope
2897
2992
  # Specifies whether this is for an AWS CloudFront distribution or for
2898
2993
  # a regional application. A regional application can be an Application
2899
- # Load Balancer (ALB) or an API Gateway stage.
2994
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
2995
+ # API.
2900
2996
  #
2901
2997
  # To work with CloudFront, you must also specify the Region US East
2902
2998
  # (N. Virginia) as follows:
@@ -2913,7 +3009,8 @@ module Aws::WAFV2
2913
3009
  # You must specify the times in Coordinated Universal Time (UTC)
2914
3010
  # format. UTC format includes the special designator, `Z`. For
2915
3011
  # example, `"2016-09-27T14:50Z"`. You can specify any time range in
2916
- # the previous three hours.
3012
+ # the previous three hours. If you specify a start time that's
3013
+ # earlier than three hours ago, AWS WAF sets it to three hours ago.
2917
3014
  # @return [Types::TimeWindow]
2918
3015
  #
2919
3016
  # @!attribute [rw] max_items
@@ -3016,7 +3113,8 @@ module Aws::WAFV2
3016
3113
  # @!attribute [rw] scope
3017
3114
  # Specifies whether this is for an AWS CloudFront distribution or for
3018
3115
  # a regional application. A regional application can be an Application
3019
- # Load Balancer (ALB) or an API Gateway stage.
3116
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
3117
+ # API.
3020
3118
  #
3021
3119
  # To work with CloudFront, you must also specify the Region US East
3022
3120
  # (N. Virginia) as follows:
@@ -3069,22 +3167,11 @@ module Aws::WAFV2
3069
3167
  include Aws::Structure
3070
3168
  end
3071
3169
 
3072
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3073
- # in November, 2019. For information, including how to migrate your AWS
3074
- # WAF resources from the prior release, see the [AWS WAF Developer
3075
- # Guide][1].
3076
- #
3077
- # </note>
3078
- #
3079
3170
  # Part of the response from GetSampledRequests. This is a complex type
3080
3171
  # that appears as `Headers` in the response syntax. `HTTPHeader`
3081
3172
  # contains the names and values of all of the headers that appear in one
3082
3173
  # of the web requests.
3083
3174
  #
3084
- #
3085
- #
3086
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3087
- #
3088
3175
  # @!attribute [rw] name
3089
3176
  # The name of the HTTP header.
3090
3177
  # @return [String]
@@ -3102,21 +3189,10 @@ module Aws::WAFV2
3102
3189
  include Aws::Structure
3103
3190
  end
3104
3191
 
3105
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3106
- # in November, 2019. For information, including how to migrate your AWS
3107
- # WAF resources from the prior release, see the [AWS WAF Developer
3108
- # Guide][1].
3109
- #
3110
- # </note>
3111
- #
3112
3192
  # Part of the response from GetSampledRequests. This is a complex type
3113
3193
  # that appears as `Request` in the response syntax. `HTTPRequest`
3114
3194
  # contains information about one of the web requests.
3115
3195
  #
3116
- #
3117
- #
3118
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3119
- #
3120
3196
  # @!attribute [rw] client_ip
3121
3197
  # The IP address that the request originated from. If the web ACL is
3122
3198
  # associated with a CloudFront distribution, this is the value of one
@@ -3171,17 +3247,11 @@ module Aws::WAFV2
3171
3247
  include Aws::Structure
3172
3248
  end
3173
3249
 
3174
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3175
- # in November, 2019. For information, including how to migrate your AWS
3176
- # WAF resources from the prior release, see the [AWS WAF Developer
3177
- # Guide][1].
3178
- #
3179
- # </note>
3180
- #
3181
3250
  # Contains one or more IP addresses or blocks of IP addresses specified
3182
3251
  # in Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports
3183
- # any CIDR range. For information about CIDR notation, see the Wikipedia
3184
- # entry [Classless Inter-Domain Routing][2].
3252
+ # all IPv4 and IPv6 CIDR ranges except for /0. For information about
3253
+ # CIDR notation, see the Wikipedia entry [Classless Inter-Domain
3254
+ # Routing][1].
3185
3255
  #
3186
3256
  # AWS WAF assigns an ARN to each `IPSet` that you create. To use an IP
3187
3257
  # set in a rule, you provide the ARN to the Rule statement
@@ -3189,8 +3259,7 @@ module Aws::WAFV2
3189
3259
  #
3190
3260
  #
3191
3261
  #
3192
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3193
- # [2]: https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
3262
+ # [1]: https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
3194
3263
  #
3195
3264
  # @!attribute [rw] name
3196
3265
  # The name of the IP set. You cannot change the name of an `IPSet`
@@ -3208,8 +3277,7 @@ module Aws::WAFV2
3208
3277
  # @return [String]
3209
3278
  #
3210
3279
  # @!attribute [rw] description
3211
- # A description of the IP set that helps with identification. You
3212
- # cannot change the description of an IP set after you create it.
3280
+ # A description of the IP set that helps with identification.
3213
3281
  # @return [String]
3214
3282
  #
3215
3283
  # @!attribute [rw] ip_address_version
@@ -3219,8 +3287,8 @@ module Aws::WAFV2
3219
3287
  # @!attribute [rw] addresses
3220
3288
  # Contains an array of strings that specify one or more IP addresses
3221
3289
  # or blocks of IP addresses in Classless Inter-Domain Routing (CIDR)
3222
- # notation. AWS WAF supports all address ranges for IP versions IPv4
3223
- # and IPv6.
3290
+ # notation. AWS WAF supports all IPv4 and IPv6 CIDR ranges except for
3291
+ # /0.
3224
3292
  #
3225
3293
  # Examples:
3226
3294
  #
@@ -3309,10 +3377,10 @@ module Aws::WAFV2
3309
3377
  #
3310
3378
  # You can specify the following fallback behaviors:
3311
3379
  #
3312
- # * MATCH - Treat the web request as matching the rule statement. AWS
3313
- # WAF applies the rule action to the request.
3380
+ # * `MATCH` - Treat the web request as matching the rule statement.
3381
+ # AWS WAF applies the rule action to the request.
3314
3382
  #
3315
- # * NO\_MATCH - Treat the web request as not matching the rule
3383
+ # * `NO_MATCH` - Treat the web request as not matching the rule
3316
3384
  # statement.
3317
3385
  # @return [String]
3318
3386
  #
@@ -3346,13 +3414,6 @@ module Aws::WAFV2
3346
3414
  include Aws::Structure
3347
3415
  end
3348
3416
 
3349
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3350
- # in November, 2019. For information, including how to migrate your AWS
3351
- # WAF resources from the prior release, see the [AWS WAF Developer
3352
- # Guide][1].
3353
- #
3354
- # </note>
3355
- #
3356
3417
  # A rule statement used to detect web requests coming from particular IP
3357
3418
  # addresses or address ranges. To use this, create an IPSet that
3358
3419
  # specifies the addresses you want to detect, then use the ARN of that
@@ -3363,10 +3424,6 @@ module Aws::WAFV2
3363
3424
  # single set in multiple rules. When you update the referenced set, AWS
3364
3425
  # WAF automatically updates all rules that reference it.
3365
3426
  #
3366
- #
3367
- #
3368
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3369
- #
3370
3427
  # @note When making an API call, you may pass IPSetReferenceStatement
3371
3428
  # data as a hash:
3372
3429
  #
@@ -3405,22 +3462,11 @@ module Aws::WAFV2
3405
3462
  include Aws::Structure
3406
3463
  end
3407
3464
 
3408
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3409
- # in November, 2019. For information, including how to migrate your AWS
3410
- # WAF resources from the prior release, see the [AWS WAF Developer
3411
- # Guide][1].
3412
- #
3413
- # </note>
3414
- #
3415
3465
  # High-level information about an IPSet, returned by operations like
3416
3466
  # create and list. This provides information like the ID, that you can
3417
3467
  # use to retrieve and manage an `IPSet`, and the ARN, that you provide
3418
3468
  # to the IPSetReferenceStatement to use the address set in a Rule.
3419
3469
  #
3420
- #
3421
- #
3422
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3423
- #
3424
3470
  # @!attribute [rw] name
3425
3471
  # The name of the IP set. You cannot change the name of an `IPSet`
3426
3472
  # after you create it.
@@ -3433,8 +3479,7 @@ module Aws::WAFV2
3433
3479
  # @return [String]
3434
3480
  #
3435
3481
  # @!attribute [rw] description
3436
- # A description of the IP set that helps with identification. You
3437
- # cannot change the description of an IP set after you create it.
3482
+ # A description of the IP set that helps with identification.
3438
3483
  # @return [String]
3439
3484
  #
3440
3485
  # @!attribute [rw] lock_token
@@ -3465,6 +3510,132 @@ module Aws::WAFV2
3465
3510
  include Aws::Structure
3466
3511
  end
3467
3512
 
3513
+ # The body of a web request, inspected as JSON. The body immediately
3514
+ # follows the request headers. This is used in the FieldToMatch
3515
+ # specification.
3516
+ #
3517
+ # Use the specifications in this object to indicate which parts of the
3518
+ # JSON body to inspect using the rule's inspection criteria. AWS WAF
3519
+ # inspects only the parts of the JSON that result from the matches that
3520
+ # you indicate.
3521
+ #
3522
+ # @note When making an API call, you may pass JsonBody
3523
+ # data as a hash:
3524
+ #
3525
+ # {
3526
+ # match_pattern: { # required
3527
+ # all: {
3528
+ # },
3529
+ # included_paths: ["JsonPointerPath"],
3530
+ # },
3531
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
3532
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
3533
+ # }
3534
+ #
3535
+ # @!attribute [rw] match_pattern
3536
+ # The patterns to look for in the JSON body. AWS WAF inspects the
3537
+ # results of these pattern matches against the rule inspection
3538
+ # criteria.
3539
+ # @return [Types::JsonMatchPattern]
3540
+ #
3541
+ # @!attribute [rw] match_scope
3542
+ # The parts of the JSON to match against using the `MatchPattern`. If
3543
+ # you specify `All`, AWS WAF matches against keys and values.
3544
+ # @return [String]
3545
+ #
3546
+ # @!attribute [rw] invalid_fallback_behavior
3547
+ # What AWS WAF should do if it fails to completely parse the JSON
3548
+ # body. The options are the following:
3549
+ #
3550
+ # * `EVALUATE_AS_STRING` - Inspect the body as plain text. AWS WAF
3551
+ # applies the text transformations and inspection criteria that you
3552
+ # defined for the JSON inspection to the body text string.
3553
+ #
3554
+ # * `MATCH` - Treat the web request as matching the rule statement.
3555
+ # AWS WAF applies the rule action to the request.
3556
+ #
3557
+ # * `NO_MATCH` - Treat the web request as not matching the rule
3558
+ # statement.
3559
+ #
3560
+ # If you don't provide this setting, AWS WAF parses and evaluates the
3561
+ # content only up to the first parsing failure that it encounters.
3562
+ #
3563
+ # AWS WAF does its best to parse the entire JSON body, but might be
3564
+ # forced to stop for reasons such as invalid characters, duplicate
3565
+ # keys, truncation, and any content whose root node isn't an object
3566
+ # or an array.
3567
+ #
3568
+ # AWS WAF parses the JSON in the following examples as two valid key,
3569
+ # value pairs:
3570
+ #
3571
+ # * Missing comma: `\{"key1":"value1""key2":"value2"\}`
3572
+ #
3573
+ # * Missing colon: `\{"key1":"value1","key2""value2"\}`
3574
+ #
3575
+ # * Extra colons: `\{"key1"::"value1","key2""value2"\}`
3576
+ # @return [String]
3577
+ #
3578
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/JsonBody AWS API Documentation
3579
+ #
3580
+ class JsonBody < Struct.new(
3581
+ :match_pattern,
3582
+ :match_scope,
3583
+ :invalid_fallback_behavior)
3584
+ SENSITIVE = []
3585
+ include Aws::Structure
3586
+ end
3587
+
3588
+ # The patterns to look for in the JSON body. AWS WAF inspects the
3589
+ # results of these pattern matches against the rule inspection criteria.
3590
+ # This is used with the FieldToMatch option `JsonBody`.
3591
+ #
3592
+ # @note When making an API call, you may pass JsonMatchPattern
3593
+ # data as a hash:
3594
+ #
3595
+ # {
3596
+ # all: {
3597
+ # },
3598
+ # included_paths: ["JsonPointerPath"],
3599
+ # }
3600
+ #
3601
+ # @!attribute [rw] all
3602
+ # Match all of the elements. See also `MatchScope` in JsonBody.
3603
+ #
3604
+ # You must specify either this setting or the `IncludedPaths` setting,
3605
+ # but not both.
3606
+ # @return [Types::All]
3607
+ #
3608
+ # @!attribute [rw] included_paths
3609
+ # Match only the specified include paths. See also `MatchScope` in
3610
+ # JsonBody.
3611
+ #
3612
+ # Provide the include paths using JSON Pointer syntax. For example,
3613
+ # `"IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]`. For information
3614
+ # about this syntax, see the Internet Engineering Task Force (IETF)
3615
+ # documentation [JavaScript Object Notation (JSON) Pointer][1].
3616
+ #
3617
+ # You must specify either this setting or the `All` setting, but not
3618
+ # both.
3619
+ #
3620
+ # <note markdown="1"> Don't use this option to include all paths. Instead, use the `All`
3621
+ # setting.
3622
+ #
3623
+ # </note>
3624
+ #
3625
+ #
3626
+ #
3627
+ # [1]: https://tools.ietf.org/html/rfc6901
3628
+ # @return [Array<String>]
3629
+ #
3630
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/JsonMatchPattern AWS API Documentation
3631
+ #
3632
+ class JsonMatchPattern < Struct.new(
3633
+ :all,
3634
+ :included_paths)
3635
+ SENSITIVE = []
3636
+ include Aws::Structure
3637
+ end
3638
+
3468
3639
  # @note When making an API call, you may pass ListAvailableManagedRuleGroupsRequest
3469
3640
  # data as a hash:
3470
3641
  #
@@ -3477,7 +3648,8 @@ module Aws::WAFV2
3477
3648
  # @!attribute [rw] scope
3478
3649
  # Specifies whether this is for an AWS CloudFront distribution or for
3479
3650
  # a regional application. A regional application can be an Application
3480
- # Load Balancer (ALB) or an API Gateway stage.
3651
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
3652
+ # API.
3481
3653
  #
3482
3654
  # To work with CloudFront, you must also specify the Region US East
3483
3655
  # (N. Virginia) as follows:
@@ -3545,7 +3717,8 @@ module Aws::WAFV2
3545
3717
  # @!attribute [rw] scope
3546
3718
  # Specifies whether this is for an AWS CloudFront distribution or for
3547
3719
  # a regional application. A regional application can be an Application
3548
- # Load Balancer (ALB) or an API Gateway stage.
3720
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
3721
+ # API.
3549
3722
  #
3550
3723
  # To work with CloudFront, you must also specify the Region US East
3551
3724
  # (N. Virginia) as follows:
@@ -3615,7 +3788,8 @@ module Aws::WAFV2
3615
3788
  # @!attribute [rw] scope
3616
3789
  # Specifies whether this is for an AWS CloudFront distribution or for
3617
3790
  # a regional application. A regional application can be an Application
3618
- # Load Balancer (ALB) or an API Gateway stage.
3791
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
3792
+ # API.
3619
3793
  #
3620
3794
  # To work with CloudFront, you must also specify the Region US East
3621
3795
  # (N. Virginia) as follows:
@@ -3683,7 +3857,8 @@ module Aws::WAFV2
3683
3857
  # @!attribute [rw] scope
3684
3858
  # Specifies whether this is for an AWS CloudFront distribution or for
3685
3859
  # a regional application. A regional application can be an Application
3686
- # Load Balancer (ALB) or an API Gateway stage.
3860
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
3861
+ # API.
3687
3862
  #
3688
3863
  # To work with CloudFront, you must also specify the Region US East
3689
3864
  # (N. Virginia) as follows:
@@ -3744,7 +3919,7 @@ module Aws::WAFV2
3744
3919
  #
3745
3920
  # {
3746
3921
  # web_acl_arn: "ResourceArn", # required
3747
- # resource_type: "APPLICATION_LOAD_BALANCER", # accepts APPLICATION_LOAD_BALANCER, API_GATEWAY
3922
+ # resource_type: "APPLICATION_LOAD_BALANCER", # accepts APPLICATION_LOAD_BALANCER, API_GATEWAY, APPSYNC
3748
3923
  # }
3749
3924
  #
3750
3925
  # @!attribute [rw] web_acl_arn
@@ -3753,8 +3928,8 @@ module Aws::WAFV2
3753
3928
  #
3754
3929
  # @!attribute [rw] resource_type
3755
3930
  # Used for web ACLs that are scoped for regional applications. A
3756
- # regional application can be an Application Load Balancer (ALB) or an
3757
- # API Gateway stage.
3931
+ # regional application can be an Application Load Balancer (ALB), an
3932
+ # API Gateway REST API, or an AppSync GraphQL API.
3758
3933
  # @return [String]
3759
3934
  #
3760
3935
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListResourcesForWebACLRequest AWS API Documentation
@@ -3791,7 +3966,8 @@ module Aws::WAFV2
3791
3966
  # @!attribute [rw] scope
3792
3967
  # Specifies whether this is for an AWS CloudFront distribution or for
3793
3968
  # a regional application. A regional application can be an Application
3794
- # Load Balancer (ALB) or an API Gateway stage.
3969
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
3970
+ # API.
3795
3971
  #
3796
3972
  # To work with CloudFront, you must also specify the Region US East
3797
3973
  # (N. Virginia) as follows:
@@ -3918,7 +4094,8 @@ module Aws::WAFV2
3918
4094
  # @!attribute [rw] scope
3919
4095
  # Specifies whether this is for an AWS CloudFront distribution or for
3920
4096
  # a regional application. A regional application can be an Application
3921
- # Load Balancer (ALB) or an API Gateway stage.
4097
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
4098
+ # API.
3922
4099
  #
3923
4100
  # To work with CloudFront, you must also specify the Region US East
3924
4101
  # (N. Virginia) as follows:
@@ -3974,22 +4151,11 @@ module Aws::WAFV2
3974
4151
  include Aws::Structure
3975
4152
  end
3976
4153
 
3977
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3978
- # in November, 2019. For information, including how to migrate your AWS
3979
- # WAF resources from the prior release, see the [AWS WAF Developer
3980
- # Guide][1].
3981
- #
3982
- # </note>
3983
- #
3984
4154
  # Defines an association between Amazon Kinesis Data Firehose
3985
4155
  # destinations and a web ACL resource, for logging from AWS WAF. As part
3986
4156
  # of the association, you can specify parts of the standard logging
3987
4157
  # fields to keep out of the logs.
3988
4158
  #
3989
- #
3990
- #
3991
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
3992
- #
3993
4159
  # @note When making an API call, you may pass LoggingConfiguration
3994
4160
  # data as a hash:
3995
4161
  #
@@ -4014,6 +4180,15 @@ module Aws::WAFV2
4014
4180
  # },
4015
4181
  # method: {
4016
4182
  # },
4183
+ # json_body: {
4184
+ # match_pattern: { # required
4185
+ # all: {
4186
+ # },
4187
+ # included_paths: ["JsonPointerPath"],
4188
+ # },
4189
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4190
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4191
+ # },
4017
4192
  # },
4018
4193
  # ],
4019
4194
  # managed_by_firewall_manager: false,
@@ -4057,13 +4232,6 @@ module Aws::WAFV2
4057
4232
  include Aws::Structure
4058
4233
  end
4059
4234
 
4060
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
4061
- # in November, 2019. For information, including how to migrate your AWS
4062
- # WAF resources from the prior release, see the [AWS WAF Developer
4063
- # Guide][1].
4064
- #
4065
- # </note>
4066
- #
4067
4235
  # A rule statement used to run the rules that are defined in a managed
4068
4236
  # rule group. To use this, provide the vendor name and the name of the
4069
4237
  # rule group in this statement. You can retrieve the required names by
@@ -4073,10 +4241,6 @@ module Aws::WAFV2
4073
4241
  # inside a `NotStatement` or `OrStatement`. It can only be referenced as
4074
4242
  # a top-level statement within a rule.
4075
4243
  #
4076
- #
4077
- #
4078
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
4079
- #
4080
4244
  # @note When making an API call, you may pass ManagedRuleGroupStatement
4081
4245
  # data as a hash:
4082
4246
  #
@@ -4116,13 +4280,6 @@ module Aws::WAFV2
4116
4280
  include Aws::Structure
4117
4281
  end
4118
4282
 
4119
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
4120
- # in November, 2019. For information, including how to migrate your AWS
4121
- # WAF resources from the prior release, see the [AWS WAF Developer
4122
- # Guide][1].
4123
- #
4124
- # </note>
4125
- #
4126
4283
  # High-level information about a managed rule group, returned by
4127
4284
  # ListAvailableManagedRuleGroups. This provides information like the
4128
4285
  # name and vendor name, that you provide when you add a
@@ -4131,10 +4288,6 @@ module Aws::WAFV2
4131
4288
  # customers, and AWS Marketplace managed rule groups, which you can
4132
4289
  # subscribe to through AWS Marketplace.
4133
4290
  #
4134
- #
4135
- #
4136
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
4137
- #
4138
4291
  # @!attribute [rw] vendor_name
4139
4292
  # The name of the managed rule group vendor. You use this, along with
4140
4293
  # the rule group name, to identify the rule group.
@@ -4160,36 +4313,18 @@ module Aws::WAFV2
4160
4313
  include Aws::Structure
4161
4314
  end
4162
4315
 
4163
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
4164
- # in November, 2019. For information, including how to migrate your AWS
4165
- # WAF resources from the prior release, see the [AWS WAF Developer
4166
- # Guide][1].
4167
- #
4168
- # </note>
4169
- #
4170
4316
  # The HTTP method of a web request. The method indicates the type of
4171
4317
  # operation that the request is asking the origin to perform.
4172
4318
  #
4173
4319
  # This is used only to indicate the web request component for AWS WAF to
4174
4320
  # inspect, in the FieldToMatch specification.
4175
4321
  #
4176
- #
4177
- #
4178
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
4179
- #
4180
4322
  # @api private
4181
4323
  #
4182
4324
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/Method AWS API Documentation
4183
4325
  #
4184
4326
  class Method < Aws::EmptyStructure; end
4185
4327
 
4186
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
4187
- # in November, 2019. For information, including how to migrate your AWS
4188
- # WAF resources from the prior release, see the [AWS WAF Developer
4189
- # Guide][1].
4190
- #
4191
- # </note>
4192
- #
4193
4328
  # Specifies that AWS WAF should do nothing. This is generally used to
4194
4329
  # try out a rule without performing any actions. You set the
4195
4330
  # `OverrideAction` on the Rule.
@@ -4197,30 +4332,15 @@ module Aws::WAFV2
4197
4332
  # This is used only in the context of other settings, for example to
4198
4333
  # specify values for RuleAction and web ACL DefaultAction.
4199
4334
  #
4200
- #
4201
- #
4202
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
4203
- #
4204
4335
  # @api private
4205
4336
  #
4206
4337
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/NoneAction AWS API Documentation
4207
4338
  #
4208
4339
  class NoneAction < Aws::EmptyStructure; end
4209
4340
 
4210
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
4211
- # in November, 2019. For information, including how to migrate your AWS
4212
- # WAF resources from the prior release, see the [AWS WAF Developer
4213
- # Guide][1].
4214
- #
4215
- # </note>
4216
- #
4217
4341
  # A logical rule statement used to negate the results of another rule
4218
4342
  # statement. You provide one Statement within the `NotStatement`.
4219
4343
  #
4220
- #
4221
- #
4222
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
4223
- #
4224
4344
  # @note When making an API call, you may pass NotStatement
4225
4345
  # data as a hash:
4226
4346
  #
@@ -4245,6 +4365,15 @@ module Aws::WAFV2
4245
4365
  # },
4246
4366
  # method: {
4247
4367
  # },
4368
+ # json_body: {
4369
+ # match_pattern: { # required
4370
+ # all: {
4371
+ # },
4372
+ # included_paths: ["JsonPointerPath"],
4373
+ # },
4374
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4375
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4376
+ # },
4248
4377
  # },
4249
4378
  # text_transformations: [ # required
4250
4379
  # {
@@ -4272,6 +4401,15 @@ module Aws::WAFV2
4272
4401
  # },
4273
4402
  # method: {
4274
4403
  # },
4404
+ # json_body: {
4405
+ # match_pattern: { # required
4406
+ # all: {
4407
+ # },
4408
+ # included_paths: ["JsonPointerPath"],
4409
+ # },
4410
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4411
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4412
+ # },
4275
4413
  # },
4276
4414
  # text_transformations: [ # required
4277
4415
  # {
@@ -4298,6 +4436,15 @@ module Aws::WAFV2
4298
4436
  # },
4299
4437
  # method: {
4300
4438
  # },
4439
+ # json_body: {
4440
+ # match_pattern: { # required
4441
+ # all: {
4442
+ # },
4443
+ # included_paths: ["JsonPointerPath"],
4444
+ # },
4445
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4446
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4447
+ # },
4301
4448
  # },
4302
4449
  # text_transformations: [ # required
4303
4450
  # {
@@ -4324,6 +4471,15 @@ module Aws::WAFV2
4324
4471
  # },
4325
4472
  # method: {
4326
4473
  # },
4474
+ # json_body: {
4475
+ # match_pattern: { # required
4476
+ # all: {
4477
+ # },
4478
+ # included_paths: ["JsonPointerPath"],
4479
+ # },
4480
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4481
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4482
+ # },
4327
4483
  # },
4328
4484
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
4329
4485
  # size: 1, # required
@@ -4376,6 +4532,15 @@ module Aws::WAFV2
4376
4532
  # },
4377
4533
  # method: {
4378
4534
  # },
4535
+ # json_body: {
4536
+ # match_pattern: { # required
4537
+ # all: {
4538
+ # },
4539
+ # included_paths: ["JsonPointerPath"],
4540
+ # },
4541
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4542
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4543
+ # },
4379
4544
  # },
4380
4545
  # text_transformations: [ # required
4381
4546
  # {
@@ -4439,20 +4604,9 @@ module Aws::WAFV2
4439
4604
  include Aws::Structure
4440
4605
  end
4441
4606
 
4442
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
4443
- # in November, 2019. For information, including how to migrate your AWS
4444
- # WAF resources from the prior release, see the [AWS WAF Developer
4445
- # Guide][1].
4446
- #
4447
- # </note>
4448
- #
4449
4607
  # A logical rule statement used to combine other rule statements with OR
4450
4608
  # logic. You provide more than one Statement within the `OrStatement`.
4451
4609
  #
4452
- #
4453
- #
4454
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
4455
- #
4456
4610
  # @note When making an API call, you may pass OrStatement
4457
4611
  # data as a hash:
4458
4612
  #
@@ -4478,6 +4632,15 @@ module Aws::WAFV2
4478
4632
  # },
4479
4633
  # method: {
4480
4634
  # },
4635
+ # json_body: {
4636
+ # match_pattern: { # required
4637
+ # all: {
4638
+ # },
4639
+ # included_paths: ["JsonPointerPath"],
4640
+ # },
4641
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4642
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4643
+ # },
4481
4644
  # },
4482
4645
  # text_transformations: [ # required
4483
4646
  # {
@@ -4505,6 +4668,15 @@ module Aws::WAFV2
4505
4668
  # },
4506
4669
  # method: {
4507
4670
  # },
4671
+ # json_body: {
4672
+ # match_pattern: { # required
4673
+ # all: {
4674
+ # },
4675
+ # included_paths: ["JsonPointerPath"],
4676
+ # },
4677
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4678
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4679
+ # },
4508
4680
  # },
4509
4681
  # text_transformations: [ # required
4510
4682
  # {
@@ -4531,6 +4703,15 @@ module Aws::WAFV2
4531
4703
  # },
4532
4704
  # method: {
4533
4705
  # },
4706
+ # json_body: {
4707
+ # match_pattern: { # required
4708
+ # all: {
4709
+ # },
4710
+ # included_paths: ["JsonPointerPath"],
4711
+ # },
4712
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4713
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4714
+ # },
4534
4715
  # },
4535
4716
  # text_transformations: [ # required
4536
4717
  # {
@@ -4557,6 +4738,15 @@ module Aws::WAFV2
4557
4738
  # },
4558
4739
  # method: {
4559
4740
  # },
4741
+ # json_body: {
4742
+ # match_pattern: { # required
4743
+ # all: {
4744
+ # },
4745
+ # included_paths: ["JsonPointerPath"],
4746
+ # },
4747
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4748
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4749
+ # },
4560
4750
  # },
4561
4751
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
4562
4752
  # size: 1, # required
@@ -4609,6 +4799,15 @@ module Aws::WAFV2
4609
4799
  # },
4610
4800
  # method: {
4611
4801
  # },
4802
+ # json_body: {
4803
+ # match_pattern: { # required
4804
+ # all: {
4805
+ # },
4806
+ # included_paths: ["JsonPointerPath"],
4807
+ # },
4808
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4809
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4810
+ # },
4612
4811
  # },
4613
4812
  # text_transformations: [ # required
4614
4813
  # {
@@ -4738,6 +4937,15 @@ module Aws::WAFV2
4738
4937
  # },
4739
4938
  # method: {
4740
4939
  # },
4940
+ # json_body: {
4941
+ # match_pattern: { # required
4942
+ # all: {
4943
+ # },
4944
+ # included_paths: ["JsonPointerPath"],
4945
+ # },
4946
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
4947
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
4948
+ # },
4741
4949
  # },
4742
4950
  # ],
4743
4951
  # managed_by_firewall_manager: false,
@@ -4818,36 +5026,18 @@ module Aws::WAFV2
4818
5026
  #
4819
5027
  class PutPermissionPolicyResponse < Aws::EmptyStructure; end
4820
5028
 
4821
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
4822
- # in November, 2019. For information, including how to migrate your AWS
4823
- # WAF resources from the prior release, see the [AWS WAF Developer
4824
- # Guide][1].
4825
- #
4826
- # </note>
4827
- #
4828
5029
  # The query string of a web request. This is the part of a URL that
4829
5030
  # appears after a `?` character, if any.
4830
5031
  #
4831
5032
  # This is used only to indicate the web request component for AWS WAF to
4832
5033
  # inspect, in the FieldToMatch specification.
4833
5034
  #
4834
- #
4835
- #
4836
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
4837
- #
4838
5035
  # @api private
4839
5036
  #
4840
5037
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/QueryString AWS API Documentation
4841
5038
  #
4842
5039
  class QueryString < Aws::EmptyStructure; end
4843
5040
 
4844
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
4845
- # in November, 2019. For information, including how to migrate your AWS
4846
- # WAF resources from the prior release, see the [AWS WAF Developer
4847
- # Guide][1].
4848
- #
4849
- # </note>
4850
- #
4851
5041
  # A rate-based rule tracks the rate of requests for each originating IP
4852
5042
  # address, and triggers the rule action when the rate exceeds a limit
4853
5043
  # that you specify on the number of requests in any 5-minute time span.
@@ -4881,10 +5071,6 @@ module Aws::WAFV2
4881
5071
  # `NotStatement` or `OrStatement`. It can only be referenced as a
4882
5072
  # top-level statement within a rule.
4883
5073
  #
4884
- #
4885
- #
4886
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
4887
- #
4888
5074
  # @note When making an API call, you may pass RateBasedStatement
4889
5075
  # data as a hash:
4890
5076
  #
@@ -4911,6 +5097,15 @@ module Aws::WAFV2
4911
5097
  # },
4912
5098
  # method: {
4913
5099
  # },
5100
+ # json_body: {
5101
+ # match_pattern: { # required
5102
+ # all: {
5103
+ # },
5104
+ # included_paths: ["JsonPointerPath"],
5105
+ # },
5106
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
5107
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
5108
+ # },
4914
5109
  # },
4915
5110
  # text_transformations: [ # required
4916
5111
  # {
@@ -4938,6 +5133,15 @@ module Aws::WAFV2
4938
5133
  # },
4939
5134
  # method: {
4940
5135
  # },
5136
+ # json_body: {
5137
+ # match_pattern: { # required
5138
+ # all: {
5139
+ # },
5140
+ # included_paths: ["JsonPointerPath"],
5141
+ # },
5142
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
5143
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
5144
+ # },
4941
5145
  # },
4942
5146
  # text_transformations: [ # required
4943
5147
  # {
@@ -4964,6 +5168,15 @@ module Aws::WAFV2
4964
5168
  # },
4965
5169
  # method: {
4966
5170
  # },
5171
+ # json_body: {
5172
+ # match_pattern: { # required
5173
+ # all: {
5174
+ # },
5175
+ # included_paths: ["JsonPointerPath"],
5176
+ # },
5177
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
5178
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
5179
+ # },
4967
5180
  # },
4968
5181
  # text_transformations: [ # required
4969
5182
  # {
@@ -4990,6 +5203,15 @@ module Aws::WAFV2
4990
5203
  # },
4991
5204
  # method: {
4992
5205
  # },
5206
+ # json_body: {
5207
+ # match_pattern: { # required
5208
+ # all: {
5209
+ # },
5210
+ # included_paths: ["JsonPointerPath"],
5211
+ # },
5212
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
5213
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
5214
+ # },
4993
5215
  # },
4994
5216
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
4995
5217
  # size: 1, # required
@@ -5042,6 +5264,15 @@ module Aws::WAFV2
5042
5264
  # },
5043
5265
  # method: {
5044
5266
  # },
5267
+ # json_body: {
5268
+ # match_pattern: { # required
5269
+ # all: {
5270
+ # },
5271
+ # included_paths: ["JsonPointerPath"],
5272
+ # },
5273
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
5274
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
5275
+ # },
5045
5276
  # },
5046
5277
  # text_transformations: [ # required
5047
5278
  # {
@@ -5146,20 +5377,9 @@ module Aws::WAFV2
5146
5377
  include Aws::Structure
5147
5378
  end
5148
5379
 
5149
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
5150
- # in November, 2019. For information, including how to migrate your AWS
5151
- # WAF resources from the prior release, see the [AWS WAF Developer
5152
- # Guide][1].
5153
- #
5154
- # </note>
5155
- #
5156
5380
  # The set of IP addresses that are currently blocked for a rate-based
5157
5381
  # statement.
5158
5382
  #
5159
- #
5160
- #
5161
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5162
- #
5163
5383
  # @!attribute [rw] ip_address_version
5164
5384
  # @return [String]
5165
5385
  #
@@ -5176,19 +5396,8 @@ module Aws::WAFV2
5176
5396
  include Aws::Structure
5177
5397
  end
5178
5398
 
5179
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
5180
- # in November, 2019. For information, including how to migrate your AWS
5181
- # WAF resources from the prior release, see the [AWS WAF Developer
5182
- # Guide][1].
5183
- #
5184
- # </note>
5185
- #
5186
5399
  # A single regular expression. This is used in a RegexPatternSet.
5187
5400
  #
5188
- #
5189
- #
5190
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5191
- #
5192
5401
  # @note When making an API call, you may pass Regex
5193
5402
  # data as a hash:
5194
5403
  #
@@ -5208,23 +5417,12 @@ module Aws::WAFV2
5208
5417
  include Aws::Structure
5209
5418
  end
5210
5419
 
5211
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
5212
- # in November, 2019. For information, including how to migrate your AWS
5213
- # WAF resources from the prior release, see the [AWS WAF Developer
5214
- # Guide][1].
5215
- #
5216
- # </note>
5217
- #
5218
5420
  # Contains one or more regular expressions.
5219
5421
  #
5220
5422
  # AWS WAF assigns an ARN to each `RegexPatternSet` that you create. To
5221
5423
  # use a set in a rule, you provide the ARN to the Rule statement
5222
5424
  # RegexPatternSetReferenceStatement.
5223
5425
  #
5224
- #
5225
- #
5226
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5227
- #
5228
5426
  # @!attribute [rw] name
5229
5427
  # The name of the set. You cannot change the name after you create the
5230
5428
  # set.
@@ -5241,8 +5439,7 @@ module Aws::WAFV2
5241
5439
  # @return [String]
5242
5440
  #
5243
5441
  # @!attribute [rw] description
5244
- # A description of the set that helps with identification. You cannot
5245
- # change the description of a set after you create it.
5442
+ # A description of the set that helps with identification.
5246
5443
  # @return [String]
5247
5444
  #
5248
5445
  # @!attribute [rw] regular_expression_list
@@ -5261,13 +5458,6 @@ module Aws::WAFV2
5261
5458
  include Aws::Structure
5262
5459
  end
5263
5460
 
5264
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
5265
- # in November, 2019. For information, including how to migrate your AWS
5266
- # WAF resources from the prior release, see the [AWS WAF Developer
5267
- # Guide][1].
5268
- #
5269
- # </note>
5270
- #
5271
5461
  # A rule statement used to search web request components for matches
5272
5462
  # with regular expressions. To use this, create a RegexPatternSet that
5273
5463
  # specifies the expressions that you want to detect, then use the ARN of
@@ -5281,10 +5471,6 @@ module Aws::WAFV2
5281
5471
  # referenced set, AWS WAF automatically updates all rules that reference
5282
5472
  # it.
5283
5473
  #
5284
- #
5285
- #
5286
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5287
- #
5288
5474
  # @note When making an API call, you may pass RegexPatternSetReferenceStatement
5289
5475
  # data as a hash:
5290
5476
  #
@@ -5307,6 +5493,15 @@ module Aws::WAFV2
5307
5493
  # },
5308
5494
  # method: {
5309
5495
  # },
5496
+ # json_body: {
5497
+ # match_pattern: { # required
5498
+ # all: {
5499
+ # },
5500
+ # included_paths: ["JsonPointerPath"],
5501
+ # },
5502
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
5503
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
5504
+ # },
5310
5505
  # },
5311
5506
  # text_transformations: [ # required
5312
5507
  # {
@@ -5345,23 +5540,12 @@ module Aws::WAFV2
5345
5540
  include Aws::Structure
5346
5541
  end
5347
5542
 
5348
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
5349
- # in November, 2019. For information, including how to migrate your AWS
5350
- # WAF resources from the prior release, see the [AWS WAF Developer
5351
- # Guide][1].
5352
- #
5353
- # </note>
5354
- #
5355
5543
  # High-level information about a RegexPatternSet, returned by operations
5356
5544
  # like create and list. This provides information like the ID, that you
5357
5545
  # can use to retrieve and manage a `RegexPatternSet`, and the ARN, that
5358
5546
  # you provide to the RegexPatternSetReferenceStatement to use the
5359
5547
  # pattern set in a Rule.
5360
5548
  #
5361
- #
5362
- #
5363
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5364
- #
5365
5549
  # @!attribute [rw] name
5366
5550
  # The name of the data type instance. You cannot change the name after
5367
5551
  # you create the instance.
@@ -5374,8 +5558,7 @@ module Aws::WAFV2
5374
5558
  # @return [String]
5375
5559
  #
5376
5560
  # @!attribute [rw] description
5377
- # A description of the set that helps with identification. You cannot
5378
- # change the description of a set after you create it.
5561
+ # A description of the set that helps with identification.
5379
5562
  # @return [String]
5380
5563
  #
5381
5564
  # @!attribute [rw] lock_token
@@ -5406,23 +5589,12 @@ module Aws::WAFV2
5406
5589
  include Aws::Structure
5407
5590
  end
5408
5591
 
5409
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
5410
- # in November, 2019. For information, including how to migrate your AWS
5411
- # WAF resources from the prior release, see the [AWS WAF Developer
5412
- # Guide][1].
5413
- #
5414
- # </note>
5415
- #
5416
5592
  # A single rule, which you can use in a WebACL or RuleGroup to identify
5417
5593
  # web requests that you want to allow, block, or count. Each rule
5418
5594
  # includes one top-level Statement that AWS WAF uses to identify
5419
5595
  # matching web requests, and parameters that govern how AWS WAF handles
5420
5596
  # them.
5421
5597
  #
5422
- #
5423
- #
5424
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5425
- #
5426
5598
  # @note When making an API call, you may pass Rule
5427
5599
  # data as a hash:
5428
5600
  #
@@ -5449,6 +5621,15 @@ module Aws::WAFV2
5449
5621
  # },
5450
5622
  # method: {
5451
5623
  # },
5624
+ # json_body: {
5625
+ # match_pattern: { # required
5626
+ # all: {
5627
+ # },
5628
+ # included_paths: ["JsonPointerPath"],
5629
+ # },
5630
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
5631
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
5632
+ # },
5452
5633
  # },
5453
5634
  # text_transformations: [ # required
5454
5635
  # {
@@ -5476,6 +5657,15 @@ module Aws::WAFV2
5476
5657
  # },
5477
5658
  # method: {
5478
5659
  # },
5660
+ # json_body: {
5661
+ # match_pattern: { # required
5662
+ # all: {
5663
+ # },
5664
+ # included_paths: ["JsonPointerPath"],
5665
+ # },
5666
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
5667
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
5668
+ # },
5479
5669
  # },
5480
5670
  # text_transformations: [ # required
5481
5671
  # {
@@ -5502,6 +5692,15 @@ module Aws::WAFV2
5502
5692
  # },
5503
5693
  # method: {
5504
5694
  # },
5695
+ # json_body: {
5696
+ # match_pattern: { # required
5697
+ # all: {
5698
+ # },
5699
+ # included_paths: ["JsonPointerPath"],
5700
+ # },
5701
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
5702
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
5703
+ # },
5505
5704
  # },
5506
5705
  # text_transformations: [ # required
5507
5706
  # {
@@ -5528,6 +5727,15 @@ module Aws::WAFV2
5528
5727
  # },
5529
5728
  # method: {
5530
5729
  # },
5730
+ # json_body: {
5731
+ # match_pattern: { # required
5732
+ # all: {
5733
+ # },
5734
+ # included_paths: ["JsonPointerPath"],
5735
+ # },
5736
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
5737
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
5738
+ # },
5531
5739
  # },
5532
5740
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
5533
5741
  # size: 1, # required
@@ -5580,6 +5788,15 @@ module Aws::WAFV2
5580
5788
  # },
5581
5789
  # method: {
5582
5790
  # },
5791
+ # json_body: {
5792
+ # match_pattern: { # required
5793
+ # all: {
5794
+ # },
5795
+ # included_paths: ["JsonPointerPath"],
5796
+ # },
5797
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
5798
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
5799
+ # },
5583
5800
  # },
5584
5801
  # text_transformations: [ # required
5585
5802
  # {
@@ -5723,21 +5940,10 @@ module Aws::WAFV2
5723
5940
  include Aws::Structure
5724
5941
  end
5725
5942
 
5726
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
5727
- # in November, 2019. For information, including how to migrate your AWS
5728
- # WAF resources from the prior release, see the [AWS WAF Developer
5729
- # Guide][1].
5730
- #
5731
- # </note>
5732
- #
5733
5943
  # The action that AWS WAF should take on a web request when it matches a
5734
5944
  # rule's statement. Settings at the web ACL level can override the rule
5735
5945
  # action setting.
5736
5946
  #
5737
- #
5738
- #
5739
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5740
- #
5741
5947
  # @note When making an API call, you may pass RuleAction
5742
5948
  # data as a hash:
5743
5949
  #
@@ -5772,23 +5978,12 @@ module Aws::WAFV2
5772
5978
  include Aws::Structure
5773
5979
  end
5774
5980
 
5775
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
5776
- # in November, 2019. For information, including how to migrate your AWS
5777
- # WAF resources from the prior release, see the [AWS WAF Developer
5778
- # Guide][1].
5779
- #
5780
- # </note>
5781
- #
5782
5981
  # A rule group defines a collection of rules to inspect and control web
5783
5982
  # requests that you can use in a WebACL. When you create a rule group,
5784
5983
  # you define an immutable capacity limit. If you update a rule group,
5785
5984
  # you must stay within the capacity. This allows others to reuse the
5786
5985
  # rule group with confidence in its capacity requirements.
5787
5986
  #
5788
- #
5789
- #
5790
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5791
- #
5792
5987
  # @!attribute [rw] name
5793
5988
  # The name of the rule group. You cannot change the name of a rule
5794
5989
  # group after you create it.
@@ -5823,8 +6018,7 @@ module Aws::WAFV2
5823
6018
  # @return [String]
5824
6019
  #
5825
6020
  # @!attribute [rw] description
5826
- # A description of the rule group that helps with identification. You
5827
- # cannot change the description of a rule group after you create it.
6021
+ # A description of the rule group that helps with identification.
5828
6022
  # @return [String]
5829
6023
  #
5830
6024
  # @!attribute [rw] rules
@@ -5853,13 +6047,6 @@ module Aws::WAFV2
5853
6047
  include Aws::Structure
5854
6048
  end
5855
6049
 
5856
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
5857
- # in November, 2019. For information, including how to migrate your AWS
5858
- # WAF resources from the prior release, see the [AWS WAF Developer
5859
- # Guide][1].
5860
- #
5861
- # </note>
5862
- #
5863
6050
  # A rule statement used to run the rules that are defined in a
5864
6051
  # RuleGroup. To use this, create a rule group with your rules, then
5865
6052
  # provide the ARN of the rule group in this statement.
@@ -5868,10 +6055,6 @@ module Aws::WAFV2
5868
6055
  # inside a `NotStatement` or `OrStatement`. It can only be referenced as
5869
6056
  # a top-level statement within a rule.
5870
6057
  #
5871
- #
5872
- #
5873
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5874
- #
5875
6058
  # @note When making an API call, you may pass RuleGroupReferenceStatement
5876
6059
  # data as a hash:
5877
6060
  #
@@ -5902,23 +6085,12 @@ module Aws::WAFV2
5902
6085
  include Aws::Structure
5903
6086
  end
5904
6087
 
5905
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
5906
- # in November, 2019. For information, including how to migrate your AWS
5907
- # WAF resources from the prior release, see the [AWS WAF Developer
5908
- # Guide][1].
5909
- #
5910
- # </note>
5911
- #
5912
6088
  # High-level information about a RuleGroup, returned by operations like
5913
6089
  # create and list. This provides information like the ID, that you can
5914
6090
  # use to retrieve and manage a `RuleGroup`, and the ARN, that you
5915
6091
  # provide to the RuleGroupReferenceStatement to use the rule group in a
5916
6092
  # Rule.
5917
6093
  #
5918
- #
5919
- #
5920
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5921
- #
5922
6094
  # @!attribute [rw] name
5923
6095
  # The name of the data type instance. You cannot change the name after
5924
6096
  # you create the instance.
@@ -5931,8 +6103,7 @@ module Aws::WAFV2
5931
6103
  # @return [String]
5932
6104
  #
5933
6105
  # @!attribute [rw] description
5934
- # A description of the rule group that helps with identification. You
5935
- # cannot change the description of a rule group after you create it.
6106
+ # A description of the rule group that helps with identification.
5936
6107
  # @return [String]
5937
6108
  #
5938
6109
  # @!attribute [rw] lock_token
@@ -5963,42 +6134,20 @@ module Aws::WAFV2
5963
6134
  include Aws::Structure
5964
6135
  end
5965
6136
 
5966
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
5967
- # in November, 2019. For information, including how to migrate your AWS
5968
- # WAF resources from the prior release, see the [AWS WAF Developer
5969
- # Guide][1].
5970
- #
5971
- # </note>
5972
- #
5973
6137
  # High-level information about a Rule, returned by operations like
5974
6138
  # DescribeManagedRuleGroup. This provides information like the ID, that
5975
6139
  # you can use to retrieve and manage a `RuleGroup`, and the ARN, that
5976
6140
  # you provide to the RuleGroupReferenceStatement to use the rule group
5977
6141
  # in a Rule.
5978
6142
  #
5979
- #
5980
- #
5981
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
5982
- #
5983
6143
  # @!attribute [rw] name
5984
6144
  # The name of the rule.
5985
6145
  # @return [String]
5986
6146
  #
5987
6147
  # @!attribute [rw] action
5988
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
5989
- # in November, 2019. For information, including how to migrate your
5990
- # AWS WAF resources from the prior release, see the [AWS WAF Developer
5991
- # Guide][1].
5992
- #
5993
- # </note>
5994
- #
5995
6148
  # The action that AWS WAF should take on a web request when it matches
5996
6149
  # a rule's statement. Settings at the web ACL level can override the
5997
6150
  # rule action setting.
5998
- #
5999
- #
6000
- #
6001
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
6002
6151
  # @return [Types::RuleAction]
6003
6152
  #
6004
6153
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/RuleSummary AWS API Documentation
@@ -6010,23 +6159,12 @@ module Aws::WAFV2
6010
6159
  include Aws::Structure
6011
6160
  end
6012
6161
 
6013
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
6014
- # in November, 2019. For information, including how to migrate your AWS
6015
- # WAF resources from the prior release, see the [AWS WAF Developer
6016
- # Guide][1].
6017
- #
6018
- # </note>
6019
- #
6020
6162
  # Represents a single sampled web request. The response from
6021
6163
  # GetSampledRequests includes a `SampledHTTPRequests` complex type that
6022
6164
  # appears as `SampledRequests` in the response syntax.
6023
6165
  # `SampledHTTPRequests` contains an array of `SampledHTTPRequest`
6024
6166
  # objects.
6025
6167
  #
6026
- #
6027
- #
6028
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
6029
- #
6030
6168
  # @!attribute [rw] request
6031
6169
  # A complex type that contains detailed information about the request.
6032
6170
  # @return [Types::HTTPRequest]
@@ -6068,23 +6206,12 @@ module Aws::WAFV2
6068
6206
  include Aws::Structure
6069
6207
  end
6070
6208
 
6071
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
6072
- # in November, 2019. For information, including how to migrate your AWS
6073
- # WAF resources from the prior release, see the [AWS WAF Developer
6074
- # Guide][1].
6075
- #
6076
- # </note>
6077
- #
6078
6209
  # One of the headers in a web request, identified by name, for example,
6079
6210
  # `User-Agent` or `Referer`. This setting isn't case sensitive.
6080
6211
  #
6081
6212
  # This is used only to indicate the web request component for AWS WAF to
6082
6213
  # inspect, in the FieldToMatch specification.
6083
6214
  #
6084
- #
6085
- #
6086
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
6087
- #
6088
6215
  # @note When making an API call, you may pass SingleHeader
6089
6216
  # data as a hash:
6090
6217
  #
@@ -6104,21 +6231,10 @@ module Aws::WAFV2
6104
6231
  include Aws::Structure
6105
6232
  end
6106
6233
 
6107
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
6108
- # in November, 2019. For information, including how to migrate your AWS
6109
- # WAF resources from the prior release, see the [AWS WAF Developer
6110
- # Guide][1].
6111
- #
6112
- # </note>
6113
- #
6114
6234
  # One query argument in a web request, identified by name, for example
6115
6235
  # *UserName* or *SalesRegion*. The name can be up to 30 characters long
6116
6236
  # and isn't case sensitive.
6117
6237
  #
6118
- #
6119
- #
6120
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
6121
- #
6122
6238
  # @note When making an API call, you may pass SingleQueryArgument
6123
6239
  # data as a hash:
6124
6240
  #
@@ -6138,13 +6254,6 @@ module Aws::WAFV2
6138
6254
  include Aws::Structure
6139
6255
  end
6140
6256
 
6141
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
6142
- # in November, 2019. For information, including how to migrate your AWS
6143
- # WAF resources from the prior release, see the [AWS WAF Developer
6144
- # Guide][1].
6145
- #
6146
- # </note>
6147
- #
6148
6257
  # A rule statement that compares a number of bytes against the size of a
6149
6258
  # request component, using a comparison operator, such as greater than
6150
6259
  # (&gt;) or less than (&lt;). For example, you can use a size constraint
@@ -6160,10 +6269,6 @@ module Aws::WAFV2
6160
6269
  # the slash (/) in the URI counts as one character. For example, the URI
6161
6270
  # `/logo.jpg` is nine characters long.
6162
6271
  #
6163
- #
6164
- #
6165
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
6166
- #
6167
6272
  # @note When making an API call, you may pass SizeConstraintStatement
6168
6273
  # data as a hash:
6169
6274
  #
@@ -6185,6 +6290,15 @@ module Aws::WAFV2
6185
6290
  # },
6186
6291
  # method: {
6187
6292
  # },
6293
+ # json_body: {
6294
+ # match_pattern: { # required
6295
+ # all: {
6296
+ # },
6297
+ # included_paths: ["JsonPointerPath"],
6298
+ # },
6299
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6300
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6301
+ # },
6188
6302
  # },
6189
6303
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
6190
6304
  # size: 1, # required
@@ -6230,13 +6344,6 @@ module Aws::WAFV2
6230
6344
  include Aws::Structure
6231
6345
  end
6232
6346
 
6233
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
6234
- # in November, 2019. For information, including how to migrate your AWS
6235
- # WAF resources from the prior release, see the [AWS WAF Developer
6236
- # Guide][1].
6237
- #
6238
- # </note>
6239
- #
6240
6347
  # Attackers sometimes insert malicious SQL code into web requests in an
6241
6348
  # effort to extract data from your database. To allow or block web
6242
6349
  # requests that appear to contain malicious SQL code, create one or more
@@ -6246,10 +6353,6 @@ module Aws::WAFV2
6246
6353
  # you create a web ACL, you specify whether to allow or block requests
6247
6354
  # that appear to contain malicious SQL code.
6248
6355
  #
6249
- #
6250
- #
6251
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
6252
- #
6253
6356
  # @note When making an API call, you may pass SqliMatchStatement
6254
6357
  # data as a hash:
6255
6358
  #
@@ -6271,6 +6374,15 @@ module Aws::WAFV2
6271
6374
  # },
6272
6375
  # method: {
6273
6376
  # },
6377
+ # json_body: {
6378
+ # match_pattern: { # required
6379
+ # all: {
6380
+ # },
6381
+ # included_paths: ["JsonPointerPath"],
6382
+ # },
6383
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6384
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6385
+ # },
6274
6386
  # },
6275
6387
  # text_transformations: [ # required
6276
6388
  # {
@@ -6303,20 +6415,9 @@ module Aws::WAFV2
6303
6415
  include Aws::Structure
6304
6416
  end
6305
6417
 
6306
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
6307
- # in November, 2019. For information, including how to migrate your AWS
6308
- # WAF resources from the prior release, see the [AWS WAF Developer
6309
- # Guide][1].
6310
- #
6311
- # </note>
6312
- #
6313
6418
  # The processing guidance for a Rule, used by AWS WAF to determine
6314
6419
  # whether a web request matches the rule.
6315
6420
  #
6316
- #
6317
- #
6318
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
6319
- #
6320
6421
  # @note When making an API call, you may pass Statement
6321
6422
  # data as a hash:
6322
6423
  #
@@ -6340,6 +6441,15 @@ module Aws::WAFV2
6340
6441
  # },
6341
6442
  # method: {
6342
6443
  # },
6444
+ # json_body: {
6445
+ # match_pattern: { # required
6446
+ # all: {
6447
+ # },
6448
+ # included_paths: ["JsonPointerPath"],
6449
+ # },
6450
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6451
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6452
+ # },
6343
6453
  # },
6344
6454
  # text_transformations: [ # required
6345
6455
  # {
@@ -6367,6 +6477,15 @@ module Aws::WAFV2
6367
6477
  # },
6368
6478
  # method: {
6369
6479
  # },
6480
+ # json_body: {
6481
+ # match_pattern: { # required
6482
+ # all: {
6483
+ # },
6484
+ # included_paths: ["JsonPointerPath"],
6485
+ # },
6486
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6487
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6488
+ # },
6370
6489
  # },
6371
6490
  # text_transformations: [ # required
6372
6491
  # {
@@ -6393,6 +6512,15 @@ module Aws::WAFV2
6393
6512
  # },
6394
6513
  # method: {
6395
6514
  # },
6515
+ # json_body: {
6516
+ # match_pattern: { # required
6517
+ # all: {
6518
+ # },
6519
+ # included_paths: ["JsonPointerPath"],
6520
+ # },
6521
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6522
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6523
+ # },
6396
6524
  # },
6397
6525
  # text_transformations: [ # required
6398
6526
  # {
@@ -6419,6 +6547,15 @@ module Aws::WAFV2
6419
6547
  # },
6420
6548
  # method: {
6421
6549
  # },
6550
+ # json_body: {
6551
+ # match_pattern: { # required
6552
+ # all: {
6553
+ # },
6554
+ # included_paths: ["JsonPointerPath"],
6555
+ # },
6556
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6557
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6558
+ # },
6422
6559
  # },
6423
6560
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
6424
6561
  # size: 1, # required
@@ -6471,6 +6608,15 @@ module Aws::WAFV2
6471
6608
  # },
6472
6609
  # method: {
6473
6610
  # },
6611
+ # json_body: {
6612
+ # match_pattern: { # required
6613
+ # all: {
6614
+ # },
6615
+ # included_paths: ["JsonPointerPath"],
6616
+ # },
6617
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6618
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6619
+ # },
6474
6620
  # },
6475
6621
  # text_transformations: [ # required
6476
6622
  # {
@@ -6502,6 +6648,15 @@ module Aws::WAFV2
6502
6648
  # },
6503
6649
  # method: {
6504
6650
  # },
6651
+ # json_body: {
6652
+ # match_pattern: { # required
6653
+ # all: {
6654
+ # },
6655
+ # included_paths: ["JsonPointerPath"],
6656
+ # },
6657
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6658
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6659
+ # },
6505
6660
  # },
6506
6661
  # text_transformations: [ # required
6507
6662
  # {
@@ -6529,6 +6684,15 @@ module Aws::WAFV2
6529
6684
  # },
6530
6685
  # method: {
6531
6686
  # },
6687
+ # json_body: {
6688
+ # match_pattern: { # required
6689
+ # all: {
6690
+ # },
6691
+ # included_paths: ["JsonPointerPath"],
6692
+ # },
6693
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6694
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6695
+ # },
6532
6696
  # },
6533
6697
  # text_transformations: [ # required
6534
6698
  # {
@@ -6555,6 +6719,15 @@ module Aws::WAFV2
6555
6719
  # },
6556
6720
  # method: {
6557
6721
  # },
6722
+ # json_body: {
6723
+ # match_pattern: { # required
6724
+ # all: {
6725
+ # },
6726
+ # included_paths: ["JsonPointerPath"],
6727
+ # },
6728
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6729
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6730
+ # },
6558
6731
  # },
6559
6732
  # text_transformations: [ # required
6560
6733
  # {
@@ -6581,6 +6754,15 @@ module Aws::WAFV2
6581
6754
  # },
6582
6755
  # method: {
6583
6756
  # },
6757
+ # json_body: {
6758
+ # match_pattern: { # required
6759
+ # all: {
6760
+ # },
6761
+ # included_paths: ["JsonPointerPath"],
6762
+ # },
6763
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6764
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6765
+ # },
6584
6766
  # },
6585
6767
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
6586
6768
  # size: 1, # required
@@ -6633,6 +6815,15 @@ module Aws::WAFV2
6633
6815
  # },
6634
6816
  # method: {
6635
6817
  # },
6818
+ # json_body: {
6819
+ # match_pattern: { # required
6820
+ # all: {
6821
+ # },
6822
+ # included_paths: ["JsonPointerPath"],
6823
+ # },
6824
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6825
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6826
+ # },
6636
6827
  # },
6637
6828
  # text_transformations: [ # required
6638
6829
  # {
@@ -6700,6 +6891,15 @@ module Aws::WAFV2
6700
6891
  # },
6701
6892
  # method: {
6702
6893
  # },
6894
+ # json_body: {
6895
+ # match_pattern: { # required
6896
+ # all: {
6897
+ # },
6898
+ # included_paths: ["JsonPointerPath"],
6899
+ # },
6900
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6901
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6902
+ # },
6703
6903
  # },
6704
6904
  # text_transformations: [ # required
6705
6905
  # {
@@ -6727,6 +6927,15 @@ module Aws::WAFV2
6727
6927
  # },
6728
6928
  # method: {
6729
6929
  # },
6930
+ # json_body: {
6931
+ # match_pattern: { # required
6932
+ # all: {
6933
+ # },
6934
+ # included_paths: ["JsonPointerPath"],
6935
+ # },
6936
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6937
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6938
+ # },
6730
6939
  # },
6731
6940
  # text_transformations: [ # required
6732
6941
  # {
@@ -6753,6 +6962,15 @@ module Aws::WAFV2
6753
6962
  # },
6754
6963
  # method: {
6755
6964
  # },
6965
+ # json_body: {
6966
+ # match_pattern: { # required
6967
+ # all: {
6968
+ # },
6969
+ # included_paths: ["JsonPointerPath"],
6970
+ # },
6971
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6972
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6973
+ # },
6756
6974
  # },
6757
6975
  # text_transformations: [ # required
6758
6976
  # {
@@ -6779,6 +6997,15 @@ module Aws::WAFV2
6779
6997
  # },
6780
6998
  # method: {
6781
6999
  # },
7000
+ # json_body: {
7001
+ # match_pattern: { # required
7002
+ # all: {
7003
+ # },
7004
+ # included_paths: ["JsonPointerPath"],
7005
+ # },
7006
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
7007
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
7008
+ # },
6782
7009
  # },
6783
7010
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
6784
7011
  # size: 1, # required
@@ -6831,6 +7058,15 @@ module Aws::WAFV2
6831
7058
  # },
6832
7059
  # method: {
6833
7060
  # },
7061
+ # json_body: {
7062
+ # match_pattern: { # required
7063
+ # all: {
7064
+ # },
7065
+ # included_paths: ["JsonPointerPath"],
7066
+ # },
7067
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
7068
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
7069
+ # },
6834
7070
  # },
6835
7071
  # text_transformations: [ # required
6836
7072
  # {
@@ -6897,6 +7133,15 @@ module Aws::WAFV2
6897
7133
  # },
6898
7134
  # method: {
6899
7135
  # },
7136
+ # json_body: {
7137
+ # match_pattern: { # required
7138
+ # all: {
7139
+ # },
7140
+ # included_paths: ["JsonPointerPath"],
7141
+ # },
7142
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
7143
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
7144
+ # },
6900
7145
  # },
6901
7146
  # text_transformations: [ # required
6902
7147
  # {
@@ -6924,6 +7169,15 @@ module Aws::WAFV2
6924
7169
  # },
6925
7170
  # method: {
6926
7171
  # },
7172
+ # json_body: {
7173
+ # match_pattern: { # required
7174
+ # all: {
7175
+ # },
7176
+ # included_paths: ["JsonPointerPath"],
7177
+ # },
7178
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
7179
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
7180
+ # },
6927
7181
  # },
6928
7182
  # text_transformations: [ # required
6929
7183
  # {
@@ -6950,6 +7204,15 @@ module Aws::WAFV2
6950
7204
  # },
6951
7205
  # method: {
6952
7206
  # },
7207
+ # json_body: {
7208
+ # match_pattern: { # required
7209
+ # all: {
7210
+ # },
7211
+ # included_paths: ["JsonPointerPath"],
7212
+ # },
7213
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
7214
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
7215
+ # },
6953
7216
  # },
6954
7217
  # text_transformations: [ # required
6955
7218
  # {
@@ -6976,6 +7239,15 @@ module Aws::WAFV2
6976
7239
  # },
6977
7240
  # method: {
6978
7241
  # },
7242
+ # json_body: {
7243
+ # match_pattern: { # required
7244
+ # all: {
7245
+ # },
7246
+ # included_paths: ["JsonPointerPath"],
7247
+ # },
7248
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
7249
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
7250
+ # },
6979
7251
  # },
6980
7252
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
6981
7253
  # size: 1, # required
@@ -7028,6 +7300,15 @@ module Aws::WAFV2
7028
7300
  # },
7029
7301
  # method: {
7030
7302
  # },
7303
+ # json_body: {
7304
+ # match_pattern: { # required
7305
+ # all: {
7306
+ # },
7307
+ # included_paths: ["JsonPointerPath"],
7308
+ # },
7309
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
7310
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
7311
+ # },
7031
7312
  # },
7032
7313
  # text_transformations: [ # required
7033
7314
  # {
@@ -7093,6 +7374,15 @@ module Aws::WAFV2
7093
7374
  # },
7094
7375
  # method: {
7095
7376
  # },
7377
+ # json_body: {
7378
+ # match_pattern: { # required
7379
+ # all: {
7380
+ # },
7381
+ # included_paths: ["JsonPointerPath"],
7382
+ # },
7383
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
7384
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
7385
+ # },
7096
7386
  # },
7097
7387
  # text_transformations: [ # required
7098
7388
  # {
@@ -7120,6 +7410,15 @@ module Aws::WAFV2
7120
7410
  # },
7121
7411
  # method: {
7122
7412
  # },
7413
+ # json_body: {
7414
+ # match_pattern: { # required
7415
+ # all: {
7416
+ # },
7417
+ # included_paths: ["JsonPointerPath"],
7418
+ # },
7419
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
7420
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
7421
+ # },
7123
7422
  # },
7124
7423
  # text_transformations: [ # required
7125
7424
  # {
@@ -7146,6 +7445,15 @@ module Aws::WAFV2
7146
7445
  # },
7147
7446
  # method: {
7148
7447
  # },
7448
+ # json_body: {
7449
+ # match_pattern: { # required
7450
+ # all: {
7451
+ # },
7452
+ # included_paths: ["JsonPointerPath"],
7453
+ # },
7454
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
7455
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
7456
+ # },
7149
7457
  # },
7150
7458
  # text_transformations: [ # required
7151
7459
  # {
@@ -7172,6 +7480,15 @@ module Aws::WAFV2
7172
7480
  # },
7173
7481
  # method: {
7174
7482
  # },
7483
+ # json_body: {
7484
+ # match_pattern: { # required
7485
+ # all: {
7486
+ # },
7487
+ # included_paths: ["JsonPointerPath"],
7488
+ # },
7489
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
7490
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
7491
+ # },
7175
7492
  # },
7176
7493
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
7177
7494
  # size: 1, # required
@@ -7224,6 +7541,15 @@ module Aws::WAFV2
7224
7541
  # },
7225
7542
  # method: {
7226
7543
  # },
7544
+ # json_body: {
7545
+ # match_pattern: { # required
7546
+ # all: {
7547
+ # },
7548
+ # included_paths: ["JsonPointerPath"],
7549
+ # },
7550
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
7551
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
7552
+ # },
7227
7553
  # },
7228
7554
  # text_transformations: [ # required
7229
7555
  # {
@@ -7458,13 +7784,6 @@ module Aws::WAFV2
7458
7784
  include Aws::Structure
7459
7785
  end
7460
7786
 
7461
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
7462
- # in November, 2019. For information, including how to migrate your AWS
7463
- # WAF resources from the prior release, see the [AWS WAF Developer
7464
- # Guide][1].
7465
- #
7466
- # </note>
7467
- #
7468
7787
  # A tag associated with an AWS resource. Tags are key:value pairs that
7469
7788
  # you can use to categorize and manage your resources, for purposes like
7470
7789
  # billing or other management. Typically, the tag key represents a
@@ -7479,10 +7798,6 @@ module Aws::WAFV2
7479
7798
  # ACLs, rule groups, IP sets, and regex pattern sets. You can't manage
7480
7799
  # or view tags through the AWS WAF console.
7481
7800
  #
7482
- #
7483
- #
7484
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
7485
- #
7486
7801
  # @note When making an API call, you may pass Tag
7487
7802
  # data as a hash:
7488
7803
  #
@@ -7512,13 +7827,6 @@ module Aws::WAFV2
7512
7827
  include Aws::Structure
7513
7828
  end
7514
7829
 
7515
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
7516
- # in November, 2019. For information, including how to migrate your AWS
7517
- # WAF resources from the prior release, see the [AWS WAF Developer
7518
- # Guide][1].
7519
- #
7520
- # </note>
7521
- #
7522
7830
  # The collection of tagging definitions for an AWS resource. Tags are
7523
7831
  # key:value pairs that you can use to categorize and manage your
7524
7832
  # resources, for purposes like billing or other management. Typically,
@@ -7533,10 +7841,6 @@ module Aws::WAFV2
7533
7841
  # ACLs, rule groups, IP sets, and regex pattern sets. You can't manage
7534
7842
  # or view tags through the AWS WAF console.
7535
7843
  #
7536
- #
7537
- #
7538
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
7539
- #
7540
7844
  # @!attribute [rw] resource_arn
7541
7845
  # The Amazon Resource Name (ARN) of the resource.
7542
7846
  # @return [String]
@@ -7588,20 +7892,9 @@ module Aws::WAFV2
7588
7892
  #
7589
7893
  class TagResourceResponse < Aws::EmptyStructure; end
7590
7894
 
7591
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
7592
- # in November, 2019. For information, including how to migrate your AWS
7593
- # WAF resources from the prior release, see the [AWS WAF Developer
7594
- # Guide][1].
7595
- #
7596
- # </note>
7597
- #
7598
7895
  # Text transformations eliminate some of the unusual formatting that
7599
7896
  # attackers use in web requests in an effort to bypass detection.
7600
7897
  #
7601
- #
7602
- #
7603
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
7604
- #
7605
7898
  # @note When making an API call, you may pass TextTransformation
7606
7899
  # data as a hash:
7607
7900
  #
@@ -7699,13 +7992,6 @@ module Aws::WAFV2
7699
7992
  include Aws::Structure
7700
7993
  end
7701
7994
 
7702
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
7703
- # in November, 2019. For information, including how to migrate your AWS
7704
- # WAF resources from the prior release, see the [AWS WAF Developer
7705
- # Guide][1].
7706
- #
7707
- # </note>
7708
- #
7709
7995
  # In a GetSampledRequests request, the `StartTime` and `EndTime` objects
7710
7996
  # specify the time range for which you want AWS WAF to return a sample
7711
7997
  # of web requests.
@@ -7724,10 +8010,6 @@ module Aws::WAFV2
7724
8010
  # 5,000th request. In that case, `EndTime` is the time that AWS WAF
7725
8011
  # received the 5,000th request.
7726
8012
  #
7727
- #
7728
- #
7729
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
7730
- #
7731
8013
  # @note When making an API call, you may pass TimeWindow
7732
8014
  # data as a hash:
7733
8015
  #
@@ -7813,7 +8095,8 @@ module Aws::WAFV2
7813
8095
  # @!attribute [rw] scope
7814
8096
  # Specifies whether this is for an AWS CloudFront distribution or for
7815
8097
  # a regional application. A regional application can be an Application
7816
- # Load Balancer (ALB) or an API Gateway stage.
8098
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
8099
+ # API.
7817
8100
  #
7818
8101
  # To work with CloudFront, you must also specify the Region US East
7819
8102
  # (N. Virginia) as follows:
@@ -7831,15 +8114,14 @@ module Aws::WAFV2
7831
8114
  # @return [String]
7832
8115
  #
7833
8116
  # @!attribute [rw] description
7834
- # A description of the IP set that helps with identification. You
7835
- # cannot change the description of an IP set after you create it.
8117
+ # A description of the IP set that helps with identification.
7836
8118
  # @return [String]
7837
8119
  #
7838
8120
  # @!attribute [rw] addresses
7839
8121
  # Contains an array of strings that specify one or more IP addresses
7840
8122
  # or blocks of IP addresses in Classless Inter-Domain Routing (CIDR)
7841
- # notation. AWS WAF supports all address ranges for IP versions IPv4
7842
- # and IPv6.
8123
+ # notation. AWS WAF supports all IPv4 and IPv6 CIDR ranges except for
8124
+ # /0.
7843
8125
  #
7844
8126
  # Examples:
7845
8127
  #
@@ -7933,7 +8215,8 @@ module Aws::WAFV2
7933
8215
  # @!attribute [rw] scope
7934
8216
  # Specifies whether this is for an AWS CloudFront distribution or for
7935
8217
  # a regional application. A regional application can be an Application
7936
- # Load Balancer (ALB) or an API Gateway stage.
8218
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
8219
+ # API.
7937
8220
  #
7938
8221
  # To work with CloudFront, you must also specify the Region US East
7939
8222
  # (N. Virginia) as follows:
@@ -7951,8 +8234,7 @@ module Aws::WAFV2
7951
8234
  # @return [String]
7952
8235
  #
7953
8236
  # @!attribute [rw] description
7954
- # A description of the set that helps with identification. You cannot
7955
- # change the description of a set after you create it.
8237
+ # A description of the set that helps with identification.
7956
8238
  # @return [String]
7957
8239
  #
7958
8240
  # @!attribute [rw] regular_expression_list
@@ -8029,6 +8311,15 @@ module Aws::WAFV2
8029
8311
  # },
8030
8312
  # method: {
8031
8313
  # },
8314
+ # json_body: {
8315
+ # match_pattern: { # required
8316
+ # all: {
8317
+ # },
8318
+ # included_paths: ["JsonPointerPath"],
8319
+ # },
8320
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
8321
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
8322
+ # },
8032
8323
  # },
8033
8324
  # text_transformations: [ # required
8034
8325
  # {
@@ -8056,6 +8347,15 @@ module Aws::WAFV2
8056
8347
  # },
8057
8348
  # method: {
8058
8349
  # },
8350
+ # json_body: {
8351
+ # match_pattern: { # required
8352
+ # all: {
8353
+ # },
8354
+ # included_paths: ["JsonPointerPath"],
8355
+ # },
8356
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
8357
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
8358
+ # },
8059
8359
  # },
8060
8360
  # text_transformations: [ # required
8061
8361
  # {
@@ -8082,6 +8382,15 @@ module Aws::WAFV2
8082
8382
  # },
8083
8383
  # method: {
8084
8384
  # },
8385
+ # json_body: {
8386
+ # match_pattern: { # required
8387
+ # all: {
8388
+ # },
8389
+ # included_paths: ["JsonPointerPath"],
8390
+ # },
8391
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
8392
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
8393
+ # },
8085
8394
  # },
8086
8395
  # text_transformations: [ # required
8087
8396
  # {
@@ -8108,6 +8417,15 @@ module Aws::WAFV2
8108
8417
  # },
8109
8418
  # method: {
8110
8419
  # },
8420
+ # json_body: {
8421
+ # match_pattern: { # required
8422
+ # all: {
8423
+ # },
8424
+ # included_paths: ["JsonPointerPath"],
8425
+ # },
8426
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
8427
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
8428
+ # },
8111
8429
  # },
8112
8430
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
8113
8431
  # size: 1, # required
@@ -8160,6 +8478,15 @@ module Aws::WAFV2
8160
8478
  # },
8161
8479
  # method: {
8162
8480
  # },
8481
+ # json_body: {
8482
+ # match_pattern: { # required
8483
+ # all: {
8484
+ # },
8485
+ # included_paths: ["JsonPointerPath"],
8486
+ # },
8487
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
8488
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
8489
+ # },
8163
8490
  # },
8164
8491
  # text_transformations: [ # required
8165
8492
  # {
@@ -8245,7 +8572,8 @@ module Aws::WAFV2
8245
8572
  # @!attribute [rw] scope
8246
8573
  # Specifies whether this is for an AWS CloudFront distribution or for
8247
8574
  # a regional application. A regional application can be an Application
8248
- # Load Balancer (ALB) or an API Gateway stage.
8575
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
8576
+ # API.
8249
8577
  #
8250
8578
  # To work with CloudFront, you must also specify the Region US East
8251
8579
  # (N. Virginia) as follows:
@@ -8263,8 +8591,7 @@ module Aws::WAFV2
8263
8591
  # @return [String]
8264
8592
  #
8265
8593
  # @!attribute [rw] description
8266
- # A description of the rule group that helps with identification. You
8267
- # cannot change the description of a rule group after you create it.
8594
+ # A description of the rule group that helps with identification.
8268
8595
  # @return [String]
8269
8596
  #
8270
8597
  # @!attribute [rw] rules
@@ -8357,6 +8684,15 @@ module Aws::WAFV2
8357
8684
  # },
8358
8685
  # method: {
8359
8686
  # },
8687
+ # json_body: {
8688
+ # match_pattern: { # required
8689
+ # all: {
8690
+ # },
8691
+ # included_paths: ["JsonPointerPath"],
8692
+ # },
8693
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
8694
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
8695
+ # },
8360
8696
  # },
8361
8697
  # text_transformations: [ # required
8362
8698
  # {
@@ -8384,6 +8720,15 @@ module Aws::WAFV2
8384
8720
  # },
8385
8721
  # method: {
8386
8722
  # },
8723
+ # json_body: {
8724
+ # match_pattern: { # required
8725
+ # all: {
8726
+ # },
8727
+ # included_paths: ["JsonPointerPath"],
8728
+ # },
8729
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
8730
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
8731
+ # },
8387
8732
  # },
8388
8733
  # text_transformations: [ # required
8389
8734
  # {
@@ -8410,6 +8755,15 @@ module Aws::WAFV2
8410
8755
  # },
8411
8756
  # method: {
8412
8757
  # },
8758
+ # json_body: {
8759
+ # match_pattern: { # required
8760
+ # all: {
8761
+ # },
8762
+ # included_paths: ["JsonPointerPath"],
8763
+ # },
8764
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
8765
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
8766
+ # },
8413
8767
  # },
8414
8768
  # text_transformations: [ # required
8415
8769
  # {
@@ -8436,6 +8790,15 @@ module Aws::WAFV2
8436
8790
  # },
8437
8791
  # method: {
8438
8792
  # },
8793
+ # json_body: {
8794
+ # match_pattern: { # required
8795
+ # all: {
8796
+ # },
8797
+ # included_paths: ["JsonPointerPath"],
8798
+ # },
8799
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
8800
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
8801
+ # },
8439
8802
  # },
8440
8803
  # comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
8441
8804
  # size: 1, # required
@@ -8488,6 +8851,15 @@ module Aws::WAFV2
8488
8851
  # },
8489
8852
  # method: {
8490
8853
  # },
8854
+ # json_body: {
8855
+ # match_pattern: { # required
8856
+ # all: {
8857
+ # },
8858
+ # included_paths: ["JsonPointerPath"],
8859
+ # },
8860
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
8861
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
8862
+ # },
8491
8863
  # },
8492
8864
  # text_transformations: [ # required
8493
8865
  # {
@@ -8573,7 +8945,8 @@ module Aws::WAFV2
8573
8945
  # @!attribute [rw] scope
8574
8946
  # Specifies whether this is for an AWS CloudFront distribution or for
8575
8947
  # a regional application. A regional application can be an Application
8576
- # Load Balancer (ALB) or an API Gateway stage.
8948
+ # Load Balancer (ALB), an API Gateway REST API, or an AppSync GraphQL
8949
+ # API.
8577
8950
  #
8578
8951
  # To work with CloudFront, you must also specify the Region US East
8579
8952
  # (N. Virginia) as follows:
@@ -8596,8 +8969,7 @@ module Aws::WAFV2
8596
8969
  # @return [Types::DefaultAction]
8597
8970
  #
8598
8971
  # @!attribute [rw] description
8599
- # A description of the Web ACL that helps with identification. You
8600
- # cannot change the description of a Web ACL after you create it.
8972
+ # A description of the Web ACL that helps with identification.
8601
8973
  # @return [String]
8602
8974
  #
8603
8975
  # @!attribute [rw] rules
@@ -8653,13 +9025,6 @@ module Aws::WAFV2
8653
9025
  include Aws::Structure
8654
9026
  end
8655
9027
 
8656
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
8657
- # in November, 2019. For information, including how to migrate your AWS
8658
- # WAF resources from the prior release, see the [AWS WAF Developer
8659
- # Guide][1].
8660
- #
8661
- # </note>
8662
- #
8663
9028
  # The path component of the URI of a web request. This is the part of a
8664
9029
  # web request that identifies a resource, for example,
8665
9030
  # `/images/daily-ad.jpg`.
@@ -8667,30 +9032,15 @@ module Aws::WAFV2
8667
9032
  # This is used only to indicate the web request component for AWS WAF to
8668
9033
  # inspect, in the FieldToMatch specification.
8669
9034
  #
8670
- #
8671
- #
8672
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
8673
- #
8674
9035
  # @api private
8675
9036
  #
8676
9037
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UriPath AWS API Documentation
8677
9038
  #
8678
9039
  class UriPath < Aws::EmptyStructure; end
8679
9040
 
8680
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
8681
- # in November, 2019. For information, including how to migrate your AWS
8682
- # WAF resources from the prior release, see the [AWS WAF Developer
8683
- # Guide][1].
8684
- #
8685
- # </note>
8686
- #
8687
9041
  # Defines and enables Amazon CloudWatch metrics and web request sample
8688
9042
  # collection.
8689
9043
  #
8690
- #
8691
- #
8692
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
8693
- #
8694
9044
  # @note When making an API call, you may pass VisibilityConfig
8695
9045
  # data as a hash:
8696
9046
  #
@@ -8999,13 +9349,6 @@ module Aws::WAFV2
8999
9349
  include Aws::Structure
9000
9350
  end
9001
9351
 
9002
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
9003
- # in November, 2019. For information, including how to migrate your AWS
9004
- # WAF resources from the prior release, see the [AWS WAF Developer
9005
- # Guide][1].
9006
- #
9007
- # </note>
9008
- #
9009
9352
  # A Web ACL defines a collection of rules to use to inspect and control
9010
9353
  # web requests. Each rule has an action defined (allow, block, or count)
9011
9354
  # for requests that match the statement of the rule. In the Web ACL, you
@@ -9013,12 +9356,8 @@ module Aws::WAFV2
9013
9356
  # does not match any of the rules. The rules in a Web ACL can be a
9014
9357
  # combination of the types Rule, RuleGroup, and managed rule group. You
9015
9358
  # can associate a Web ACL with one or more AWS resources to protect. The
9016
- # resources can be Amazon CloudFront, an Amazon API Gateway API, or an
9017
- # Application Load Balancer.
9018
- #
9019
- #
9020
- #
9021
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
9359
+ # resources can be Amazon CloudFront, an Amazon API Gateway REST API, an
9360
+ # Application Load Balancer, or an AWS AppSync GraphQL API.
9022
9361
  #
9023
9362
  # @!attribute [rw] name
9024
9363
  # The name of the Web ACL. You cannot change the name of a Web ACL
@@ -9042,8 +9381,7 @@ module Aws::WAFV2
9042
9381
  # @return [Types::DefaultAction]
9043
9382
  #
9044
9383
  # @!attribute [rw] description
9045
- # A description of the Web ACL that helps with identification. You
9046
- # cannot change the description of a Web ACL after you create it.
9384
+ # A description of the Web ACL that helps with identification.
9047
9385
  # @return [String]
9048
9386
  #
9049
9387
  # @!attribute [rw] rules
@@ -9122,22 +9460,11 @@ module Aws::WAFV2
9122
9460
  include Aws::Structure
9123
9461
  end
9124
9462
 
9125
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
9126
- # in November, 2019. For information, including how to migrate your AWS
9127
- # WAF resources from the prior release, see the [AWS WAF Developer
9128
- # Guide][1].
9129
- #
9130
- # </note>
9131
- #
9132
9463
  # High-level information about a WebACL, returned by operations like
9133
9464
  # create and list. This provides information like the ID, that you can
9134
9465
  # use to retrieve and manage a `WebACL`, and the ARN, that you provide
9135
9466
  # to operations like AssociateWebACL.
9136
9467
  #
9137
- #
9138
- #
9139
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
9140
- #
9141
9468
  # @!attribute [rw] name
9142
9469
  # The name of the Web ACL. You cannot change the name of a Web ACL
9143
9470
  # after you create it.
@@ -9150,8 +9477,7 @@ module Aws::WAFV2
9150
9477
  # @return [String]
9151
9478
  #
9152
9479
  # @!attribute [rw] description
9153
- # A description of the Web ACL that helps with identification. You
9154
- # cannot change the description of a Web ACL after you create it.
9480
+ # A description of the Web ACL that helps with identification.
9155
9481
  # @return [String]
9156
9482
  #
9157
9483
  # @!attribute [rw] lock_token
@@ -9182,13 +9508,6 @@ module Aws::WAFV2
9182
9508
  include Aws::Structure
9183
9509
  end
9184
9510
 
9185
- # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
9186
- # in November, 2019. For information, including how to migrate your AWS
9187
- # WAF resources from the prior release, see the [AWS WAF Developer
9188
- # Guide][1].
9189
- #
9190
- # </note>
9191
- #
9192
9511
  # A rule statement that defines a cross-site scripting (XSS) match
9193
9512
  # search for AWS WAF to apply to web requests. XSS attacks are those
9194
9513
  # where the attacker uses vulnerabilities in a benign website as a
@@ -9198,10 +9517,6 @@ module Aws::WAFV2
9198
9517
  # use on the search area before AWS WAF searches for character sequences
9199
9518
  # that are likely to be malicious strings.
9200
9519
  #
9201
- #
9202
- #
9203
- # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
9204
- #
9205
9520
  # @note When making an API call, you may pass XssMatchStatement
9206
9521
  # data as a hash:
9207
9522
  #
@@ -9223,6 +9538,15 @@ module Aws::WAFV2
9223
9538
  # },
9224
9539
  # method: {
9225
9540
  # },
9541
+ # json_body: {
9542
+ # match_pattern: { # required
9543
+ # all: {
9544
+ # },
9545
+ # included_paths: ["JsonPointerPath"],
9546
+ # },
9547
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
9548
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
9549
+ # },
9226
9550
  # },
9227
9551
  # text_transformations: [ # required
9228
9552
  # {