aws-sdk-wafv2 1.23.0 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -39,6 +39,8 @@ module Aws::WAFV2
39
39
  # This is used only to indicate the web request component for WAF to
40
40
  # inspect, in the FieldToMatch specification.
41
41
  #
42
+ # JSON specification: `"All": \{\}`
43
+ #
42
44
  # @api private
43
45
  #
44
46
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/All AWS API Documentation
@@ -50,6 +52,8 @@ module Aws::WAFV2
50
52
  # This is used only to indicate the web request component for WAF to
51
53
  # inspect, in the FieldToMatch specification.
52
54
  #
55
+ # JSON specification: `"AllQueryArguments": \{\}`
56
+ #
53
57
  # @api private
54
58
  #
55
59
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/AllQueryArguments AWS API Documentation
@@ -339,6 +343,7 @@ module Aws::WAFV2
339
343
  # managed_rule_group_statement: {
340
344
  # vendor_name: "VendorName", # required
341
345
  # name: "EntityName", # required
346
+ # version: "VersionKeyString",
342
347
  # excluded_rules: [
343
348
  # {
344
349
  # name: "EntityName", # required
@@ -352,6 +357,42 @@ module Aws::WAFV2
352
357
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
353
358
  # key: "LabelMatchKey", # required
354
359
  # },
360
+ # regex_match_statement: {
361
+ # regex_string: "RegexPatternString", # required
362
+ # field_to_match: { # required
363
+ # single_header: {
364
+ # name: "FieldToMatchData", # required
365
+ # },
366
+ # single_query_argument: {
367
+ # name: "FieldToMatchData", # required
368
+ # },
369
+ # all_query_arguments: {
370
+ # },
371
+ # uri_path: {
372
+ # },
373
+ # query_string: {
374
+ # },
375
+ # body: {
376
+ # },
377
+ # method: {
378
+ # },
379
+ # json_body: {
380
+ # match_pattern: { # required
381
+ # all: {
382
+ # },
383
+ # included_paths: ["JsonPointerPath"],
384
+ # },
385
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
386
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
387
+ # },
388
+ # },
389
+ # text_transformations: [ # required
390
+ # {
391
+ # priority: 1, # required
392
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
393
+ # },
394
+ # ],
395
+ # },
355
396
  # },
356
397
  # ],
357
398
  # }
@@ -461,6 +502,8 @@ module Aws::WAFV2
461
502
  # This is used only to indicate the web request component for WAF to
462
503
  # inspect, in the FieldToMatch specification.
463
504
  #
505
+ # JSON specification: `"Body": \{\}`
506
+ #
464
507
  # @api private
465
508
  #
466
509
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/Body AWS API Documentation
@@ -863,6 +906,7 @@ module Aws::WAFV2
863
906
  # managed_rule_group_statement: {
864
907
  # vendor_name: "VendorName", # required
865
908
  # name: "EntityName", # required
909
+ # version: "VersionKeyString",
866
910
  # excluded_rules: [
867
911
  # {
868
912
  # name: "EntityName", # required
@@ -876,6 +920,42 @@ module Aws::WAFV2
876
920
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
877
921
  # key: "LabelMatchKey", # required
878
922
  # },
923
+ # regex_match_statement: {
924
+ # regex_string: "RegexPatternString", # required
925
+ # field_to_match: { # required
926
+ # single_header: {
927
+ # name: "FieldToMatchData", # required
928
+ # },
929
+ # single_query_argument: {
930
+ # name: "FieldToMatchData", # required
931
+ # },
932
+ # all_query_arguments: {
933
+ # },
934
+ # uri_path: {
935
+ # },
936
+ # query_string: {
937
+ # },
938
+ # body: {
939
+ # },
940
+ # method: {
941
+ # },
942
+ # json_body: {
943
+ # match_pattern: { # required
944
+ # all: {
945
+ # },
946
+ # included_paths: ["JsonPointerPath"],
947
+ # },
948
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
949
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
950
+ # },
951
+ # },
952
+ # text_transformations: [ # required
953
+ # {
954
+ # priority: 1, # required
955
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
956
+ # },
957
+ # ],
958
+ # },
879
959
  # },
880
960
  # action: {
881
961
  # block: {
@@ -1094,7 +1174,7 @@ module Aws::WAFV2
1094
1174
  # @return [String]
1095
1175
  #
1096
1176
  # @!attribute [rw] ip_address_version
1097
- # Specify IPV4 or IPV6.
1177
+ # The version of the IP addresses, either `IPV4` or `IPV6`.
1098
1178
  # @return [String]
1099
1179
  #
1100
1180
  # @!attribute [rw] addresses
@@ -1492,6 +1572,7 @@ module Aws::WAFV2
1492
1572
  # managed_rule_group_statement: {
1493
1573
  # vendor_name: "VendorName", # required
1494
1574
  # name: "EntityName", # required
1575
+ # version: "VersionKeyString",
1495
1576
  # excluded_rules: [
1496
1577
  # {
1497
1578
  # name: "EntityName", # required
@@ -1505,6 +1586,42 @@ module Aws::WAFV2
1505
1586
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
1506
1587
  # key: "LabelMatchKey", # required
1507
1588
  # },
1589
+ # regex_match_statement: {
1590
+ # regex_string: "RegexPatternString", # required
1591
+ # field_to_match: { # required
1592
+ # single_header: {
1593
+ # name: "FieldToMatchData", # required
1594
+ # },
1595
+ # single_query_argument: {
1596
+ # name: "FieldToMatchData", # required
1597
+ # },
1598
+ # all_query_arguments: {
1599
+ # },
1600
+ # uri_path: {
1601
+ # },
1602
+ # query_string: {
1603
+ # },
1604
+ # body: {
1605
+ # },
1606
+ # method: {
1607
+ # },
1608
+ # json_body: {
1609
+ # match_pattern: { # required
1610
+ # all: {
1611
+ # },
1612
+ # included_paths: ["JsonPointerPath"],
1613
+ # },
1614
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
1615
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
1616
+ # },
1617
+ # },
1618
+ # text_transformations: [ # required
1619
+ # {
1620
+ # priority: 1, # required
1621
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
1622
+ # },
1623
+ # ],
1624
+ # },
1508
1625
  # },
1509
1626
  # action: {
1510
1627
  # block: {
@@ -1967,6 +2084,7 @@ module Aws::WAFV2
1967
2084
  # managed_rule_group_statement: {
1968
2085
  # vendor_name: "VendorName", # required
1969
2086
  # name: "EntityName", # required
2087
+ # version: "VersionKeyString",
1970
2088
  # excluded_rules: [
1971
2089
  # {
1972
2090
  # name: "EntityName", # required
@@ -1980,6 +2098,42 @@ module Aws::WAFV2
1980
2098
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
1981
2099
  # key: "LabelMatchKey", # required
1982
2100
  # },
2101
+ # regex_match_statement: {
2102
+ # regex_string: "RegexPatternString", # required
2103
+ # field_to_match: { # required
2104
+ # single_header: {
2105
+ # name: "FieldToMatchData", # required
2106
+ # },
2107
+ # single_query_argument: {
2108
+ # name: "FieldToMatchData", # required
2109
+ # },
2110
+ # all_query_arguments: {
2111
+ # },
2112
+ # uri_path: {
2113
+ # },
2114
+ # query_string: {
2115
+ # },
2116
+ # body: {
2117
+ # },
2118
+ # method: {
2119
+ # },
2120
+ # json_body: {
2121
+ # match_pattern: { # required
2122
+ # all: {
2123
+ # },
2124
+ # included_paths: ["JsonPointerPath"],
2125
+ # },
2126
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
2127
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
2128
+ # },
2129
+ # },
2130
+ # text_transformations: [ # required
2131
+ # {
2132
+ # priority: 1, # required
2133
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
2134
+ # },
2135
+ # ],
2136
+ # },
1983
2137
  # },
1984
2138
  # action: {
1985
2139
  # block: {
@@ -2415,15 +2569,15 @@ module Aws::WAFV2
2415
2569
  # @return [String]
2416
2570
  #
2417
2571
  # @!attribute [rw] web_acl_lock_token
2418
- # A token used for optimistic locking. WAF returns a token to your get
2419
- # and list requests, to mark the state of the entity at the time of
2420
- # the request. To make changes to the entity associated with the
2421
- # token, you provide the token to operations like update and delete.
2422
- # WAF uses the token to ensure that no changes have been made to the
2423
- # entity since you last retrieved it. If a change has been made, the
2424
- # update fails with a `WAFOptimisticLockException`. If this happens,
2425
- # perform another get, and use the new token returned by that
2426
- # operation.
2572
+ # A token used for optimistic locking. WAF returns a token to your
2573
+ # `get` and `list` requests, to mark the state of the entity at the
2574
+ # time of the request. To make changes to the entity associated with
2575
+ # the token, you provide the token to operations like `update` and
2576
+ # `delete`. WAF uses the token to ensure that no changes have been
2577
+ # made to the entity since you last retrieved it. If a change has been
2578
+ # made, the update fails with a `WAFOptimisticLockException`. If this
2579
+ # happens, perform another `get`, and use the new token returned by
2580
+ # that operation.
2427
2581
  # @return [String]
2428
2582
  #
2429
2583
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteFirewallManagerRuleGroupsRequest AWS API Documentation
@@ -2436,15 +2590,15 @@ module Aws::WAFV2
2436
2590
  end
2437
2591
 
2438
2592
  # @!attribute [rw] next_web_acl_lock_token
2439
- # A token used for optimistic locking. WAF returns a token to your get
2440
- # and list requests, to mark the state of the entity at the time of
2441
- # the request. To make changes to the entity associated with the
2442
- # token, you provide the token to operations like update and delete.
2443
- # WAF uses the token to ensure that no changes have been made to the
2444
- # entity since you last retrieved it. If a change has been made, the
2445
- # update fails with a `WAFOptimisticLockException`. If this happens,
2446
- # perform another get, and use the new token returned by that
2447
- # operation.
2593
+ # A token used for optimistic locking. WAF returns a token to your
2594
+ # `get` and `list` requests, to mark the state of the entity at the
2595
+ # time of the request. To make changes to the entity associated with
2596
+ # the token, you provide the token to operations like `update` and
2597
+ # `delete`. WAF uses the token to ensure that no changes have been
2598
+ # made to the entity since you last retrieved it. If a change has been
2599
+ # made, the update fails with a `WAFOptimisticLockException`. If this
2600
+ # happens, perform another `get`, and use the new token returned by
2601
+ # that operation.
2448
2602
  # @return [String]
2449
2603
  #
2450
2604
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteFirewallManagerRuleGroupsResponse AWS API Documentation
@@ -2492,15 +2646,15 @@ module Aws::WAFV2
2492
2646
  # @return [String]
2493
2647
  #
2494
2648
  # @!attribute [rw] lock_token
2495
- # A token used for optimistic locking. WAF returns a token to your get
2496
- # and list requests, to mark the state of the entity at the time of
2497
- # the request. To make changes to the entity associated with the
2498
- # token, you provide the token to operations like update and delete.
2499
- # WAF uses the token to ensure that no changes have been made to the
2500
- # entity since you last retrieved it. If a change has been made, the
2501
- # update fails with a `WAFOptimisticLockException`. If this happens,
2502
- # perform another get, and use the new token returned by that
2503
- # operation.
2649
+ # A token used for optimistic locking. WAF returns a token to your
2650
+ # `get` and `list` requests, to mark the state of the entity at the
2651
+ # time of the request. To make changes to the entity associated with
2652
+ # the token, you provide the token to operations like `update` and
2653
+ # `delete`. WAF uses the token to ensure that no changes have been
2654
+ # made to the entity since you last retrieved it. If a change has been
2655
+ # made, the update fails with a `WAFOptimisticLockException`. If this
2656
+ # happens, perform another `get`, and use the new token returned by
2657
+ # that operation.
2504
2658
  # @return [String]
2505
2659
  #
2506
2660
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteIPSetRequest AWS API Documentation
@@ -2605,15 +2759,15 @@ module Aws::WAFV2
2605
2759
  # @return [String]
2606
2760
  #
2607
2761
  # @!attribute [rw] lock_token
2608
- # A token used for optimistic locking. WAF returns a token to your get
2609
- # and list requests, to mark the state of the entity at the time of
2610
- # the request. To make changes to the entity associated with the
2611
- # token, you provide the token to operations like update and delete.
2612
- # WAF uses the token to ensure that no changes have been made to the
2613
- # entity since you last retrieved it. If a change has been made, the
2614
- # update fails with a `WAFOptimisticLockException`. If this happens,
2615
- # perform another get, and use the new token returned by that
2616
- # operation.
2762
+ # A token used for optimistic locking. WAF returns a token to your
2763
+ # `get` and `list` requests, to mark the state of the entity at the
2764
+ # time of the request. To make changes to the entity associated with
2765
+ # the token, you provide the token to operations like `update` and
2766
+ # `delete`. WAF uses the token to ensure that no changes have been
2767
+ # made to the entity since you last retrieved it. If a change has been
2768
+ # made, the update fails with a `WAFOptimisticLockException`. If this
2769
+ # happens, perform another `get`, and use the new token returned by
2770
+ # that operation.
2617
2771
  # @return [String]
2618
2772
  #
2619
2773
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRegexPatternSetRequest AWS API Documentation
@@ -2668,15 +2822,15 @@ module Aws::WAFV2
2668
2822
  # @return [String]
2669
2823
  #
2670
2824
  # @!attribute [rw] lock_token
2671
- # A token used for optimistic locking. WAF returns a token to your get
2672
- # and list requests, to mark the state of the entity at the time of
2673
- # the request. To make changes to the entity associated with the
2674
- # token, you provide the token to operations like update and delete.
2675
- # WAF uses the token to ensure that no changes have been made to the
2676
- # entity since you last retrieved it. If a change has been made, the
2677
- # update fails with a `WAFOptimisticLockException`. If this happens,
2678
- # perform another get, and use the new token returned by that
2679
- # operation.
2825
+ # A token used for optimistic locking. WAF returns a token to your
2826
+ # `get` and `list` requests, to mark the state of the entity at the
2827
+ # time of the request. To make changes to the entity associated with
2828
+ # the token, you provide the token to operations like `update` and
2829
+ # `delete`. WAF uses the token to ensure that no changes have been
2830
+ # made to the entity since you last retrieved it. If a change has been
2831
+ # made, the update fails with a `WAFOptimisticLockException`. If this
2832
+ # happens, perform another `get`, and use the new token returned by
2833
+ # that operation.
2680
2834
  # @return [String]
2681
2835
  #
2682
2836
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRuleGroupRequest AWS API Documentation
@@ -2731,15 +2885,15 @@ module Aws::WAFV2
2731
2885
  # @return [String]
2732
2886
  #
2733
2887
  # @!attribute [rw] lock_token
2734
- # A token used for optimistic locking. WAF returns a token to your get
2735
- # and list requests, to mark the state of the entity at the time of
2736
- # the request. To make changes to the entity associated with the
2737
- # token, you provide the token to operations like update and delete.
2738
- # WAF uses the token to ensure that no changes have been made to the
2739
- # entity since you last retrieved it. If a change has been made, the
2740
- # update fails with a `WAFOptimisticLockException`. If this happens,
2741
- # perform another get, and use the new token returned by that
2742
- # operation.
2888
+ # A token used for optimistic locking. WAF returns a token to your
2889
+ # `get` and `list` requests, to mark the state of the entity at the
2890
+ # time of the request. To make changes to the entity associated with
2891
+ # the token, you provide the token to operations like `update` and
2892
+ # `delete`. WAF uses the token to ensure that no changes have been
2893
+ # made to the entity since you last retrieved it. If a change has been
2894
+ # made, the update fails with a `WAFOptimisticLockException`. If this
2895
+ # happens, perform another `get`, and use the new token returned by
2896
+ # that operation.
2743
2897
  # @return [String]
2744
2898
  #
2745
2899
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteWebACLRequest AWS API Documentation
@@ -2764,6 +2918,7 @@ module Aws::WAFV2
2764
2918
  # vendor_name: "VendorName", # required
2765
2919
  # name: "EntityName", # required
2766
2920
  # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
2921
+ # version_name: "VersionKeyString",
2767
2922
  # }
2768
2923
  #
2769
2924
  # @!attribute [rw] vendor_name
@@ -2791,16 +2946,40 @@ module Aws::WAFV2
2791
2946
  # * API and SDKs - For all calls, use the Region endpoint us-east-1.
2792
2947
  # @return [String]
2793
2948
  #
2949
+ # @!attribute [rw] version_name
2950
+ # The version of the rule group. You can only use a version that is
2951
+ # not scheduled for expiration. If you don't provide this, WAF uses
2952
+ # the vendor's default version.
2953
+ # @return [String]
2954
+ #
2794
2955
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DescribeManagedRuleGroupRequest AWS API Documentation
2795
2956
  #
2796
2957
  class DescribeManagedRuleGroupRequest < Struct.new(
2797
2958
  :vendor_name,
2798
2959
  :name,
2799
- :scope)
2960
+ :scope,
2961
+ :version_name)
2800
2962
  SENSITIVE = []
2801
2963
  include Aws::Structure
2802
2964
  end
2803
2965
 
2966
+ # @!attribute [rw] version_name
2967
+ # The managed rule group's version.
2968
+ # @return [String]
2969
+ #
2970
+ # @!attribute [rw] sns_topic_arn
2971
+ # The Amazon resource name (ARN) of the Amazon Simple Notification
2972
+ # Service SNS topic that's used to record changes to the managed rule
2973
+ # group. You can subscribe to the SNS topic to receive notifications
2974
+ # when the managed rule group is modified, such as for new versions
2975
+ # and for version expiration. For more information, see the [Amazon
2976
+ # Simple Notification Service Developer Guide][1].
2977
+ #
2978
+ #
2979
+ #
2980
+ # [1]: https://docs.aws.amazon.com/sns/latest/dg/welcome.html
2981
+ # @return [String]
2982
+ #
2804
2983
  # @!attribute [rw] capacity
2805
2984
  # The web ACL capacity units (WCUs) required for this rule group. WAF
2806
2985
  # uses web ACL capacity units (WCU) to calculate and control the
@@ -2847,6 +3026,8 @@ module Aws::WAFV2
2847
3026
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DescribeManagedRuleGroupResponse AWS API Documentation
2848
3027
  #
2849
3028
  class DescribeManagedRuleGroupResponse < Struct.new(
3029
+ :version_name,
3030
+ :sns_topic_arn,
2850
3031
  :capacity,
2851
3032
  :rules,
2852
3033
  :label_namespace,
@@ -2923,6 +3104,14 @@ module Aws::WAFV2
2923
3104
  # requires it. To inspect more than one component of a web request,
2924
3105
  # create a separate rule statement for each component.
2925
3106
  #
3107
+ # JSON specification for a `QueryString` field to match:
3108
+ #
3109
+ # ` "FieldToMatch": \{ "QueryString": \{\} \}`
3110
+ #
3111
+ # Example JSON for a `Method` field to match specification:
3112
+ #
3113
+ # ` "FieldToMatch": \{ "Method": \{ "Name": "DELETE" \} \}`
3114
+ #
2926
3115
  # @note When making an API call, you may pass FieldToMatch
2927
3116
  # data as a hash:
2928
3117
  #
@@ -3164,8 +3353,8 @@ module Aws::WAFV2
3164
3353
  # provide the ARN of the rule group in this statement.
3165
3354
  #
3166
3355
  # You cannot nest a `RuleGroupReferenceStatement`, for example for use
3167
- # inside a `NotStatement` or `OrStatement`. It can only be referenced
3168
- # as a top-level statement within a rule.
3356
+ # inside a `NotStatement` or `OrStatement`. You can only use a rule
3357
+ # group reference statement at the top level inside a web ACL.
3169
3358
  # @return [Types::RuleGroupReferenceStatement]
3170
3359
  #
3171
3360
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/FirewallManagerStatement AWS API Documentation
@@ -3330,15 +3519,15 @@ module Aws::WAFV2
3330
3519
  # @return [Types::IPSet]
3331
3520
  #
3332
3521
  # @!attribute [rw] lock_token
3333
- # A token used for optimistic locking. WAF returns a token to your get
3334
- # and list requests, to mark the state of the entity at the time of
3335
- # the request. To make changes to the entity associated with the
3336
- # token, you provide the token to operations like update and delete.
3337
- # WAF uses the token to ensure that no changes have been made to the
3338
- # entity since you last retrieved it. If a change has been made, the
3339
- # update fails with a `WAFOptimisticLockException`. If this happens,
3340
- # perform another get, and use the new token returned by that
3341
- # operation.
3522
+ # A token used for optimistic locking. WAF returns a token to your
3523
+ # `get` and `list` requests, to mark the state of the entity at the
3524
+ # time of the request. To make changes to the entity associated with
3525
+ # the token, you provide the token to operations like `update` and
3526
+ # `delete`. WAF uses the token to ensure that no changes have been
3527
+ # made to the entity since you last retrieved it. If a change has been
3528
+ # made, the update fails with a `WAFOptimisticLockException`. If this
3529
+ # happens, perform another `get`, and use the new token returned by
3530
+ # that operation.
3342
3531
  # @return [String]
3343
3532
  #
3344
3533
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetIPSetResponse AWS API Documentation
@@ -3382,6 +3571,79 @@ module Aws::WAFV2
3382
3571
  include Aws::Structure
3383
3572
  end
3384
3573
 
3574
+ # @note When making an API call, you may pass GetManagedRuleSetRequest
3575
+ # data as a hash:
3576
+ #
3577
+ # {
3578
+ # name: "EntityName", # required
3579
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
3580
+ # id: "EntityId", # required
3581
+ # }
3582
+ #
3583
+ # @!attribute [rw] name
3584
+ # The name of the managed rule set. You use this, along with the rule
3585
+ # set ID, to identify the rule set.
3586
+ #
3587
+ # This name is assigned to the corresponding managed rule group, which
3588
+ # your customers can access and use.
3589
+ # @return [String]
3590
+ #
3591
+ # @!attribute [rw] scope
3592
+ # Specifies whether this is for an Amazon CloudFront distribution or
3593
+ # for a regional application. A regional application can be an
3594
+ # Application Load Balancer (ALB), an Amazon API Gateway REST API, or
3595
+ # an AppSync GraphQL API.
3596
+ #
3597
+ # To work with CloudFront, you must also specify the Region US East
3598
+ # (N. Virginia) as follows:
3599
+ #
3600
+ # * CLI - Specify the Region when you use the CloudFront scope:
3601
+ # `--scope=CLOUDFRONT --region=us-east-1`.
3602
+ #
3603
+ # * API and SDKs - For all calls, use the Region endpoint us-east-1.
3604
+ # @return [String]
3605
+ #
3606
+ # @!attribute [rw] id
3607
+ # A unique identifier for the managed rule set. The ID is returned in
3608
+ # the responses to commands like `list`. You provide it to operations
3609
+ # like `get` and `update`.
3610
+ # @return [String]
3611
+ #
3612
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetManagedRuleSetRequest AWS API Documentation
3613
+ #
3614
+ class GetManagedRuleSetRequest < Struct.new(
3615
+ :name,
3616
+ :scope,
3617
+ :id)
3618
+ SENSITIVE = []
3619
+ include Aws::Structure
3620
+ end
3621
+
3622
+ # @!attribute [rw] managed_rule_set
3623
+ # The managed rule set that you requested.
3624
+ # @return [Types::ManagedRuleSet]
3625
+ #
3626
+ # @!attribute [rw] lock_token
3627
+ # A token used for optimistic locking. WAF returns a token to your
3628
+ # `get` and `list` requests, to mark the state of the entity at the
3629
+ # time of the request. To make changes to the entity associated with
3630
+ # the token, you provide the token to operations like `update` and
3631
+ # `delete`. WAF uses the token to ensure that no changes have been
3632
+ # made to the entity since you last retrieved it. If a change has been
3633
+ # made, the update fails with a `WAFOptimisticLockException`. If this
3634
+ # happens, perform another `get`, and use the new token returned by
3635
+ # that operation.
3636
+ # @return [String]
3637
+ #
3638
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetManagedRuleSetResponse AWS API Documentation
3639
+ #
3640
+ class GetManagedRuleSetResponse < Struct.new(
3641
+ :managed_rule_set,
3642
+ :lock_token)
3643
+ SENSITIVE = []
3644
+ include Aws::Structure
3645
+ end
3646
+
3385
3647
  # @note When making an API call, you may pass GetPermissionPolicyRequest
3386
3648
  # data as a hash:
3387
3649
  #
@@ -3421,6 +3683,7 @@ module Aws::WAFV2
3421
3683
  # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
3422
3684
  # web_acl_name: "EntityName", # required
3423
3685
  # web_acl_id: "EntityId", # required
3686
+ # rule_group_rule_name: "EntityName",
3424
3687
  # rule_name: "EntityName", # required
3425
3688
  # }
3426
3689
  #
@@ -3450,8 +3713,17 @@ module Aws::WAFV2
3450
3713
  # like update and delete.
3451
3714
  # @return [String]
3452
3715
  #
3716
+ # @!attribute [rw] rule_group_rule_name
3717
+ # The name of the rule group reference statement in your web ACL. This
3718
+ # is required only when you have the rate-based rule nested inside a
3719
+ # rule group.
3720
+ # @return [String]
3721
+ #
3453
3722
  # @!attribute [rw] rule_name
3454
- # The name of the rate-based rule to get the keys for.
3723
+ # The name of the rate-based rule to get the keys for. If you have the
3724
+ # rule defined inside a rule group that you're using in your web ACL,
3725
+ # also provide the name of the rule group reference statement in the
3726
+ # request parameter `RuleGroupRuleName`.
3455
3727
  # @return [String]
3456
3728
  #
3457
3729
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRateBasedStatementManagedKeysRequest AWS API Documentation
@@ -3460,6 +3732,7 @@ module Aws::WAFV2
3460
3732
  :scope,
3461
3733
  :web_acl_name,
3462
3734
  :web_acl_id,
3735
+ :rule_group_rule_name,
3463
3736
  :rule_name)
3464
3737
  SENSITIVE = []
3465
3738
  include Aws::Structure
@@ -3531,15 +3804,15 @@ module Aws::WAFV2
3531
3804
  # @return [Types::RegexPatternSet]
3532
3805
  #
3533
3806
  # @!attribute [rw] lock_token
3534
- # A token used for optimistic locking. WAF returns a token to your get
3535
- # and list requests, to mark the state of the entity at the time of
3536
- # the request. To make changes to the entity associated with the
3537
- # token, you provide the token to operations like update and delete.
3538
- # WAF uses the token to ensure that no changes have been made to the
3539
- # entity since you last retrieved it. If a change has been made, the
3540
- # update fails with a `WAFOptimisticLockException`. If this happens,
3541
- # perform another get, and use the new token returned by that
3542
- # operation.
3807
+ # A token used for optimistic locking. WAF returns a token to your
3808
+ # `get` and `list` requests, to mark the state of the entity at the
3809
+ # time of the request. To make changes to the entity associated with
3810
+ # the token, you provide the token to operations like `update` and
3811
+ # `delete`. WAF uses the token to ensure that no changes have been
3812
+ # made to the entity since you last retrieved it. If a change has been
3813
+ # made, the update fails with a `WAFOptimisticLockException`. If this
3814
+ # happens, perform another `get`, and use the new token returned by
3815
+ # that operation.
3543
3816
  # @return [String]
3544
3817
  #
3545
3818
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRegexPatternSetResponse AWS API Documentation
@@ -3606,15 +3879,15 @@ module Aws::WAFV2
3606
3879
  # @return [Types::RuleGroup]
3607
3880
  #
3608
3881
  # @!attribute [rw] lock_token
3609
- # A token used for optimistic locking. WAF returns a token to your get
3610
- # and list requests, to mark the state of the entity at the time of
3611
- # the request. To make changes to the entity associated with the
3612
- # token, you provide the token to operations like update and delete.
3613
- # WAF uses the token to ensure that no changes have been made to the
3614
- # entity since you last retrieved it. If a change has been made, the
3615
- # update fails with a `WAFOptimisticLockException`. If this happens,
3616
- # perform another get, and use the new token returned by that
3617
- # operation.
3882
+ # A token used for optimistic locking. WAF returns a token to your
3883
+ # `get` and `list` requests, to mark the state of the entity at the
3884
+ # time of the request. To make changes to the entity associated with
3885
+ # the token, you provide the token to operations like `update` and
3886
+ # `delete`. WAF uses the token to ensure that no changes have been
3887
+ # made to the entity since you last retrieved it. If a change has been
3888
+ # made, the update fails with a `WAFOptimisticLockException`. If this
3889
+ # happens, perform another `get`, and use the new token returned by
3890
+ # that operation.
3618
3891
  # @return [String]
3619
3892
  #
3620
3893
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRuleGroupResponse AWS API Documentation
@@ -3809,15 +4082,15 @@ module Aws::WAFV2
3809
4082
  # @return [Types::WebACL]
3810
4083
  #
3811
4084
  # @!attribute [rw] lock_token
3812
- # A token used for optimistic locking. WAF returns a token to your get
3813
- # and list requests, to mark the state of the entity at the time of
3814
- # the request. To make changes to the entity associated with the
3815
- # token, you provide the token to operations like update and delete.
3816
- # WAF uses the token to ensure that no changes have been made to the
3817
- # entity since you last retrieved it. If a change has been made, the
3818
- # update fails with a `WAFOptimisticLockException`. If this happens,
3819
- # perform another get, and use the new token returned by that
3820
- # operation.
4085
+ # A token used for optimistic locking. WAF returns a token to your
4086
+ # `get` and `list` requests, to mark the state of the entity at the
4087
+ # time of the request. To make changes to the entity associated with
4088
+ # the token, you provide the token to operations like `update` and
4089
+ # `delete`. WAF uses the token to ensure that no changes have been
4090
+ # made to the entity since you last retrieved it. If a change has been
4091
+ # made, the update fails with a `WAFOptimisticLockException`. If this
4092
+ # happens, perform another `get`, and use the new token returned by
4093
+ # that operation.
3821
4094
  # @return [String]
3822
4095
  #
3823
4096
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACLResponse AWS API Documentation
@@ -3942,7 +4215,7 @@ module Aws::WAFV2
3942
4215
  # @return [String]
3943
4216
  #
3944
4217
  # @!attribute [rw] ip_address_version
3945
- # Specify IPV4 or IPV6.
4218
+ # The version of the IP addresses, either `IPV4` or `IPV6`.
3946
4219
  # @return [String]
3947
4220
  #
3948
4221
  # @!attribute [rw] addresses
@@ -4143,15 +4416,15 @@ module Aws::WAFV2
4143
4416
  # @return [String]
4144
4417
  #
4145
4418
  # @!attribute [rw] lock_token
4146
- # A token used for optimistic locking. WAF returns a token to your get
4147
- # and list requests, to mark the state of the entity at the time of
4148
- # the request. To make changes to the entity associated with the
4149
- # token, you provide the token to operations like update and delete.
4150
- # WAF uses the token to ensure that no changes have been made to the
4151
- # entity since you last retrieved it. If a change has been made, the
4152
- # update fails with a `WAFOptimisticLockException`. If this happens,
4153
- # perform another get, and use the new token returned by that
4154
- # operation.
4419
+ # A token used for optimistic locking. WAF returns a token to your
4420
+ # `get` and `list` requests, to mark the state of the entity at the
4421
+ # time of the request. To make changes to the entity associated with
4422
+ # the token, you provide the token to operations like `update` and
4423
+ # `delete`. WAF uses the token to ensure that no changes have been
4424
+ # made to the entity since you last retrieved it. If a change has been
4425
+ # made, the update fails with a `WAFOptimisticLockException`. If this
4426
+ # happens, perform another `get`, and use the new token returned by
4427
+ # that operation.
4155
4428
  # @return [String]
4156
4429
  #
4157
4430
  # @!attribute [rw] arn
@@ -4179,6 +4452,9 @@ module Aws::WAFV2
4179
4452
  # inspects only the parts of the JSON that result from the matches that
4180
4453
  # you indicate.
4181
4454
  #
4455
+ # Example JSON: `"JsonBody": \{ "MatchPattern": \{ "All": \{\} \},
4456
+ # "MatchScope": "ALL" \}`
4457
+ #
4182
4458
  # @note When making an API call, you may pass JsonBody
4183
4459
  # data as a hash:
4184
4460
  #
@@ -4220,9 +4496,9 @@ module Aws::WAFV2
4220
4496
  # content only up to the first parsing failure that it encounters.
4221
4497
  #
4222
4498
  # WAF does its best to parse the entire JSON body, but might be forced
4223
- # to stop for reasons such as characters that aren't valid, duplicate
4224
- # keys, truncation, and any content whose root node isn't an object
4225
- # or an array.
4499
+ # to stop for reasons such as invalid characters, duplicate keys,
4500
+ # truncation, and any content whose root node isn't an object or an
4501
+ # array.
4226
4502
  #
4227
4503
  # WAF parses the JSON in the following examples as two valid key,
4228
4504
  # value pairs:
@@ -4418,15 +4694,27 @@ module Aws::WAFV2
4418
4694
  include Aws::Structure
4419
4695
  end
4420
4696
 
4421
- # @note When making an API call, you may pass ListAvailableManagedRuleGroupsRequest
4697
+ # @note When making an API call, you may pass ListAvailableManagedRuleGroupVersionsRequest
4422
4698
  # data as a hash:
4423
4699
  #
4424
4700
  # {
4701
+ # vendor_name: "VendorName", # required
4702
+ # name: "EntityName", # required
4425
4703
  # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
4426
4704
  # next_marker: "NextMarker",
4427
4705
  # limit: 1,
4428
4706
  # }
4429
4707
  #
4708
+ # @!attribute [rw] vendor_name
4709
+ # The name of the managed rule group vendor. You use this, along with
4710
+ # the rule group name, to identify the rule group.
4711
+ # @return [String]
4712
+ #
4713
+ # @!attribute [rw] name
4714
+ # The name of the managed rule group. You use this, along with the
4715
+ # vendor name, to identify the rule group.
4716
+ # @return [String]
4717
+ #
4430
4718
  # @!attribute [rw] scope
4431
4719
  # Specifies whether this is for an Amazon CloudFront distribution or
4432
4720
  # for a regional application. A regional application can be an
@@ -4457,9 +4745,11 @@ module Aws::WAFV2
4457
4745
  # to get the next batch of objects.
4458
4746
  # @return [Integer]
4459
4747
  #
4460
- # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroupsRequest AWS API Documentation
4748
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroupVersionsRequest AWS API Documentation
4461
4749
  #
4462
- class ListAvailableManagedRuleGroupsRequest < Struct.new(
4750
+ class ListAvailableManagedRuleGroupVersionsRequest < Struct.new(
4751
+ :vendor_name,
4752
+ :name,
4463
4753
  :scope,
4464
4754
  :next_marker,
4465
4755
  :limit)
@@ -4475,19 +4765,21 @@ module Aws::WAFV2
4475
4765
  # your next request.
4476
4766
  # @return [String]
4477
4767
  #
4478
- # @!attribute [rw] managed_rule_groups
4479
- # @return [Array<Types::ManagedRuleGroupSummary>]
4768
+ # @!attribute [rw] versions
4769
+ # The versions that are currently available for the specified managed
4770
+ # rule group.
4771
+ # @return [Array<Types::ManagedRuleGroupVersion>]
4480
4772
  #
4481
- # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroupsResponse AWS API Documentation
4773
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroupVersionsResponse AWS API Documentation
4482
4774
  #
4483
- class ListAvailableManagedRuleGroupsResponse < Struct.new(
4775
+ class ListAvailableManagedRuleGroupVersionsResponse < Struct.new(
4484
4776
  :next_marker,
4485
- :managed_rule_groups)
4777
+ :versions)
4486
4778
  SENSITIVE = []
4487
4779
  include Aws::Structure
4488
4780
  end
4489
4781
 
4490
- # @note When making an API call, you may pass ListIPSetsRequest
4782
+ # @note When making an API call, you may pass ListAvailableManagedRuleGroupsRequest
4491
4783
  # data as a hash:
4492
4784
  #
4493
4785
  # {
@@ -4526,9 +4818,9 @@ module Aws::WAFV2
4526
4818
  # to get the next batch of objects.
4527
4819
  # @return [Integer]
4528
4820
  #
4529
- # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListIPSetsRequest AWS API Documentation
4821
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroupsRequest AWS API Documentation
4530
4822
  #
4531
- class ListIPSetsRequest < Struct.new(
4823
+ class ListAvailableManagedRuleGroupsRequest < Struct.new(
4532
4824
  :scope,
4533
4825
  :next_marker,
4534
4826
  :limit)
@@ -4544,25 +4836,23 @@ module Aws::WAFV2
4544
4836
  # your next request.
4545
4837
  # @return [String]
4546
4838
  #
4547
- # @!attribute [rw] ip_sets
4548
- # Array of IPSets. This may not be the full list of IPSets that you
4549
- # have defined. See the `Limit` specification for this request.
4550
- # @return [Array<Types::IPSetSummary>]
4839
+ # @!attribute [rw] managed_rule_groups
4840
+ # @return [Array<Types::ManagedRuleGroupSummary>]
4551
4841
  #
4552
- # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListIPSetsResponse AWS API Documentation
4842
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroupsResponse AWS API Documentation
4553
4843
  #
4554
- class ListIPSetsResponse < Struct.new(
4844
+ class ListAvailableManagedRuleGroupsResponse < Struct.new(
4555
4845
  :next_marker,
4556
- :ip_sets)
4846
+ :managed_rule_groups)
4557
4847
  SENSITIVE = []
4558
4848
  include Aws::Structure
4559
4849
  end
4560
4850
 
4561
- # @note When making an API call, you may pass ListLoggingConfigurationsRequest
4851
+ # @note When making an API call, you may pass ListIPSetsRequest
4562
4852
  # data as a hash:
4563
4853
  #
4564
4854
  # {
4565
- # scope: "CLOUDFRONT", # accepts CLOUDFRONT, REGIONAL
4855
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
4566
4856
  # next_marker: "NextMarker",
4567
4857
  # limit: 1,
4568
4858
  # }
@@ -4597,9 +4887,9 @@ module Aws::WAFV2
4597
4887
  # to get the next batch of objects.
4598
4888
  # @return [Integer]
4599
4889
  #
4600
- # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListLoggingConfigurationsRequest AWS API Documentation
4890
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListIPSetsRequest AWS API Documentation
4601
4891
  #
4602
- class ListLoggingConfigurationsRequest < Struct.new(
4892
+ class ListIPSetsRequest < Struct.new(
4603
4893
  :scope,
4604
4894
  :next_marker,
4605
4895
  :limit)
@@ -4607,8 +4897,79 @@ module Aws::WAFV2
4607
4897
  include Aws::Structure
4608
4898
  end
4609
4899
 
4610
- # @!attribute [rw] logging_configurations
4611
- # @return [Array<Types::LoggingConfiguration>]
4900
+ # @!attribute [rw] next_marker
4901
+ # When you request a list of objects with a `Limit` setting, if the
4902
+ # number of objects that are still available for retrieval exceeds the
4903
+ # limit, WAF returns a `NextMarker` value in the response. To retrieve
4904
+ # the next batch of objects, provide the marker from the prior call in
4905
+ # your next request.
4906
+ # @return [String]
4907
+ #
4908
+ # @!attribute [rw] ip_sets
4909
+ # Array of IPSets. This may not be the full list of IPSets that you
4910
+ # have defined. See the `Limit` specification for this request.
4911
+ # @return [Array<Types::IPSetSummary>]
4912
+ #
4913
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListIPSetsResponse AWS API Documentation
4914
+ #
4915
+ class ListIPSetsResponse < Struct.new(
4916
+ :next_marker,
4917
+ :ip_sets)
4918
+ SENSITIVE = []
4919
+ include Aws::Structure
4920
+ end
4921
+
4922
+ # @note When making an API call, you may pass ListLoggingConfigurationsRequest
4923
+ # data as a hash:
4924
+ #
4925
+ # {
4926
+ # scope: "CLOUDFRONT", # accepts CLOUDFRONT, REGIONAL
4927
+ # next_marker: "NextMarker",
4928
+ # limit: 1,
4929
+ # }
4930
+ #
4931
+ # @!attribute [rw] scope
4932
+ # Specifies whether this is for an Amazon CloudFront distribution or
4933
+ # for a regional application. A regional application can be an
4934
+ # Application Load Balancer (ALB), an Amazon API Gateway REST API, or
4935
+ # an AppSync GraphQL API.
4936
+ #
4937
+ # To work with CloudFront, you must also specify the Region US East
4938
+ # (N. Virginia) as follows:
4939
+ #
4940
+ # * CLI - Specify the Region when you use the CloudFront scope:
4941
+ # `--scope=CLOUDFRONT --region=us-east-1`.
4942
+ #
4943
+ # * API and SDKs - For all calls, use the Region endpoint us-east-1.
4944
+ # @return [String]
4945
+ #
4946
+ # @!attribute [rw] next_marker
4947
+ # When you request a list of objects with a `Limit` setting, if the
4948
+ # number of objects that are still available for retrieval exceeds the
4949
+ # limit, WAF returns a `NextMarker` value in the response. To retrieve
4950
+ # the next batch of objects, provide the marker from the prior call in
4951
+ # your next request.
4952
+ # @return [String]
4953
+ #
4954
+ # @!attribute [rw] limit
4955
+ # The maximum number of objects that you want WAF to return for this
4956
+ # request. If more objects are available, in the response, WAF
4957
+ # provides a `NextMarker` value that you can use in a subsequent call
4958
+ # to get the next batch of objects.
4959
+ # @return [Integer]
4960
+ #
4961
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListLoggingConfigurationsRequest AWS API Documentation
4962
+ #
4963
+ class ListLoggingConfigurationsRequest < Struct.new(
4964
+ :scope,
4965
+ :next_marker,
4966
+ :limit)
4967
+ SENSITIVE = []
4968
+ include Aws::Structure
4969
+ end
4970
+
4971
+ # @!attribute [rw] logging_configurations
4972
+ # @return [Array<Types::LoggingConfiguration>]
4612
4973
  #
4613
4974
  # @!attribute [rw] next_marker
4614
4975
  # When you request a list of objects with a `Limit` setting, if the
@@ -4627,6 +4988,76 @@ module Aws::WAFV2
4627
4988
  include Aws::Structure
4628
4989
  end
4629
4990
 
4991
+ # @note When making an API call, you may pass ListManagedRuleSetsRequest
4992
+ # data as a hash:
4993
+ #
4994
+ # {
4995
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
4996
+ # next_marker: "NextMarker",
4997
+ # limit: 1,
4998
+ # }
4999
+ #
5000
+ # @!attribute [rw] scope
5001
+ # Specifies whether this is for an Amazon CloudFront distribution or
5002
+ # for a regional application. A regional application can be an
5003
+ # Application Load Balancer (ALB), an Amazon API Gateway REST API, or
5004
+ # an AppSync GraphQL API.
5005
+ #
5006
+ # To work with CloudFront, you must also specify the Region US East
5007
+ # (N. Virginia) as follows:
5008
+ #
5009
+ # * CLI - Specify the Region when you use the CloudFront scope:
5010
+ # `--scope=CLOUDFRONT --region=us-east-1`.
5011
+ #
5012
+ # * API and SDKs - For all calls, use the Region endpoint us-east-1.
5013
+ # @return [String]
5014
+ #
5015
+ # @!attribute [rw] next_marker
5016
+ # When you request a list of objects with a `Limit` setting, if the
5017
+ # number of objects that are still available for retrieval exceeds the
5018
+ # limit, WAF returns a `NextMarker` value in the response. To retrieve
5019
+ # the next batch of objects, provide the marker from the prior call in
5020
+ # your next request.
5021
+ # @return [String]
5022
+ #
5023
+ # @!attribute [rw] limit
5024
+ # The maximum number of objects that you want WAF to return for this
5025
+ # request. If more objects are available, in the response, WAF
5026
+ # provides a `NextMarker` value that you can use in a subsequent call
5027
+ # to get the next batch of objects.
5028
+ # @return [Integer]
5029
+ #
5030
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListManagedRuleSetsRequest AWS API Documentation
5031
+ #
5032
+ class ListManagedRuleSetsRequest < Struct.new(
5033
+ :scope,
5034
+ :next_marker,
5035
+ :limit)
5036
+ SENSITIVE = []
5037
+ include Aws::Structure
5038
+ end
5039
+
5040
+ # @!attribute [rw] next_marker
5041
+ # When you request a list of objects with a `Limit` setting, if the
5042
+ # number of objects that are still available for retrieval exceeds the
5043
+ # limit, WAF returns a `NextMarker` value in the response. To retrieve
5044
+ # the next batch of objects, provide the marker from the prior call in
5045
+ # your next request.
5046
+ # @return [String]
5047
+ #
5048
+ # @!attribute [rw] managed_rule_sets
5049
+ # Your managed rule sets.
5050
+ # @return [Array<Types::ManagedRuleSetSummary>]
5051
+ #
5052
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListManagedRuleSetsResponse AWS API Documentation
5053
+ #
5054
+ class ListManagedRuleSetsResponse < Struct.new(
5055
+ :next_marker,
5056
+ :managed_rule_sets)
5057
+ SENSITIVE = []
5058
+ include Aws::Structure
5059
+ end
5060
+
4630
5061
  # @note When making an API call, you may pass ListRegexPatternSetsRequest
4631
5062
  # data as a hash:
4632
5063
  #
@@ -5008,11 +5439,11 @@ module Aws::WAFV2
5008
5439
  #
5009
5440
  # @!attribute [rw] redacted_fields
5010
5441
  # The parts of the request that you want to keep out of the logs. For
5011
- # example, if you redact the `HEADER` field, the `HEADER` field in the
5012
- # firehose will be `xxx`.
5442
+ # example, if you redact the `SingleHeader` field, the `HEADER` field
5443
+ # in the firehose will be `xxx`.
5013
5444
  #
5014
- # <note markdown="1"> You must use one of the following values: `URI`, `QUERY_STRING`,
5015
- # `HEADER`, or `METHOD`.
5445
+ # <note markdown="1"> You can specify only the following fields for redaction: `UriPath`,
5446
+ # `QueryString`, `SingleHeader`, `Method`, and `JsonBody`.
5016
5447
  #
5017
5448
  # </note>
5018
5449
  # @return [Array<Types::FieldToMatch>]
@@ -5104,6 +5535,7 @@ module Aws::WAFV2
5104
5535
  # {
5105
5536
  # vendor_name: "VendorName", # required
5106
5537
  # name: "EntityName", # required
5538
+ # version: "VersionKeyString",
5107
5539
  # excluded_rules: [
5108
5540
  # {
5109
5541
  # name: "EntityName", # required
@@ -5346,6 +5778,7 @@ module Aws::WAFV2
5346
5778
  # managed_rule_group_statement: {
5347
5779
  # vendor_name: "VendorName", # required
5348
5780
  # name: "EntityName", # required
5781
+ # version: "VersionKeyString",
5349
5782
  # excluded_rules: [
5350
5783
  # {
5351
5784
  # name: "EntityName", # required
@@ -5359,6 +5792,42 @@ module Aws::WAFV2
5359
5792
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
5360
5793
  # key: "LabelMatchKey", # required
5361
5794
  # },
5795
+ # regex_match_statement: {
5796
+ # regex_string: "RegexPatternString", # required
5797
+ # field_to_match: { # required
5798
+ # single_header: {
5799
+ # name: "FieldToMatchData", # required
5800
+ # },
5801
+ # single_query_argument: {
5802
+ # name: "FieldToMatchData", # required
5803
+ # },
5804
+ # all_query_arguments: {
5805
+ # },
5806
+ # uri_path: {
5807
+ # },
5808
+ # query_string: {
5809
+ # },
5810
+ # body: {
5811
+ # },
5812
+ # method: {
5813
+ # },
5814
+ # json_body: {
5815
+ # match_pattern: { # required
5816
+ # all: {
5817
+ # },
5818
+ # included_paths: ["JsonPointerPath"],
5819
+ # },
5820
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
5821
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
5822
+ # },
5823
+ # },
5824
+ # text_transformations: [ # required
5825
+ # {
5826
+ # priority: 1, # required
5827
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
5828
+ # },
5829
+ # ],
5830
+ # },
5362
5831
  # },
5363
5832
  # }
5364
5833
  #
@@ -5372,6 +5841,14 @@ module Aws::WAFV2
5372
5841
  # vendor name, to identify the rule group.
5373
5842
  # @return [String]
5374
5843
  #
5844
+ # @!attribute [rw] version
5845
+ # The version of the managed rule group to use. If you specify this,
5846
+ # the version setting is fixed until you change it. If you don't
5847
+ # specify this, WAF uses the vendor's default version, and then keeps
5848
+ # the version at the vendor's default when the vendor updates the
5849
+ # managed rule group settings.
5850
+ # @return [String]
5851
+ #
5375
5852
  # @!attribute [rw] excluded_rules
5376
5853
  # The rules whose actions are set to `COUNT` by the web ACL,
5377
5854
  # regardless of the action that is set on the rule. This effectively
@@ -5392,6 +5869,7 @@ module Aws::WAFV2
5392
5869
  class ManagedRuleGroupStatement < Struct.new(
5393
5870
  :vendor_name,
5394
5871
  :name,
5872
+ :version,
5395
5873
  :excluded_rules,
5396
5874
  :scope_down_statement)
5397
5875
  SENSITIVE = []
@@ -5403,8 +5881,9 @@ module Aws::WAFV2
5403
5881
  # name and vendor name, that you provide when you add a
5404
5882
  # ManagedRuleGroupStatement to a web ACL. Managed rule groups include
5405
5883
  # Amazon Web Services Managed Rules rule groups, which are free of
5406
- # charge to WAF customers, and Marketplace managed rule groups, which
5407
- # you can subscribe to through Marketplace.
5884
+ # charge to WAF customers, and Amazon Web Services Marketplace managed
5885
+ # rule groups, which you can subscribe to through Amazon Web Services
5886
+ # Marketplace.
5408
5887
  #
5409
5888
  # @!attribute [rw] vendor_name
5410
5889
  # The name of the managed rule group vendor. You use this, along with
@@ -5418,7 +5897,8 @@ module Aws::WAFV2
5418
5897
  #
5419
5898
  # @!attribute [rw] description
5420
5899
  # The description of the managed rule group, provided by Amazon Web
5421
- # Services Managed Rules or the Marketplace seller who manages it.
5900
+ # Services Managed Rules or the Amazon Web Services Marketplace seller
5901
+ # who manages it.
5422
5902
  # @return [String]
5423
5903
  #
5424
5904
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ManagedRuleGroupSummary AWS API Documentation
@@ -5431,12 +5911,263 @@ module Aws::WAFV2
5431
5911
  include Aws::Structure
5432
5912
  end
5433
5913
 
5914
+ # Describes a single version of a managed rule group.
5915
+ #
5916
+ # @!attribute [rw] name
5917
+ # The version name.
5918
+ # @return [String]
5919
+ #
5920
+ # @!attribute [rw] last_update_timestamp
5921
+ # The date and time that the managed rule group owner updated the rule
5922
+ # group version information.
5923
+ # @return [Time]
5924
+ #
5925
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ManagedRuleGroupVersion AWS API Documentation
5926
+ #
5927
+ class ManagedRuleGroupVersion < Struct.new(
5928
+ :name,
5929
+ :last_update_timestamp)
5930
+ SENSITIVE = []
5931
+ include Aws::Structure
5932
+ end
5933
+
5934
+ # A set of rules that is managed by Amazon Web Services and Amazon Web
5935
+ # Services Marketplace sellers to provide versioned managed rule groups
5936
+ # for customers of WAF.
5937
+ #
5938
+ # <note markdown="1"> This is intended for use only by vendors of managed rule sets. Vendors
5939
+ # are Amazon Web Services and Amazon Web Services Marketplace sellers.
5940
+ #
5941
+ # Vendors, you can use the managed rule set APIs to provide controlled
5942
+ # rollout of your versioned managed rule group offerings for your
5943
+ # customers. The APIs are `ListManagedRuleSets`, `GetManagedRuleSet`,
5944
+ # `PutManagedRuleSetVersions`, and
5945
+ # `UpdateManagedRuleSetVersionExpiryDate`.
5946
+ #
5947
+ # </note>
5948
+ #
5949
+ # @!attribute [rw] name
5950
+ # The name of the managed rule set. You use this, along with the rule
5951
+ # set ID, to identify the rule set.
5952
+ #
5953
+ # This name is assigned to the corresponding managed rule group, which
5954
+ # your customers can access and use.
5955
+ # @return [String]
5956
+ #
5957
+ # @!attribute [rw] id
5958
+ # A unique identifier for the managed rule set. The ID is returned in
5959
+ # the responses to commands like `list`. You provide it to operations
5960
+ # like `get` and `update`.
5961
+ # @return [String]
5962
+ #
5963
+ # @!attribute [rw] arn
5964
+ # The Amazon Resource Name (ARN) of the entity.
5965
+ # @return [String]
5966
+ #
5967
+ # @!attribute [rw] description
5968
+ # A description of the set that helps with identification.
5969
+ # @return [String]
5970
+ #
5971
+ # @!attribute [rw] published_versions
5972
+ # The versions of this managed rule set that are available for use by
5973
+ # customers.
5974
+ # @return [Hash<String,Types::ManagedRuleSetVersion>]
5975
+ #
5976
+ # @!attribute [rw] recommended_version
5977
+ # The version that you would like your customers to use.
5978
+ # @return [String]
5979
+ #
5980
+ # @!attribute [rw] label_namespace
5981
+ # The label namespace prefix for the managed rule groups that are
5982
+ # offered to customers from this managed rule set. All labels that are
5983
+ # added by rules in the managed rule group have this prefix.
5984
+ #
5985
+ # * The syntax for the label namespace prefix for a managed rule group
5986
+ # is the following:
5987
+ #
5988
+ # `awswaf:managed:<vendor>:<rule group name>`\:
5989
+ #
5990
+ # * When a rule with a label matches a web request, WAF adds the fully
5991
+ # qualified label to the request. A fully qualified label is made up
5992
+ # of the label namespace from the rule group or web ACL where the
5993
+ # rule is defined and the label from the rule, separated by a colon:
5994
+ #
5995
+ # `<label namespace>:<label from rule>`
5996
+ # @return [String]
5997
+ #
5998
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ManagedRuleSet AWS API Documentation
5999
+ #
6000
+ class ManagedRuleSet < Struct.new(
6001
+ :name,
6002
+ :id,
6003
+ :arn,
6004
+ :description,
6005
+ :published_versions,
6006
+ :recommended_version,
6007
+ :label_namespace)
6008
+ SENSITIVE = []
6009
+ include Aws::Structure
6010
+ end
6011
+
6012
+ # High-level information for a managed rule set.
6013
+ #
6014
+ # <note markdown="1"> This is intended for use only by vendors of managed rule sets. Vendors
6015
+ # are Amazon Web Services and Amazon Web Services Marketplace sellers.
6016
+ #
6017
+ # Vendors, you can use the managed rule set APIs to provide controlled
6018
+ # rollout of your versioned managed rule group offerings for your
6019
+ # customers. The APIs are `ListManagedRuleSets`, `GetManagedRuleSet`,
6020
+ # `PutManagedRuleSetVersions`, and
6021
+ # `UpdateManagedRuleSetVersionExpiryDate`.
6022
+ #
6023
+ # </note>
6024
+ #
6025
+ # @!attribute [rw] name
6026
+ # The name of the managed rule set. You use this, along with the rule
6027
+ # set ID, to identify the rule set.
6028
+ #
6029
+ # This name is assigned to the corresponding managed rule group, which
6030
+ # your customers can access and use.
6031
+ # @return [String]
6032
+ #
6033
+ # @!attribute [rw] id
6034
+ # A unique identifier for the managed rule set. The ID is returned in
6035
+ # the responses to commands like `list`. You provide it to operations
6036
+ # like `get` and `update`.
6037
+ # @return [String]
6038
+ #
6039
+ # @!attribute [rw] description
6040
+ # A description of the set that helps with identification.
6041
+ # @return [String]
6042
+ #
6043
+ # @!attribute [rw] lock_token
6044
+ # A token used for optimistic locking. WAF returns a token to your
6045
+ # `get` and `list` requests, to mark the state of the entity at the
6046
+ # time of the request. To make changes to the entity associated with
6047
+ # the token, you provide the token to operations like `update` and
6048
+ # `delete`. WAF uses the token to ensure that no changes have been
6049
+ # made to the entity since you last retrieved it. If a change has been
6050
+ # made, the update fails with a `WAFOptimisticLockException`. If this
6051
+ # happens, perform another `get`, and use the new token returned by
6052
+ # that operation.
6053
+ # @return [String]
6054
+ #
6055
+ # @!attribute [rw] arn
6056
+ # The Amazon Resource Name (ARN) of the entity.
6057
+ # @return [String]
6058
+ #
6059
+ # @!attribute [rw] label_namespace
6060
+ # The label namespace prefix for the managed rule groups that are
6061
+ # offered to customers from this managed rule set. All labels that are
6062
+ # added by rules in the managed rule group have this prefix.
6063
+ #
6064
+ # * The syntax for the label namespace prefix for a managed rule group
6065
+ # is the following:
6066
+ #
6067
+ # `awswaf:managed:<vendor>:<rule group name>`\:
6068
+ #
6069
+ # * When a rule with a label matches a web request, WAF adds the fully
6070
+ # qualified label to the request. A fully qualified label is made up
6071
+ # of the label namespace from the rule group or web ACL where the
6072
+ # rule is defined and the label from the rule, separated by a colon:
6073
+ #
6074
+ # `<label namespace>:<label from rule>`
6075
+ # @return [String]
6076
+ #
6077
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ManagedRuleSetSummary AWS API Documentation
6078
+ #
6079
+ class ManagedRuleSetSummary < Struct.new(
6080
+ :name,
6081
+ :id,
6082
+ :description,
6083
+ :lock_token,
6084
+ :arn,
6085
+ :label_namespace)
6086
+ SENSITIVE = []
6087
+ include Aws::Structure
6088
+ end
6089
+
6090
+ # Information for a single version of a managed rule set.
6091
+ #
6092
+ # <note markdown="1"> This is intended for use only by vendors of managed rule sets. Vendors
6093
+ # are Amazon Web Services and Amazon Web Services Marketplace sellers.
6094
+ #
6095
+ # Vendors, you can use the managed rule set APIs to provide controlled
6096
+ # rollout of your versioned managed rule group offerings for your
6097
+ # customers. The APIs are `ListManagedRuleSets`, `GetManagedRuleSet`,
6098
+ # `PutManagedRuleSetVersions`, and
6099
+ # `UpdateManagedRuleSetVersionExpiryDate`.
6100
+ #
6101
+ # </note>
6102
+ #
6103
+ # @!attribute [rw] associated_rule_group_arn
6104
+ # The Amazon Resource Name (ARN) of the vendor rule group that's used
6105
+ # to define the published version of your managed rule group.
6106
+ # @return [String]
6107
+ #
6108
+ # @!attribute [rw] capacity
6109
+ # The web ACL capacity units (WCUs) required for this rule group.
6110
+ #
6111
+ # WAF uses WCUs to calculate and control the operating resources that
6112
+ # are used to run your rules, rule groups, and web ACLs. WAF
6113
+ # calculates capacity differently for each rule type, to reflect the
6114
+ # relative cost of each rule. Simple rules that cost little to run use
6115
+ # fewer WCUs than more complex rules that use more processing power.
6116
+ # Rule group capacity is fixed at creation, which helps users plan
6117
+ # their web ACL WCU usage when they use a rule group. The WCU limit
6118
+ # for web ACLs is 1,500.
6119
+ # @return [Integer]
6120
+ #
6121
+ # @!attribute [rw] forecasted_lifetime
6122
+ # The amount of time you expect this version of your managed rule
6123
+ # group to last, in days.
6124
+ # @return [Integer]
6125
+ #
6126
+ # @!attribute [rw] publish_timestamp
6127
+ # The time that you first published this version.
6128
+ #
6129
+ # Times are in Coordinated Universal Time (UTC) format. UTC format
6130
+ # includes the special designator, Z. For example,
6131
+ # "2016-09-27T14:50Z".
6132
+ # @return [Time]
6133
+ #
6134
+ # @!attribute [rw] last_update_timestamp
6135
+ # The last time that you updated this version.
6136
+ #
6137
+ # Times are in Coordinated Universal Time (UTC) format. UTC format
6138
+ # includes the special designator, Z. For example,
6139
+ # "2016-09-27T14:50Z".
6140
+ # @return [Time]
6141
+ #
6142
+ # @!attribute [rw] expiry_timestamp
6143
+ # The time that this version is set to expire.
6144
+ #
6145
+ # Times are in Coordinated Universal Time (UTC) format. UTC format
6146
+ # includes the special designator, Z. For example,
6147
+ # "2016-09-27T14:50Z".
6148
+ # @return [Time]
6149
+ #
6150
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ManagedRuleSetVersion AWS API Documentation
6151
+ #
6152
+ class ManagedRuleSetVersion < Struct.new(
6153
+ :associated_rule_group_arn,
6154
+ :capacity,
6155
+ :forecasted_lifetime,
6156
+ :publish_timestamp,
6157
+ :last_update_timestamp,
6158
+ :expiry_timestamp)
6159
+ SENSITIVE = []
6160
+ include Aws::Structure
6161
+ end
6162
+
5434
6163
  # The HTTP method of a web request. The method indicates the type of
5435
6164
  # operation that the request is asking the origin to perform.
5436
6165
  #
5437
6166
  # This is used only to indicate the web request component for WAF to
5438
6167
  # inspect, in the FieldToMatch specification.
5439
6168
  #
6169
+ # JSON specification: `"Method": \{\}`
6170
+ #
5440
6171
  # @api private
5441
6172
  #
5442
6173
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/Method AWS API Documentation
@@ -5450,6 +6181,8 @@ module Aws::WAFV2
5450
6181
  # This is used in the context of other settings, for example to specify
5451
6182
  # values for RuleAction and web ACL DefaultAction.
5452
6183
  #
6184
+ # JSON specification: `"None": \{\}`
6185
+ #
5453
6186
  # @api private
5454
6187
  #
5455
6188
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/NoneAction AWS API Documentation
@@ -5700,6 +6433,7 @@ module Aws::WAFV2
5700
6433
  # managed_rule_group_statement: {
5701
6434
  # vendor_name: "VendorName", # required
5702
6435
  # name: "EntityName", # required
6436
+ # version: "VersionKeyString",
5703
6437
  # excluded_rules: [
5704
6438
  # {
5705
6439
  # name: "EntityName", # required
@@ -5713,6 +6447,42 @@ module Aws::WAFV2
5713
6447
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
5714
6448
  # key: "LabelMatchKey", # required
5715
6449
  # },
6450
+ # regex_match_statement: {
6451
+ # regex_string: "RegexPatternString", # required
6452
+ # field_to_match: { # required
6453
+ # single_header: {
6454
+ # name: "FieldToMatchData", # required
6455
+ # },
6456
+ # single_query_argument: {
6457
+ # name: "FieldToMatchData", # required
6458
+ # },
6459
+ # all_query_arguments: {
6460
+ # },
6461
+ # uri_path: {
6462
+ # },
6463
+ # query_string: {
6464
+ # },
6465
+ # body: {
6466
+ # },
6467
+ # method: {
6468
+ # },
6469
+ # json_body: {
6470
+ # match_pattern: { # required
6471
+ # all: {
6472
+ # },
6473
+ # included_paths: ["JsonPointerPath"],
6474
+ # },
6475
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6476
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6477
+ # },
6478
+ # },
6479
+ # text_transformations: [ # required
6480
+ # {
6481
+ # priority: 1, # required
6482
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
6483
+ # },
6484
+ # ],
6485
+ # },
5716
6486
  # },
5717
6487
  # }
5718
6488
  #
@@ -5970,6 +6740,7 @@ module Aws::WAFV2
5970
6740
  # managed_rule_group_statement: {
5971
6741
  # vendor_name: "VendorName", # required
5972
6742
  # name: "EntityName", # required
6743
+ # version: "VersionKeyString",
5973
6744
  # excluded_rules: [
5974
6745
  # {
5975
6746
  # name: "EntityName", # required
@@ -5983,6 +6754,42 @@ module Aws::WAFV2
5983
6754
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
5984
6755
  # key: "LabelMatchKey", # required
5985
6756
  # },
6757
+ # regex_match_statement: {
6758
+ # regex_string: "RegexPatternString", # required
6759
+ # field_to_match: { # required
6760
+ # single_header: {
6761
+ # name: "FieldToMatchData", # required
6762
+ # },
6763
+ # single_query_argument: {
6764
+ # name: "FieldToMatchData", # required
6765
+ # },
6766
+ # all_query_arguments: {
6767
+ # },
6768
+ # uri_path: {
6769
+ # },
6770
+ # query_string: {
6771
+ # },
6772
+ # body: {
6773
+ # },
6774
+ # method: {
6775
+ # },
6776
+ # json_body: {
6777
+ # match_pattern: { # required
6778
+ # all: {
6779
+ # },
6780
+ # included_paths: ["JsonPointerPath"],
6781
+ # },
6782
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
6783
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
6784
+ # },
6785
+ # },
6786
+ # text_transformations: [ # required
6787
+ # {
6788
+ # priority: 1, # required
6789
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
6790
+ # },
6791
+ # ],
6792
+ # },
5986
6793
  # },
5987
6794
  # ],
5988
6795
  # }
@@ -6133,6 +6940,107 @@ module Aws::WAFV2
6133
6940
  include Aws::Structure
6134
6941
  end
6135
6942
 
6943
+ # @note When making an API call, you may pass PutManagedRuleSetVersionsRequest
6944
+ # data as a hash:
6945
+ #
6946
+ # {
6947
+ # name: "EntityName", # required
6948
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
6949
+ # id: "EntityId", # required
6950
+ # lock_token: "LockToken", # required
6951
+ # recommended_version: "VersionKeyString",
6952
+ # versions_to_publish: {
6953
+ # "VersionKeyString" => {
6954
+ # associated_rule_group_arn: "ResourceArn",
6955
+ # forecasted_lifetime: 1,
6956
+ # },
6957
+ # },
6958
+ # }
6959
+ #
6960
+ # @!attribute [rw] name
6961
+ # The name of the managed rule set. You use this, along with the rule
6962
+ # set ID, to identify the rule set.
6963
+ #
6964
+ # This name is assigned to the corresponding managed rule group, which
6965
+ # your customers can access and use.
6966
+ # @return [String]
6967
+ #
6968
+ # @!attribute [rw] scope
6969
+ # Specifies whether this is for an Amazon CloudFront distribution or
6970
+ # for a regional application. A regional application can be an
6971
+ # Application Load Balancer (ALB), an Amazon API Gateway REST API, or
6972
+ # an AppSync GraphQL API.
6973
+ #
6974
+ # To work with CloudFront, you must also specify the Region US East
6975
+ # (N. Virginia) as follows:
6976
+ #
6977
+ # * CLI - Specify the Region when you use the CloudFront scope:
6978
+ # `--scope=CLOUDFRONT --region=us-east-1`.
6979
+ #
6980
+ # * API and SDKs - For all calls, use the Region endpoint us-east-1.
6981
+ # @return [String]
6982
+ #
6983
+ # @!attribute [rw] id
6984
+ # A unique identifier for the managed rule set. The ID is returned in
6985
+ # the responses to commands like `list`. You provide it to operations
6986
+ # like `get` and `update`.
6987
+ # @return [String]
6988
+ #
6989
+ # @!attribute [rw] lock_token
6990
+ # A token used for optimistic locking. WAF returns a token to your
6991
+ # `get` and `list` requests, to mark the state of the entity at the
6992
+ # time of the request. To make changes to the entity associated with
6993
+ # the token, you provide the token to operations like `update` and
6994
+ # `delete`. WAF uses the token to ensure that no changes have been
6995
+ # made to the entity since you last retrieved it. If a change has been
6996
+ # made, the update fails with a `WAFOptimisticLockException`. If this
6997
+ # happens, perform another `get`, and use the new token returned by
6998
+ # that operation.
6999
+ # @return [String]
7000
+ #
7001
+ # @!attribute [rw] recommended_version
7002
+ # The version of the named managed rule group that you'd like your
7003
+ # customers to choose, from among your version offerings.
7004
+ # @return [String]
7005
+ #
7006
+ # @!attribute [rw] versions_to_publish
7007
+ # The versions of the named managed rule group that you want to offer
7008
+ # to your customers.
7009
+ # @return [Hash<String,Types::VersionToPublish>]
7010
+ #
7011
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutManagedRuleSetVersionsRequest AWS API Documentation
7012
+ #
7013
+ class PutManagedRuleSetVersionsRequest < Struct.new(
7014
+ :name,
7015
+ :scope,
7016
+ :id,
7017
+ :lock_token,
7018
+ :recommended_version,
7019
+ :versions_to_publish)
7020
+ SENSITIVE = []
7021
+ include Aws::Structure
7022
+ end
7023
+
7024
+ # @!attribute [rw] next_lock_token
7025
+ # A token used for optimistic locking. WAF returns a token to your
7026
+ # `get` and `list` requests, to mark the state of the entity at the
7027
+ # time of the request. To make changes to the entity associated with
7028
+ # the token, you provide the token to operations like `update` and
7029
+ # `delete`. WAF uses the token to ensure that no changes have been
7030
+ # made to the entity since you last retrieved it. If a change has been
7031
+ # made, the update fails with a `WAFOptimisticLockException`. If this
7032
+ # happens, perform another `get`, and use the new token returned by
7033
+ # that operation.
7034
+ # @return [String]
7035
+ #
7036
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutManagedRuleSetVersionsResponse AWS API Documentation
7037
+ #
7038
+ class PutManagedRuleSetVersionsResponse < Struct.new(
7039
+ :next_lock_token)
7040
+ SENSITIVE = []
7041
+ include Aws::Structure
7042
+ end
7043
+
6136
7044
  # @note When making an API call, you may pass PutPermissionPolicyRequest
6137
7045
  # data as a hash:
6138
7046
  #
@@ -6191,6 +7099,8 @@ module Aws::WAFV2
6191
7099
  # This is used only to indicate the web request component for WAF to
6192
7100
  # inspect, in the FieldToMatch specification.
6193
7101
  #
7102
+ # JSON specification: `"QueryString": \{\}`
7103
+ #
6194
7104
  # @api private
6195
7105
  #
6196
7106
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/QueryString AWS API Documentation
@@ -6203,6 +7113,15 @@ module Aws::WAFV2
6203
7113
  # You can use this to put a temporary block on requests from an IP
6204
7114
  # address that is sending excessive requests.
6205
7115
  #
7116
+ # WAF tracks and manages web requests separately for each instance of a
7117
+ # rate-based rule that you use. For example, if you provide the same
7118
+ # rate-based rule settings in two web ACLs, each of the two rule
7119
+ # statements represents a separate instance of the rate-based rule and
7120
+ # gets its own tracking and management by WAF. If you define a
7121
+ # rate-based rule inside a rule group, and then use that rule group in
7122
+ # multiple places, each use creates a separate instance of the
7123
+ # rate-based rule that gets its own tracking and management by WAF.
7124
+ #
6206
7125
  # When the rule action triggers, WAF blocks additional requests from the
6207
7126
  # IP address until the request rate falls below the limit.
6208
7127
  #
@@ -6226,9 +7145,9 @@ module Aws::WAFV2
6226
7145
  # not meet both conditions are not counted towards the rate limit and
6227
7146
  # are not affected by this rule.
6228
7147
  #
6229
- # You cannot nest a `RateBasedStatement`, for example for use inside a
6230
- # `NotStatement` or `OrStatement`. It can only be referenced as a
6231
- # top-level statement within a rule.
7148
+ # You cannot nest a `RateBasedStatement` inside another statement, for
7149
+ # example inside a `NotStatement` or `OrStatement`. You can define a
7150
+ # `RateBasedStatement` inside a web ACL and inside a rule group.
6232
7151
  #
6233
7152
  # @note When making an API call, you may pass RateBasedStatement
6234
7153
  # data as a hash:
@@ -6473,18 +7392,55 @@ module Aws::WAFV2
6473
7392
  # managed_rule_group_statement: {
6474
7393
  # vendor_name: "VendorName", # required
6475
7394
  # name: "EntityName", # required
7395
+ # version: "VersionKeyString",
6476
7396
  # excluded_rules: [
6477
7397
  # {
6478
- # name: "EntityName", # required
7398
+ # name: "EntityName", # required
7399
+ # },
7400
+ # ],
7401
+ # scope_down_statement: {
7402
+ # # recursive Statement
7403
+ # },
7404
+ # },
7405
+ # label_match_statement: {
7406
+ # scope: "LABEL", # required, accepts LABEL, NAMESPACE
7407
+ # key: "LabelMatchKey", # required
7408
+ # },
7409
+ # regex_match_statement: {
7410
+ # regex_string: "RegexPatternString", # required
7411
+ # field_to_match: { # required
7412
+ # single_header: {
7413
+ # name: "FieldToMatchData", # required
7414
+ # },
7415
+ # single_query_argument: {
7416
+ # name: "FieldToMatchData", # required
7417
+ # },
7418
+ # all_query_arguments: {
7419
+ # },
7420
+ # uri_path: {
7421
+ # },
7422
+ # query_string: {
7423
+ # },
7424
+ # body: {
7425
+ # },
7426
+ # method: {
7427
+ # },
7428
+ # json_body: {
7429
+ # match_pattern: { # required
7430
+ # all: {
7431
+ # },
7432
+ # included_paths: ["JsonPointerPath"],
7433
+ # },
7434
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
7435
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
7436
+ # },
7437
+ # },
7438
+ # text_transformations: [ # required
7439
+ # {
7440
+ # priority: 1, # required
7441
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
6479
7442
  # },
6480
7443
  # ],
6481
- # scope_down_statement: {
6482
- # # recursive Statement
6483
- # },
6484
- # },
6485
- # label_match_statement: {
6486
- # scope: "LABEL", # required, accepts LABEL, NAMESPACE
6487
- # key: "LabelMatchKey", # required
6488
7444
  # },
6489
7445
  # },
6490
7446
  # forwarded_ip_config: {
@@ -6545,10 +7501,11 @@ module Aws::WAFV2
6545
7501
  include Aws::Structure
6546
7502
  end
6547
7503
 
6548
- # The set of IP addresses that are currently blocked for a rate-based
6549
- # statement.
7504
+ # The set of IP addresses that are currently blocked for a
7505
+ # RateBasedStatement.
6550
7506
  #
6551
7507
  # @!attribute [rw] ip_address_version
7508
+ # The version of the IP addresses, either `IPV4` or `IPV6`.
6552
7509
  # @return [String]
6553
7510
  #
6554
7511
  # @!attribute [rw] addresses
@@ -6585,6 +7542,77 @@ module Aws::WAFV2
6585
7542
  include Aws::Structure
6586
7543
  end
6587
7544
 
7545
+ # A rule statement used to search web request components for a match
7546
+ # against a single regular expression.
7547
+ #
7548
+ # @note When making an API call, you may pass RegexMatchStatement
7549
+ # data as a hash:
7550
+ #
7551
+ # {
7552
+ # regex_string: "RegexPatternString", # required
7553
+ # field_to_match: { # required
7554
+ # single_header: {
7555
+ # name: "FieldToMatchData", # required
7556
+ # },
7557
+ # single_query_argument: {
7558
+ # name: "FieldToMatchData", # required
7559
+ # },
7560
+ # all_query_arguments: {
7561
+ # },
7562
+ # uri_path: {
7563
+ # },
7564
+ # query_string: {
7565
+ # },
7566
+ # body: {
7567
+ # },
7568
+ # method: {
7569
+ # },
7570
+ # json_body: {
7571
+ # match_pattern: { # required
7572
+ # all: {
7573
+ # },
7574
+ # included_paths: ["JsonPointerPath"],
7575
+ # },
7576
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
7577
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
7578
+ # },
7579
+ # },
7580
+ # text_transformations: [ # required
7581
+ # {
7582
+ # priority: 1, # required
7583
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
7584
+ # },
7585
+ # ],
7586
+ # }
7587
+ #
7588
+ # @!attribute [rw] regex_string
7589
+ # The string representing the regular expression.
7590
+ # @return [String]
7591
+ #
7592
+ # @!attribute [rw] field_to_match
7593
+ # The part of a web request that you want WAF to inspect. For more
7594
+ # information, see FieldToMatch.
7595
+ # @return [Types::FieldToMatch]
7596
+ #
7597
+ # @!attribute [rw] text_transformations
7598
+ # Text transformations eliminate some of the unusual formatting that
7599
+ # attackers use in web requests in an effort to bypass detection. If
7600
+ # you specify one or more transformations in a rule statement, WAF
7601
+ # performs all transformations on the content of the request component
7602
+ # identified by `FieldToMatch`, starting from the lowest priority
7603
+ # setting, before inspecting the content for a match.
7604
+ # @return [Array<Types::TextTransformation>]
7605
+ #
7606
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/RegexMatchStatement AWS API Documentation
7607
+ #
7608
+ class RegexMatchStatement < Struct.new(
7609
+ :regex_string,
7610
+ :field_to_match,
7611
+ :text_transformations)
7612
+ SENSITIVE = []
7613
+ include Aws::Structure
7614
+ end
7615
+
6588
7616
  # Contains one or more regular expressions.
6589
7617
  #
6590
7618
  # WAF assigns an ARN to each `RegexPatternSet` that you create. To use a
@@ -6729,15 +7757,15 @@ module Aws::WAFV2
6729
7757
  # @return [String]
6730
7758
  #
6731
7759
  # @!attribute [rw] lock_token
6732
- # A token used for optimistic locking. WAF returns a token to your get
6733
- # and list requests, to mark the state of the entity at the time of
6734
- # the request. To make changes to the entity associated with the
6735
- # token, you provide the token to operations like update and delete.
6736
- # WAF uses the token to ensure that no changes have been made to the
6737
- # entity since you last retrieved it. If a change has been made, the
6738
- # update fails with a `WAFOptimisticLockException`. If this happens,
6739
- # perform another get, and use the new token returned by that
6740
- # operation.
7760
+ # A token used for optimistic locking. WAF returns a token to your
7761
+ # `get` and `list` requests, to mark the state of the entity at the
7762
+ # time of the request. To make changes to the entity associated with
7763
+ # the token, you provide the token to operations like `update` and
7764
+ # `delete`. WAF uses the token to ensure that no changes have been
7765
+ # made to the entity since you last retrieved it. If a change has been
7766
+ # made, the update fails with a `WAFOptimisticLockException`. If this
7767
+ # happens, perform another `get`, and use the new token returned by
7768
+ # that operation.
6741
7769
  # @return [String]
6742
7770
  #
6743
7771
  # @!attribute [rw] arn
@@ -7004,6 +8032,7 @@ module Aws::WAFV2
7004
8032
  # managed_rule_group_statement: {
7005
8033
  # vendor_name: "VendorName", # required
7006
8034
  # name: "EntityName", # required
8035
+ # version: "VersionKeyString",
7007
8036
  # excluded_rules: [
7008
8037
  # {
7009
8038
  # name: "EntityName", # required
@@ -7017,6 +8046,42 @@ module Aws::WAFV2
7017
8046
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
7018
8047
  # key: "LabelMatchKey", # required
7019
8048
  # },
8049
+ # regex_match_statement: {
8050
+ # regex_string: "RegexPatternString", # required
8051
+ # field_to_match: { # required
8052
+ # single_header: {
8053
+ # name: "FieldToMatchData", # required
8054
+ # },
8055
+ # single_query_argument: {
8056
+ # name: "FieldToMatchData", # required
8057
+ # },
8058
+ # all_query_arguments: {
8059
+ # },
8060
+ # uri_path: {
8061
+ # },
8062
+ # query_string: {
8063
+ # },
8064
+ # body: {
8065
+ # },
8066
+ # method: {
8067
+ # },
8068
+ # json_body: {
8069
+ # match_pattern: { # required
8070
+ # all: {
8071
+ # },
8072
+ # included_paths: ["JsonPointerPath"],
8073
+ # },
8074
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
8075
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
8076
+ # },
8077
+ # },
8078
+ # text_transformations: [ # required
8079
+ # {
8080
+ # priority: 1, # required
8081
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
8082
+ # },
8083
+ # ],
8084
+ # },
7020
8085
  # },
7021
8086
  # action: {
7022
8087
  # block: {
@@ -7372,8 +8437,8 @@ module Aws::WAFV2
7372
8437
  # provide the ARN of the rule group in this statement.
7373
8438
  #
7374
8439
  # You cannot nest a `RuleGroupReferenceStatement`, for example for use
7375
- # inside a `NotStatement` or `OrStatement`. It can only be referenced as
7376
- # a top-level statement within a rule.
8440
+ # inside a `NotStatement` or `OrStatement`. You can only use a rule
8441
+ # group reference statement at the top level inside a web ACL.
7377
8442
  #
7378
8443
  # @note When making an API call, you may pass RuleGroupReferenceStatement
7379
8444
  # data as a hash:
@@ -7427,15 +8492,15 @@ module Aws::WAFV2
7427
8492
  # @return [String]
7428
8493
  #
7429
8494
  # @!attribute [rw] lock_token
7430
- # A token used for optimistic locking. WAF returns a token to your get
7431
- # and list requests, to mark the state of the entity at the time of
7432
- # the request. To make changes to the entity associated with the
7433
- # token, you provide the token to operations like update and delete.
7434
- # WAF uses the token to ensure that no changes have been made to the
7435
- # entity since you last retrieved it. If a change has been made, the
7436
- # update fails with a `WAFOptimisticLockException`. If this happens,
7437
- # perform another get, and use the new token returned by that
7438
- # operation.
8495
+ # A token used for optimistic locking. WAF returns a token to your
8496
+ # `get` and `list` requests, to mark the state of the entity at the
8497
+ # time of the request. To make changes to the entity associated with
8498
+ # the token, you provide the token to operations like `update` and
8499
+ # `delete`. WAF uses the token to ensure that no changes have been
8500
+ # made to the entity since you last retrieved it. If a change has been
8501
+ # made, the update fails with a `WAFOptimisticLockException`. If this
8502
+ # happens, perform another `get`, and use the new token returned by
8503
+ # that operation.
7439
8504
  # @return [String]
7440
8505
  #
7441
8506
  # @!attribute [rw] arn
@@ -7555,6 +8620,8 @@ module Aws::WAFV2
7555
8620
  # This is used only to indicate the web request component for WAF to
7556
8621
  # inspect, in the FieldToMatch specification.
7557
8622
  #
8623
+ # Example JSON: `"SingleHeader": \{ "Name": "haystack" \}`
8624
+ #
7558
8625
  # @note When making an API call, you may pass SingleHeader
7559
8626
  # data as a hash:
7560
8627
  #
@@ -7578,6 +8645,8 @@ module Aws::WAFV2
7578
8645
  # *UserName* or *SalesRegion*. The name can be up to 30 characters long
7579
8646
  # and isn't case sensitive.
7580
8647
  #
8648
+ # Example JSON: `"SingleQueryArgument": \{ "Name": "myArgument" \}`
8649
+ #
7581
8650
  # @note When making an API call, you may pass SingleQueryArgument
7582
8651
  # data as a hash:
7583
8652
  #
@@ -8199,6 +9268,7 @@ module Aws::WAFV2
8199
9268
  # managed_rule_group_statement: {
8200
9269
  # vendor_name: "VendorName", # required
8201
9270
  # name: "EntityName", # required
9271
+ # version: "VersionKeyString",
8202
9272
  # excluded_rules: [
8203
9273
  # {
8204
9274
  # name: "EntityName", # required
@@ -8212,6 +9282,42 @@ module Aws::WAFV2
8212
9282
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
8213
9283
  # key: "LabelMatchKey", # required
8214
9284
  # },
9285
+ # regex_match_statement: {
9286
+ # regex_string: "RegexPatternString", # required
9287
+ # field_to_match: { # required
9288
+ # single_header: {
9289
+ # name: "FieldToMatchData", # required
9290
+ # },
9291
+ # single_query_argument: {
9292
+ # name: "FieldToMatchData", # required
9293
+ # },
9294
+ # all_query_arguments: {
9295
+ # },
9296
+ # uri_path: {
9297
+ # },
9298
+ # query_string: {
9299
+ # },
9300
+ # body: {
9301
+ # },
9302
+ # method: {
9303
+ # },
9304
+ # json_body: {
9305
+ # match_pattern: { # required
9306
+ # all: {
9307
+ # },
9308
+ # included_paths: ["JsonPointerPath"],
9309
+ # },
9310
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
9311
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
9312
+ # },
9313
+ # },
9314
+ # text_transformations: [ # required
9315
+ # {
9316
+ # priority: 1, # required
9317
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
9318
+ # },
9319
+ # ],
9320
+ # },
8215
9321
  # },
8216
9322
  # forwarded_ip_config: {
8217
9323
  # header_name: "ForwardedIPHeaderName", # required
@@ -8451,6 +9557,7 @@ module Aws::WAFV2
8451
9557
  # managed_rule_group_statement: {
8452
9558
  # vendor_name: "VendorName", # required
8453
9559
  # name: "EntityName", # required
9560
+ # version: "VersionKeyString",
8454
9561
  # excluded_rules: [
8455
9562
  # {
8456
9563
  # name: "EntityName", # required
@@ -8464,6 +9571,42 @@ module Aws::WAFV2
8464
9571
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
8465
9572
  # key: "LabelMatchKey", # required
8466
9573
  # },
9574
+ # regex_match_statement: {
9575
+ # regex_string: "RegexPatternString", # required
9576
+ # field_to_match: { # required
9577
+ # single_header: {
9578
+ # name: "FieldToMatchData", # required
9579
+ # },
9580
+ # single_query_argument: {
9581
+ # name: "FieldToMatchData", # required
9582
+ # },
9583
+ # all_query_arguments: {
9584
+ # },
9585
+ # uri_path: {
9586
+ # },
9587
+ # query_string: {
9588
+ # },
9589
+ # body: {
9590
+ # },
9591
+ # method: {
9592
+ # },
9593
+ # json_body: {
9594
+ # match_pattern: { # required
9595
+ # all: {
9596
+ # },
9597
+ # included_paths: ["JsonPointerPath"],
9598
+ # },
9599
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
9600
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
9601
+ # },
9602
+ # },
9603
+ # text_transformations: [ # required
9604
+ # {
9605
+ # priority: 1, # required
9606
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
9607
+ # },
9608
+ # ],
9609
+ # },
8467
9610
  # },
8468
9611
  # ],
8469
9612
  # },
@@ -8700,6 +9843,7 @@ module Aws::WAFV2
8700
9843
  # managed_rule_group_statement: {
8701
9844
  # vendor_name: "VendorName", # required
8702
9845
  # name: "EntityName", # required
9846
+ # version: "VersionKeyString",
8703
9847
  # excluded_rules: [
8704
9848
  # {
8705
9849
  # name: "EntityName", # required
@@ -8713,6 +9857,42 @@ module Aws::WAFV2
8713
9857
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
8714
9858
  # key: "LabelMatchKey", # required
8715
9859
  # },
9860
+ # regex_match_statement: {
9861
+ # regex_string: "RegexPatternString", # required
9862
+ # field_to_match: { # required
9863
+ # single_header: {
9864
+ # name: "FieldToMatchData", # required
9865
+ # },
9866
+ # single_query_argument: {
9867
+ # name: "FieldToMatchData", # required
9868
+ # },
9869
+ # all_query_arguments: {
9870
+ # },
9871
+ # uri_path: {
9872
+ # },
9873
+ # query_string: {
9874
+ # },
9875
+ # body: {
9876
+ # },
9877
+ # method: {
9878
+ # },
9879
+ # json_body: {
9880
+ # match_pattern: { # required
9881
+ # all: {
9882
+ # },
9883
+ # included_paths: ["JsonPointerPath"],
9884
+ # },
9885
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
9886
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
9887
+ # },
9888
+ # },
9889
+ # text_transformations: [ # required
9890
+ # {
9891
+ # priority: 1, # required
9892
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
9893
+ # },
9894
+ # ],
9895
+ # },
8716
9896
  # },
8717
9897
  # ],
8718
9898
  # },
@@ -8944,32 +10124,70 @@ module Aws::WAFV2
8944
10124
  # {
8945
10125
  # # recursive Statement
8946
10126
  # },
8947
- # ],
8948
- # },
8949
- # not_statement: {
8950
- # # recursive NotStatement
8951
- # },
8952
- # managed_rule_group_statement: {
8953
- # vendor_name: "VendorName", # required
8954
- # name: "EntityName", # required
8955
- # excluded_rules: [
10127
+ # ],
10128
+ # },
10129
+ # not_statement: {
10130
+ # # recursive NotStatement
10131
+ # },
10132
+ # managed_rule_group_statement: {
10133
+ # vendor_name: "VendorName", # required
10134
+ # name: "EntityName", # required
10135
+ # version: "VersionKeyString",
10136
+ # excluded_rules: [
10137
+ # {
10138
+ # name: "EntityName", # required
10139
+ # },
10140
+ # ],
10141
+ # scope_down_statement: {
10142
+ # # recursive Statement
10143
+ # },
10144
+ # },
10145
+ # label_match_statement: {
10146
+ # scope: "LABEL", # required, accepts LABEL, NAMESPACE
10147
+ # key: "LabelMatchKey", # required
10148
+ # },
10149
+ # regex_match_statement: {
10150
+ # regex_string: "RegexPatternString", # required
10151
+ # field_to_match: { # required
10152
+ # single_header: {
10153
+ # name: "FieldToMatchData", # required
10154
+ # },
10155
+ # single_query_argument: {
10156
+ # name: "FieldToMatchData", # required
10157
+ # },
10158
+ # all_query_arguments: {
10159
+ # },
10160
+ # uri_path: {
10161
+ # },
10162
+ # query_string: {
10163
+ # },
10164
+ # body: {
10165
+ # },
10166
+ # method: {
10167
+ # },
10168
+ # json_body: {
10169
+ # match_pattern: { # required
10170
+ # all: {
10171
+ # },
10172
+ # included_paths: ["JsonPointerPath"],
10173
+ # },
10174
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
10175
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
10176
+ # },
10177
+ # },
10178
+ # text_transformations: [ # required
8956
10179
  # {
8957
- # name: "EntityName", # required
10180
+ # priority: 1, # required
10181
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
8958
10182
  # },
8959
10183
  # ],
8960
- # scope_down_statement: {
8961
- # # recursive Statement
8962
- # },
8963
- # },
8964
- # label_match_statement: {
8965
- # scope: "LABEL", # required, accepts LABEL, NAMESPACE
8966
- # key: "LabelMatchKey", # required
8967
10184
  # },
8968
10185
  # },
8969
10186
  # },
8970
10187
  # managed_rule_group_statement: {
8971
10188
  # vendor_name: "VendorName", # required
8972
10189
  # name: "EntityName", # required
10190
+ # version: "VersionKeyString",
8973
10191
  # excluded_rules: [
8974
10192
  # {
8975
10193
  # name: "EntityName", # required
@@ -9216,12 +10434,84 @@ module Aws::WAFV2
9216
10434
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
9217
10435
  # key: "LabelMatchKey", # required
9218
10436
  # },
10437
+ # regex_match_statement: {
10438
+ # regex_string: "RegexPatternString", # required
10439
+ # field_to_match: { # required
10440
+ # single_header: {
10441
+ # name: "FieldToMatchData", # required
10442
+ # },
10443
+ # single_query_argument: {
10444
+ # name: "FieldToMatchData", # required
10445
+ # },
10446
+ # all_query_arguments: {
10447
+ # },
10448
+ # uri_path: {
10449
+ # },
10450
+ # query_string: {
10451
+ # },
10452
+ # body: {
10453
+ # },
10454
+ # method: {
10455
+ # },
10456
+ # json_body: {
10457
+ # match_pattern: { # required
10458
+ # all: {
10459
+ # },
10460
+ # included_paths: ["JsonPointerPath"],
10461
+ # },
10462
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
10463
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
10464
+ # },
10465
+ # },
10466
+ # text_transformations: [ # required
10467
+ # {
10468
+ # priority: 1, # required
10469
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
10470
+ # },
10471
+ # ],
10472
+ # },
9219
10473
  # },
9220
10474
  # },
9221
10475
  # label_match_statement: {
9222
10476
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
9223
10477
  # key: "LabelMatchKey", # required
9224
10478
  # },
10479
+ # regex_match_statement: {
10480
+ # regex_string: "RegexPatternString", # required
10481
+ # field_to_match: { # required
10482
+ # single_header: {
10483
+ # name: "FieldToMatchData", # required
10484
+ # },
10485
+ # single_query_argument: {
10486
+ # name: "FieldToMatchData", # required
10487
+ # },
10488
+ # all_query_arguments: {
10489
+ # },
10490
+ # uri_path: {
10491
+ # },
10492
+ # query_string: {
10493
+ # },
10494
+ # body: {
10495
+ # },
10496
+ # method: {
10497
+ # },
10498
+ # json_body: {
10499
+ # match_pattern: { # required
10500
+ # all: {
10501
+ # },
10502
+ # included_paths: ["JsonPointerPath"],
10503
+ # },
10504
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
10505
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
10506
+ # },
10507
+ # },
10508
+ # text_transformations: [ # required
10509
+ # {
10510
+ # priority: 1, # required
10511
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
10512
+ # },
10513
+ # ],
10514
+ # },
9225
10515
  # }
9226
10516
  #
9227
10517
  # @!attribute [rw] byte_match_statement
@@ -9284,8 +10574,8 @@ module Aws::WAFV2
9284
10574
  # provide the ARN of the rule group in this statement.
9285
10575
  #
9286
10576
  # You cannot nest a `RuleGroupReferenceStatement`, for example for use
9287
- # inside a `NotStatement` or `OrStatement`. It can only be referenced
9288
- # as a top-level statement within a rule.
10577
+ # inside a `NotStatement` or `OrStatement`. You can only use a rule
10578
+ # group reference statement at the top level inside a web ACL.
9289
10579
  # @return [Types::RuleGroupReferenceStatement]
9290
10580
  #
9291
10581
  # @!attribute [rw] ip_set_reference_statement
@@ -9323,6 +10613,15 @@ module Aws::WAFV2
9323
10613
  # time span. You can use this to put a temporary block on requests
9324
10614
  # from an IP address that is sending excessive requests.
9325
10615
  #
10616
+ # WAF tracks and manages web requests separately for each instance of
10617
+ # a rate-based rule that you use. For example, if you provide the same
10618
+ # rate-based rule settings in two web ACLs, each of the two rule
10619
+ # statements represents a separate instance of the rate-based rule and
10620
+ # gets its own tracking and management by WAF. If you define a
10621
+ # rate-based rule inside a rule group, and then use that rule group in
10622
+ # multiple places, each use creates a separate instance of the
10623
+ # rate-based rule that gets its own tracking and management by WAF.
10624
+ #
9326
10625
  # When the rule action triggers, WAF blocks additional requests from
9327
10626
  # the IP address until the request rate falls below the limit.
9328
10627
  #
@@ -9346,9 +10645,9 @@ module Aws::WAFV2
9346
10645
  # do not meet both conditions are not counted towards the rate limit
9347
10646
  # and are not affected by this rule.
9348
10647
  #
9349
- # You cannot nest a `RateBasedStatement`, for example for use inside a
9350
- # `NotStatement` or `OrStatement`. It can only be referenced as a
9351
- # top-level statement within a rule.
10648
+ # You cannot nest a `RateBasedStatement` inside another statement, for
10649
+ # example inside a `NotStatement` or `OrStatement`. You can define a
10650
+ # `RateBasedStatement` inside a web ACL and inside a rule group.
9352
10651
  # @return [Types::RateBasedStatement]
9353
10652
  #
9354
10653
  # @!attribute [rw] and_statement
@@ -9394,6 +10693,11 @@ module Aws::WAFV2
9394
10693
  # that were added in the same context as the label match statement.
9395
10694
  # @return [Types::LabelMatchStatement]
9396
10695
  #
10696
+ # @!attribute [rw] regex_match_statement
10697
+ # A rule statement used to search web request components for a match
10698
+ # against a single regular expression.
10699
+ # @return [Types::RegexMatchStatement]
10700
+ #
9397
10701
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/Statement AWS API Documentation
9398
10702
  #
9399
10703
  class Statement < Struct.new(
@@ -9410,7 +10714,8 @@ module Aws::WAFV2
9410
10714
  :or_statement,
9411
10715
  :not_statement,
9412
10716
  :managed_rule_group_statement,
9413
- :label_match_statement)
10717
+ :label_match_statement,
10718
+ :regex_match_statement)
9414
10719
  SENSITIVE = []
9415
10720
  include Aws::Structure
9416
10721
  end
@@ -9649,10 +10954,8 @@ module Aws::WAFV2
9649
10954
  # **REPLACE\_NULLS** - Replace NULL bytes in the input with space
9650
10955
  # characters (ASCII `0x20`).
9651
10956
  #
9652
- # **SQL\_HEX\_DECODE** - Decode the following ANSI C escape sequences:
9653
- # `\a`, `\b`, `\f`, `\n`, `\r`, `\t`, `\v`, `\`, `\?`, `'`, `"`,
9654
- # `\xHH` (hexadecimal), `\0OOO` (octal). Encodings that aren't valid
9655
- # remain in the output.
10957
+ # **SQL\_HEX\_DECODE** - Decode SQL hex data. Example (`0x414243`)
10958
+ # will be decoded to (`ABC`).
9656
10959
  #
9657
10960
  # **URL\_DECODE** - Decode a URL-encoded value.
9658
10961
  #
@@ -9836,15 +11139,15 @@ module Aws::WAFV2
9836
11139
  # @return [Array<String>]
9837
11140
  #
9838
11141
  # @!attribute [rw] lock_token
9839
- # A token used for optimistic locking. WAF returns a token to your get
9840
- # and list requests, to mark the state of the entity at the time of
9841
- # the request. To make changes to the entity associated with the
9842
- # token, you provide the token to operations like update and delete.
9843
- # WAF uses the token to ensure that no changes have been made to the
9844
- # entity since you last retrieved it. If a change has been made, the
9845
- # update fails with a `WAFOptimisticLockException`. If this happens,
9846
- # perform another get, and use the new token returned by that
9847
- # operation.
11142
+ # A token used for optimistic locking. WAF returns a token to your
11143
+ # `get` and `list` requests, to mark the state of the entity at the
11144
+ # time of the request. To make changes to the entity associated with
11145
+ # the token, you provide the token to operations like `update` and
11146
+ # `delete`. WAF uses the token to ensure that no changes have been
11147
+ # made to the entity since you last retrieved it. If a change has been
11148
+ # made, the update fails with a `WAFOptimisticLockException`. If this
11149
+ # happens, perform another `get`, and use the new token returned by
11150
+ # that operation.
9848
11151
  # @return [String]
9849
11152
  #
9850
11153
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateIPSetRequest AWS API Documentation
@@ -9862,7 +11165,7 @@ module Aws::WAFV2
9862
11165
 
9863
11166
  # @!attribute [rw] next_lock_token
9864
11167
  # A token used for optimistic locking. WAF returns this token to your
9865
- # update requests. You use `NextLockToken` in the same manner as you
11168
+ # `update` requests. You use `NextLockToken` in the same manner as you
9866
11169
  # use `LockToken`.
9867
11170
  # @return [String]
9868
11171
  #
@@ -9874,6 +11177,119 @@ module Aws::WAFV2
9874
11177
  include Aws::Structure
9875
11178
  end
9876
11179
 
11180
+ # @note When making an API call, you may pass UpdateManagedRuleSetVersionExpiryDateRequest
11181
+ # data as a hash:
11182
+ #
11183
+ # {
11184
+ # name: "EntityName", # required
11185
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
11186
+ # id: "EntityId", # required
11187
+ # lock_token: "LockToken", # required
11188
+ # version_to_expire: "VersionKeyString", # required
11189
+ # expiry_timestamp: Time.now, # required
11190
+ # }
11191
+ #
11192
+ # @!attribute [rw] name
11193
+ # The name of the managed rule set. You use this, along with the rule
11194
+ # set ID, to identify the rule set.
11195
+ #
11196
+ # This name is assigned to the corresponding managed rule group, which
11197
+ # your customers can access and use.
11198
+ # @return [String]
11199
+ #
11200
+ # @!attribute [rw] scope
11201
+ # Specifies whether this is for an Amazon CloudFront distribution or
11202
+ # for a regional application. A regional application can be an
11203
+ # Application Load Balancer (ALB), an Amazon API Gateway REST API, or
11204
+ # an AppSync GraphQL API.
11205
+ #
11206
+ # To work with CloudFront, you must also specify the Region US East
11207
+ # (N. Virginia) as follows:
11208
+ #
11209
+ # * CLI - Specify the Region when you use the CloudFront scope:
11210
+ # `--scope=CLOUDFRONT --region=us-east-1`.
11211
+ #
11212
+ # * API and SDKs - For all calls, use the Region endpoint us-east-1.
11213
+ # @return [String]
11214
+ #
11215
+ # @!attribute [rw] id
11216
+ # A unique identifier for the managed rule set. The ID is returned in
11217
+ # the responses to commands like `list`. You provide it to operations
11218
+ # like `get` and `update`.
11219
+ # @return [String]
11220
+ #
11221
+ # @!attribute [rw] lock_token
11222
+ # A token used for optimistic locking. WAF returns a token to your
11223
+ # `get` and `list` requests, to mark the state of the entity at the
11224
+ # time of the request. To make changes to the entity associated with
11225
+ # the token, you provide the token to operations like `update` and
11226
+ # `delete`. WAF uses the token to ensure that no changes have been
11227
+ # made to the entity since you last retrieved it. If a change has been
11228
+ # made, the update fails with a `WAFOptimisticLockException`. If this
11229
+ # happens, perform another `get`, and use the new token returned by
11230
+ # that operation.
11231
+ # @return [String]
11232
+ #
11233
+ # @!attribute [rw] version_to_expire
11234
+ # The version that you want to remove from your list of offerings for
11235
+ # the named managed rule group.
11236
+ # @return [String]
11237
+ #
11238
+ # @!attribute [rw] expiry_timestamp
11239
+ # The time that you want the version to expire.
11240
+ #
11241
+ # Times are in Coordinated Universal Time (UTC) format. UTC format
11242
+ # includes the special designator, Z. For example,
11243
+ # "2016-09-27T14:50Z".
11244
+ # @return [Time]
11245
+ #
11246
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateManagedRuleSetVersionExpiryDateRequest AWS API Documentation
11247
+ #
11248
+ class UpdateManagedRuleSetVersionExpiryDateRequest < Struct.new(
11249
+ :name,
11250
+ :scope,
11251
+ :id,
11252
+ :lock_token,
11253
+ :version_to_expire,
11254
+ :expiry_timestamp)
11255
+ SENSITIVE = []
11256
+ include Aws::Structure
11257
+ end
11258
+
11259
+ # @!attribute [rw] expiring_version
11260
+ # The version that is set to expire.
11261
+ # @return [String]
11262
+ #
11263
+ # @!attribute [rw] expiry_timestamp
11264
+ # The time that the version will expire.
11265
+ #
11266
+ # Times are in Coordinated Universal Time (UTC) format. UTC format
11267
+ # includes the special designator, Z. For example,
11268
+ # "2016-09-27T14:50Z".
11269
+ # @return [Time]
11270
+ #
11271
+ # @!attribute [rw] next_lock_token
11272
+ # A token used for optimistic locking. WAF returns a token to your
11273
+ # `get` and `list` requests, to mark the state of the entity at the
11274
+ # time of the request. To make changes to the entity associated with
11275
+ # the token, you provide the token to operations like `update` and
11276
+ # `delete`. WAF uses the token to ensure that no changes have been
11277
+ # made to the entity since you last retrieved it. If a change has been
11278
+ # made, the update fails with a `WAFOptimisticLockException`. If this
11279
+ # happens, perform another `get`, and use the new token returned by
11280
+ # that operation.
11281
+ # @return [String]
11282
+ #
11283
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateManagedRuleSetVersionExpiryDateResponse AWS API Documentation
11284
+ #
11285
+ class UpdateManagedRuleSetVersionExpiryDateResponse < Struct.new(
11286
+ :expiring_version,
11287
+ :expiry_timestamp,
11288
+ :next_lock_token)
11289
+ SENSITIVE = []
11290
+ include Aws::Structure
11291
+ end
11292
+
9877
11293
  # @note When making an API call, you may pass UpdateRegexPatternSetRequest
9878
11294
  # data as a hash:
9879
11295
  #
@@ -9924,15 +11340,15 @@ module Aws::WAFV2
9924
11340
  # @return [Array<Types::Regex>]
9925
11341
  #
9926
11342
  # @!attribute [rw] lock_token
9927
- # A token used for optimistic locking. WAF returns a token to your get
9928
- # and list requests, to mark the state of the entity at the time of
9929
- # the request. To make changes to the entity associated with the
9930
- # token, you provide the token to operations like update and delete.
9931
- # WAF uses the token to ensure that no changes have been made to the
9932
- # entity since you last retrieved it. If a change has been made, the
9933
- # update fails with a `WAFOptimisticLockException`. If this happens,
9934
- # perform another get, and use the new token returned by that
9935
- # operation.
11343
+ # A token used for optimistic locking. WAF returns a token to your
11344
+ # `get` and `list` requests, to mark the state of the entity at the
11345
+ # time of the request. To make changes to the entity associated with
11346
+ # the token, you provide the token to operations like `update` and
11347
+ # `delete`. WAF uses the token to ensure that no changes have been
11348
+ # made to the entity since you last retrieved it. If a change has been
11349
+ # made, the update fails with a `WAFOptimisticLockException`. If this
11350
+ # happens, perform another `get`, and use the new token returned by
11351
+ # that operation.
9936
11352
  # @return [String]
9937
11353
  #
9938
11354
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRegexPatternSetRequest AWS API Documentation
@@ -9950,7 +11366,7 @@ module Aws::WAFV2
9950
11366
 
9951
11367
  # @!attribute [rw] next_lock_token
9952
11368
  # A token used for optimistic locking. WAF returns this token to your
9953
- # update requests. You use `NextLockToken` in the same manner as you
11369
+ # `update` requests. You use `NextLockToken` in the same manner as you
9954
11370
  # use `LockToken`.
9955
11371
  # @return [String]
9956
11372
  #
@@ -10211,6 +11627,7 @@ module Aws::WAFV2
10211
11627
  # managed_rule_group_statement: {
10212
11628
  # vendor_name: "VendorName", # required
10213
11629
  # name: "EntityName", # required
11630
+ # version: "VersionKeyString",
10214
11631
  # excluded_rules: [
10215
11632
  # {
10216
11633
  # name: "EntityName", # required
@@ -10224,6 +11641,42 @@ module Aws::WAFV2
10224
11641
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
10225
11642
  # key: "LabelMatchKey", # required
10226
11643
  # },
11644
+ # regex_match_statement: {
11645
+ # regex_string: "RegexPatternString", # required
11646
+ # field_to_match: { # required
11647
+ # single_header: {
11648
+ # name: "FieldToMatchData", # required
11649
+ # },
11650
+ # single_query_argument: {
11651
+ # name: "FieldToMatchData", # required
11652
+ # },
11653
+ # all_query_arguments: {
11654
+ # },
11655
+ # uri_path: {
11656
+ # },
11657
+ # query_string: {
11658
+ # },
11659
+ # body: {
11660
+ # },
11661
+ # method: {
11662
+ # },
11663
+ # json_body: {
11664
+ # match_pattern: { # required
11665
+ # all: {
11666
+ # },
11667
+ # included_paths: ["JsonPointerPath"],
11668
+ # },
11669
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
11670
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
11671
+ # },
11672
+ # },
11673
+ # text_transformations: [ # required
11674
+ # {
11675
+ # priority: 1, # required
11676
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
11677
+ # },
11678
+ # ],
11679
+ # },
10227
11680
  # },
10228
11681
  # action: {
10229
11682
  # block: {
@@ -10342,15 +11795,15 @@ module Aws::WAFV2
10342
11795
  # @return [Types::VisibilityConfig]
10343
11796
  #
10344
11797
  # @!attribute [rw] lock_token
10345
- # A token used for optimistic locking. WAF returns a token to your get
10346
- # and list requests, to mark the state of the entity at the time of
10347
- # the request. To make changes to the entity associated with the
10348
- # token, you provide the token to operations like update and delete.
10349
- # WAF uses the token to ensure that no changes have been made to the
10350
- # entity since you last retrieved it. If a change has been made, the
10351
- # update fails with a `WAFOptimisticLockException`. If this happens,
10352
- # perform another get, and use the new token returned by that
10353
- # operation.
11798
+ # A token used for optimistic locking. WAF returns a token to your
11799
+ # `get` and `list` requests, to mark the state of the entity at the
11800
+ # time of the request. To make changes to the entity associated with
11801
+ # the token, you provide the token to operations like `update` and
11802
+ # `delete`. WAF uses the token to ensure that no changes have been
11803
+ # made to the entity since you last retrieved it. If a change has been
11804
+ # made, the update fails with a `WAFOptimisticLockException`. If this
11805
+ # happens, perform another `get`, and use the new token returned by
11806
+ # that operation.
10354
11807
  # @return [String]
10355
11808
  #
10356
11809
  # @!attribute [rw] custom_response_bodies
@@ -10391,7 +11844,7 @@ module Aws::WAFV2
10391
11844
 
10392
11845
  # @!attribute [rw] next_lock_token
10393
11846
  # A token used for optimistic locking. WAF returns this token to your
10394
- # update requests. You use `NextLockToken` in the same manner as you
11847
+ # `update` requests. You use `NextLockToken` in the same manner as you
10395
11848
  # use `LockToken`.
10396
11849
  # @return [String]
10397
11850
  #
@@ -10676,6 +12129,7 @@ module Aws::WAFV2
10676
12129
  # managed_rule_group_statement: {
10677
12130
  # vendor_name: "VendorName", # required
10678
12131
  # name: "EntityName", # required
12132
+ # version: "VersionKeyString",
10679
12133
  # excluded_rules: [
10680
12134
  # {
10681
12135
  # name: "EntityName", # required
@@ -10689,6 +12143,42 @@ module Aws::WAFV2
10689
12143
  # scope: "LABEL", # required, accepts LABEL, NAMESPACE
10690
12144
  # key: "LabelMatchKey", # required
10691
12145
  # },
12146
+ # regex_match_statement: {
12147
+ # regex_string: "RegexPatternString", # required
12148
+ # field_to_match: { # required
12149
+ # single_header: {
12150
+ # name: "FieldToMatchData", # required
12151
+ # },
12152
+ # single_query_argument: {
12153
+ # name: "FieldToMatchData", # required
12154
+ # },
12155
+ # all_query_arguments: {
12156
+ # },
12157
+ # uri_path: {
12158
+ # },
12159
+ # query_string: {
12160
+ # },
12161
+ # body: {
12162
+ # },
12163
+ # method: {
12164
+ # },
12165
+ # json_body: {
12166
+ # match_pattern: { # required
12167
+ # all: {
12168
+ # },
12169
+ # included_paths: ["JsonPointerPath"],
12170
+ # },
12171
+ # match_scope: "ALL", # required, accepts ALL, KEY, VALUE
12172
+ # invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
12173
+ # },
12174
+ # },
12175
+ # text_transformations: [ # required
12176
+ # {
12177
+ # priority: 1, # required
12178
+ # type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
12179
+ # },
12180
+ # ],
12181
+ # },
10692
12182
  # },
10693
12183
  # action: {
10694
12184
  # block: {
@@ -10812,15 +12302,15 @@ module Aws::WAFV2
10812
12302
  # @return [Types::VisibilityConfig]
10813
12303
  #
10814
12304
  # @!attribute [rw] lock_token
10815
- # A token used for optimistic locking. WAF returns a token to your get
10816
- # and list requests, to mark the state of the entity at the time of
10817
- # the request. To make changes to the entity associated with the
10818
- # token, you provide the token to operations like update and delete.
10819
- # WAF uses the token to ensure that no changes have been made to the
10820
- # entity since you last retrieved it. If a change has been made, the
10821
- # update fails with a `WAFOptimisticLockException`. If this happens,
10822
- # perform another get, and use the new token returned by that
10823
- # operation.
12305
+ # A token used for optimistic locking. WAF returns a token to your
12306
+ # `get` and `list` requests, to mark the state of the entity at the
12307
+ # time of the request. To make changes to the entity associated with
12308
+ # the token, you provide the token to operations like `update` and
12309
+ # `delete`. WAF uses the token to ensure that no changes have been
12310
+ # made to the entity since you last retrieved it. If a change has been
12311
+ # made, the update fails with a `WAFOptimisticLockException`. If this
12312
+ # happens, perform another `get`, and use the new token returned by
12313
+ # that operation.
10824
12314
  # @return [String]
10825
12315
  #
10826
12316
  # @!attribute [rw] custom_response_bodies
@@ -10862,7 +12352,7 @@ module Aws::WAFV2
10862
12352
 
10863
12353
  # @!attribute [rw] next_lock_token
10864
12354
  # A token used for optimistic locking. WAF returns this token to your
10865
- # update requests. You use `NextLockToken` in the same manner as you
12355
+ # `update` requests. You use `NextLockToken` in the same manner as you
10866
12356
  # use `LockToken`.
10867
12357
  # @return [String]
10868
12358
  #
@@ -10881,12 +12371,55 @@ module Aws::WAFV2
10881
12371
  # This is used only to indicate the web request component for WAF to
10882
12372
  # inspect, in the FieldToMatch specification.
10883
12373
  #
12374
+ # JSON specification: `"UriPath": \{\}`
12375
+ #
10884
12376
  # @api private
10885
12377
  #
10886
12378
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UriPath AWS API Documentation
10887
12379
  #
10888
12380
  class UriPath < Aws::EmptyStructure; end
10889
12381
 
12382
+ # A version of the named managed rule group, that the rule group's
12383
+ # vendor publishes for use by customers.
12384
+ #
12385
+ # <note markdown="1"> This is intended for use only by vendors of managed rule sets. Vendors
12386
+ # are Amazon Web Services and Amazon Web Services Marketplace sellers.
12387
+ #
12388
+ # Vendors, you can use the managed rule set APIs to provide controlled
12389
+ # rollout of your versioned managed rule group offerings for your
12390
+ # customers. The APIs are `ListManagedRuleSets`, `GetManagedRuleSet`,
12391
+ # `PutManagedRuleSetVersions`, and
12392
+ # `UpdateManagedRuleSetVersionExpiryDate`.
12393
+ #
12394
+ # </note>
12395
+ #
12396
+ # @note When making an API call, you may pass VersionToPublish
12397
+ # data as a hash:
12398
+ #
12399
+ # {
12400
+ # associated_rule_group_arn: "ResourceArn",
12401
+ # forecasted_lifetime: 1,
12402
+ # }
12403
+ #
12404
+ # @!attribute [rw] associated_rule_group_arn
12405
+ # The Amazon Resource Name (ARN) of the vendor's rule group that's
12406
+ # used in the published managed rule group version.
12407
+ # @return [String]
12408
+ #
12409
+ # @!attribute [rw] forecasted_lifetime
12410
+ # The amount of time the vendor expects this version of the managed
12411
+ # rule group to last, in days.
12412
+ # @return [Integer]
12413
+ #
12414
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/VersionToPublish AWS API Documentation
12415
+ #
12416
+ class VersionToPublish < Struct.new(
12417
+ :associated_rule_group_arn,
12418
+ :forecasted_lifetime)
12419
+ SENSITIVE = []
12420
+ include Aws::Structure
12421
+ end
12422
+
10890
12423
  # Defines and enables Amazon CloudWatch metrics and web request sample
10891
12424
  # collection.
10892
12425
  #
@@ -10961,6 +12494,22 @@ module Aws::WAFV2
10961
12494
  include Aws::Structure
10962
12495
  end
10963
12496
 
12497
+ # The operation failed because the specified version for the managed
12498
+ # rule group has expired. You can retrieve the available versions for
12499
+ # the managed rule group by calling
12500
+ # ListAvailableManagedRuleGroupVersions.
12501
+ #
12502
+ # @!attribute [rw] message
12503
+ # @return [String]
12504
+ #
12505
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/WAFExpiredManagedRuleGroupVersionException AWS API Documentation
12506
+ #
12507
+ class WAFExpiredManagedRuleGroupVersionException < Struct.new(
12508
+ :message)
12509
+ SENSITIVE = []
12510
+ include Aws::Structure
12511
+ end
12512
+
10964
12513
  # Your request is valid, but WAF couldn’t perform the operation because
10965
12514
  # of a system problem. Retry your request.
10966
12515
  #
@@ -11006,12 +12555,15 @@ module Aws::WAFV2
11006
12555
  # @return [String]
11007
12556
  #
11008
12557
  # @!attribute [rw] field
12558
+ # The settings where the invalid parameter was found.
11009
12559
  # @return [String]
11010
12560
  #
11011
12561
  # @!attribute [rw] parameter
12562
+ # The invalid parameter that resulted in the exception.
11012
12563
  # @return [String]
11013
12564
  #
11014
12565
  # @!attribute [rw] reason
12566
+ # Additional information about the exception.
11015
12567
  # @return [String]
11016
12568
  #
11017
12569
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/WAFInvalidParameterException AWS API Documentation
@@ -11077,8 +12629,8 @@ module Aws::WAFV2
11077
12629
 
11078
12630
  # WAF couldn’t perform the operation because you exceeded your resource
11079
12631
  # limit. For example, the maximum number of `WebACL` objects that you
11080
- # can create for an account. For more information, see [Limits][1] in
11081
- # the *WAF Developer Guide*.
12632
+ # can create for an Amazon Web Services account. For more information,
12633
+ # see [WAF quotas][1] in the *WAF Developer Guide*.
11082
12634
  #
11083
12635
  #
11084
12636
  #
@@ -11374,15 +12926,15 @@ module Aws::WAFV2
11374
12926
  # @return [String]
11375
12927
  #
11376
12928
  # @!attribute [rw] lock_token
11377
- # A token used for optimistic locking. WAF returns a token to your get
11378
- # and list requests, to mark the state of the entity at the time of
11379
- # the request. To make changes to the entity associated with the
11380
- # token, you provide the token to operations like update and delete.
11381
- # WAF uses the token to ensure that no changes have been made to the
11382
- # entity since you last retrieved it. If a change has been made, the
11383
- # update fails with a `WAFOptimisticLockException`. If this happens,
11384
- # perform another get, and use the new token returned by that
11385
- # operation.
12929
+ # A token used for optimistic locking. WAF returns a token to your
12930
+ # `get` and `list` requests, to mark the state of the entity at the
12931
+ # time of the request. To make changes to the entity associated with
12932
+ # the token, you provide the token to operations like `update` and
12933
+ # `delete`. WAF uses the token to ensure that no changes have been
12934
+ # made to the entity since you last retrieved it. If a change has been
12935
+ # made, the update fails with a `WAFOptimisticLockException`. If this
12936
+ # happens, perform another `get`, and use the new token returned by
12937
+ # that operation.
11386
12938
  # @return [String]
11387
12939
  #
11388
12940
  # @!attribute [rw] arn