@aws-sdk/client-wafv2 3.28.0 → 3.32.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.
Files changed (51) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/WAFV2.ts +8 -8
  3. package/commands/GetManagedRuleSetCommand.ts +1 -1
  4. package/commands/GetRateBasedStatementManagedKeysCommand.ts +3 -3
  5. package/commands/ListAvailableManagedRuleGroupsCommand.ts +1 -1
  6. package/commands/ListManagedRuleSetsCommand.ts +1 -1
  7. package/commands/PutManagedRuleSetVersionsCommand.ts +1 -1
  8. package/commands/UpdateManagedRuleSetVersionExpiryDateCommand.ts +1 -1
  9. package/dist/cjs/commands/GetManagedRuleSetCommand.js +1 -1
  10. package/dist/cjs/commands/GetRateBasedStatementManagedKeysCommand.js +3 -3
  11. package/dist/cjs/commands/ListAvailableManagedRuleGroupsCommand.js +1 -1
  12. package/dist/cjs/commands/ListManagedRuleSetsCommand.js +1 -1
  13. package/dist/cjs/commands/PutManagedRuleSetVersionsCommand.js +1 -1
  14. package/dist/cjs/commands/UpdateManagedRuleSetVersionExpiryDateCommand.js +1 -1
  15. package/dist/cjs/models/models_0.js +3 -0
  16. package/dist/cjs/models/models_0.js.map +1 -1
  17. package/dist/cjs/package.json +31 -31
  18. package/dist/cjs/protocols/Aws_json1_1.js +27 -23
  19. package/dist/cjs/protocols/Aws_json1_1.js.map +1 -1
  20. package/dist/es/commands/GetManagedRuleSetCommand.js +1 -1
  21. package/dist/es/commands/GetRateBasedStatementManagedKeysCommand.js +3 -3
  22. package/dist/es/commands/ListAvailableManagedRuleGroupsCommand.js +1 -1
  23. package/dist/es/commands/ListManagedRuleSetsCommand.js +1 -1
  24. package/dist/es/commands/PutManagedRuleSetVersionsCommand.js +1 -1
  25. package/dist/es/commands/UpdateManagedRuleSetVersionExpiryDateCommand.js +1 -1
  26. package/dist/es/endpoints.js +1 -2
  27. package/dist/es/endpoints.js.map +1 -1
  28. package/dist/es/models/models_0.js +3 -0
  29. package/dist/es/models/models_0.js.map +1 -1
  30. package/dist/es/package.json +31 -31
  31. package/dist/es/protocols/Aws_json1_1.js +28 -25
  32. package/dist/es/protocols/Aws_json1_1.js.map +1 -1
  33. package/dist/types/WAFV2.d.ts +8 -8
  34. package/dist/types/commands/GetManagedRuleSetCommand.d.ts +1 -1
  35. package/dist/types/commands/GetRateBasedStatementManagedKeysCommand.d.ts +3 -3
  36. package/dist/types/commands/ListAvailableManagedRuleGroupsCommand.d.ts +1 -1
  37. package/dist/types/commands/ListManagedRuleSetsCommand.d.ts +1 -1
  38. package/dist/types/commands/PutManagedRuleSetVersionsCommand.d.ts +1 -1
  39. package/dist/types/commands/UpdateManagedRuleSetVersionExpiryDateCommand.d.ts +1 -1
  40. package/dist/types/models/models_0.d.ts +67 -35
  41. package/dist/types/ts3.4/WAFV2.d.ts +8 -8
  42. package/dist/types/ts3.4/commands/GetManagedRuleSetCommand.d.ts +1 -1
  43. package/dist/types/ts3.4/commands/GetRateBasedStatementManagedKeysCommand.d.ts +3 -3
  44. package/dist/types/ts3.4/commands/ListAvailableManagedRuleGroupsCommand.d.ts +1 -1
  45. package/dist/types/ts3.4/commands/ListManagedRuleSetsCommand.d.ts +1 -1
  46. package/dist/types/ts3.4/commands/PutManagedRuleSetVersionsCommand.d.ts +1 -1
  47. package/dist/types/ts3.4/commands/UpdateManagedRuleSetVersionExpiryDateCommand.d.ts +1 -1
  48. package/dist/types/ts3.4/models/models_0.d.ts +67 -35
  49. package/models/models_0.ts +68 -35
  50. package/package.json +31 -31
  51. package/protocols/Aws_json1_1.ts +32 -24
@@ -34,6 +34,8 @@ export namespace ActionCondition {
34
34
  *
35
35
  * </p>
36
36
  * <p>This is used only to indicate the web request component for WAF to inspect, in the <a>FieldToMatch</a> specification. </p>
37
+ * <p>JSON specification: <code>"All": {}</code>
38
+ * </p>
37
39
  */
38
40
  export interface All {}
39
41
 
@@ -123,7 +125,9 @@ export namespace AllowAction {
123
125
 
124
126
  /**
125
127
  * <p>All query arguments of a web request. </p>
126
- * <p>This is used only to indicate the web request component for WAF to inspect, in the <a>FieldToMatch</a> specification. </p>
128
+ * <p>This is used only to indicate the web request component for WAF to inspect, in the <a>FieldToMatch</a> specification. </p>
129
+ * <p>JSON specification: <code>"AllQueryArguments": {}</code>
130
+ * </p>
127
131
  */
128
132
  export interface AllQueryArguments {}
129
133
 
@@ -139,6 +143,8 @@ export namespace AllQueryArguments {
139
143
  /**
140
144
  * <p>The body of a web request. This immediately follows the request headers.</p>
141
145
  * <p>This is used only to indicate the web request component for WAF to inspect, in the <a>FieldToMatch</a> specification. </p>
146
+ * <p>JSON specification: <code>"Body": {}</code>
147
+ * </p>
142
148
  */
143
149
  export interface Body {}
144
150
 
@@ -212,6 +218,8 @@ export enum JsonMatchScope {
212
218
  * that result from the matches that you
213
219
  * indicate.
214
220
  * </p>
221
+ * <p>Example JSON: <code>"JsonBody": { "MatchPattern": { "All": {} }, "MatchScope": "ALL" }</code>
222
+ * </p>
215
223
  */
216
224
  export interface JsonBody {
217
225
  /**
@@ -281,9 +289,10 @@ export namespace JsonBody {
281
289
  }
282
290
 
283
291
  /**
284
- * <p>The HTTP method of a web request. The method indicates the type of operation that the
285
- * request is asking the origin to perform. </p>
286
- * <p>This is used only to indicate the web request component for WAF to inspect, in the <a>FieldToMatch</a> specification. </p>
292
+ * <p>The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform. </p>
293
+ * <p>This is used only to indicate the web request component for WAF to inspect, in the <a>FieldToMatch</a> specification. </p>
294
+ * <p>JSON specification: <code>"Method": {}</code>
295
+ * </p>
287
296
  */
288
297
  export interface Method {}
289
298
 
@@ -297,9 +306,10 @@ export namespace Method {
297
306
  }
298
307
 
299
308
  /**
300
- * <p>The query string of a web request. This is the part of a URL that appears after a
301
- * <code>?</code> character, if any.</p>
302
- * <p>This is used only to indicate the web request component for WAF to inspect, in the <a>FieldToMatch</a> specification. </p>
309
+ * <p>The query string of a web request. This is the part of a URL that appears after a <code>?</code> character, if any.</p>
310
+ * <p>This is used only to indicate the web request component for WAF to inspect, in the <a>FieldToMatch</a> specification. </p>
311
+ * <p>JSON specification: <code>"QueryString": {}</code>
312
+ * </p>
303
313
  */
304
314
  export interface QueryString {}
305
315
 
@@ -317,6 +327,8 @@ export namespace QueryString {
317
327
  * <code>User-Agent</code> or <code>Referer</code>. This setting isn't case
318
328
  * sensitive.</p>
319
329
  * <p>This is used only to indicate the web request component for WAF to inspect, in the <a>FieldToMatch</a> specification. </p>
330
+ * <p>Example JSON: <code>"SingleHeader": { "Name": "haystack" }</code>
331
+ * </p>
320
332
  */
321
333
  export interface SingleHeader {
322
334
  /**
@@ -338,6 +350,8 @@ export namespace SingleHeader {
338
350
  * <p>One query argument in a web request, identified by name, for example
339
351
  * <i>UserName</i> or <i>SalesRegion</i>. The name can be up to
340
352
  * 30 characters long and isn't case sensitive. </p>
353
+ * <p>Example JSON: <code>"SingleQueryArgument": { "Name": "myArgument" }</code>
354
+ * </p>
341
355
  */
342
356
  export interface SingleQueryArgument {
343
357
  /**
@@ -358,6 +372,8 @@ export namespace SingleQueryArgument {
358
372
  /**
359
373
  * <p>The path component of the URI of a web request. This is the part of a web request that identifies a resource. For example, <code>/images/daily-ad.jpg</code>.</p>
360
374
  * <p>This is used only to indicate the web request component for WAF to inspect, in the <a>FieldToMatch</a> specification. </p>
375
+ * <p>JSON specification: <code>"UriPath": {}</code>
376
+ * </p>
361
377
  */
362
378
  export interface UriPath {}
363
379
 
@@ -371,11 +387,15 @@ export namespace UriPath {
371
387
  }
372
388
 
373
389
  /**
374
- * <p>The part of a web request that you want WAF to inspect. Include the single
375
- * <code>FieldToMatch</code> type that you want to inspect, with additional specifications
376
- * as needed, according to the type. You specify a single request component in
377
- * <code>FieldToMatch</code> for each rule statement that requires it. To inspect more than
378
- * one component of a web request, create a separate rule statement for each component.</p>
390
+ * <p>The part of a web request that you want WAF to inspect. Include the single <code>FieldToMatch</code> type that you want to inspect, with additional specifications as needed, according to the type. You specify a single request component in <code>FieldToMatch</code> for each rule statement that requires it. To inspect more than one component of a web request, create a separate rule statement for each component.</p>
391
+ * <p>JSON specification for a <code>QueryString</code> field to match: </p>
392
+ * <p>
393
+ * <code> "FieldToMatch": { "QueryString": {} }</code>
394
+ * </p>
395
+ * <p>Example JSON for a <code>Method</code> field to match specification:</p>
396
+ * <p>
397
+ * <code> "FieldToMatch": { "Method": { "Name": "DELETE" } }</code>
398
+ * </p>
379
399
  */
380
400
  export interface FieldToMatch {
381
401
  /**
@@ -1335,7 +1355,8 @@ export namespace RegexPatternSetReferenceStatement {
1335
1355
 
1336
1356
  /**
1337
1357
  * <p>A rule statement used to run the rules that are defined in a <a>RuleGroup</a>. To use this, create a rule group with your rules, then provide the ARN of the rule group in this statement.</p>
1338
- * <p>You cannot nest a <code>RuleGroupReferenceStatement</code>, for example for use inside a <code>NotStatement</code> or <code>OrStatement</code>. It can only be referenced as a top-level statement within a rule.</p>
1358
+ * <p>You cannot nest a <code>RuleGroupReferenceStatement</code>, for example for use inside a <code>NotStatement</code> or <code>OrStatement</code>. You
1359
+ * can only use a rule group reference statement at the top level inside a web ACL. </p>
1339
1360
  */
1340
1361
  export interface RuleGroupReferenceStatement {
1341
1362
  /**
@@ -1553,14 +1574,17 @@ export namespace WAFInvalidOperationException {
1553
1574
 
1554
1575
  export enum ParameterExceptionField {
1555
1576
  AND_STATEMENT = "AND_STATEMENT",
1577
+ ASSOCIABLE_RESOURCE = "ASSOCIABLE_RESOURCE",
1556
1578
  BODY_PARSING_FALLBACK_BEHAVIOR = "BODY_PARSING_FALLBACK_BEHAVIOR",
1557
1579
  BYTE_MATCH_STATEMENT = "BYTE_MATCH_STATEMENT",
1580
+ CHANGE_PROPAGATION_STATUS = "CHANGE_PROPAGATION_STATUS",
1558
1581
  CUSTOM_REQUEST_HANDLING = "CUSTOM_REQUEST_HANDLING",
1559
1582
  CUSTOM_RESPONSE = "CUSTOM_RESPONSE",
1560
1583
  CUSTOM_RESPONSE_BODY = "CUSTOM_RESPONSE_BODY",
1561
1584
  DEFAULT_ACTION = "DEFAULT_ACTION",
1562
1585
  ENTITY_LIMIT = "ENTITY_LIMIT",
1563
1586
  EXCLUDED_RULE = "EXCLUDED_RULE",
1587
+ EXPIRE_TIMESTAMP = "EXPIRE_TIMESTAMP",
1564
1588
  FALLBACK_BEHAVIOR = "FALLBACK_BEHAVIOR",
1565
1589
  FIELD_TO_MATCH = "FIELD_TO_MATCH",
1566
1590
  FILTER_CONDITION = "FILTER_CONDITION",
@@ -1815,6 +1839,8 @@ export namespace RuleAction {
1815
1839
  * <p>Specifies that WAF should do nothing. This is generally used to try out a rule
1816
1840
  * without performing any actions. You set the <code>OverrideAction</code> on the <a>Rule</a>. </p>
1817
1841
  * <p>This is used in the context of other settings, for example to specify values for <a>RuleAction</a> and web ACL <a>DefaultAction</a>. </p>
1842
+ * <p>JSON specification: <code>"None": {}</code>
1843
+ * </p>
1818
1844
  */
1819
1845
  export interface NoneAction {}
1820
1846
 
@@ -3349,12 +3375,10 @@ export interface LoggingConfiguration {
3349
3375
  LogDestinationConfigs: string[] | undefined;
3350
3376
 
3351
3377
  /**
3352
- * <p>The parts of the request that you want to keep out of the logs. For example, if you
3353
- * redact the <code>HEADER</code> field, the <code>HEADER</code> field in the firehose will be
3354
- * <code>xxx</code>. </p>
3378
+ * <p>The parts of the request that you want to keep out of the logs. For
3379
+ * example, if you redact the <code>SingleHeader</code> field, the <code>HEADER</code> field in the firehose will be <code>xxx</code>. </p>
3355
3380
  * <note>
3356
- * <p>You must use one of the following values: <code>URI</code>,
3357
- * <code>QUERY_STRING</code>, <code>HEADER</code>, or <code>METHOD</code>.</p>
3381
+ * <p>You can specify only the following fields for redaction: <code>UriPath</code>, <code>QueryString</code>, <code>SingleHeader</code>, <code>Method</code>, and <code>JsonBody</code>.</p>
3358
3382
  * </note>
3359
3383
  */
3360
3384
  RedactedFields?: FieldToMatch[];
@@ -3438,7 +3462,7 @@ export namespace GetManagedRuleSetRequest {
3438
3462
  /**
3439
3463
  * <p>Information for a single version of a managed rule set. </p>
3440
3464
  * <note>
3441
- * <p>This is intended for use only by vendors of managed rule sets. Vendors are Amazon Web Services and Marketplace sellers. </p>
3465
+ * <p>This is intended for use only by vendors of managed rule sets. Vendors are Amazon Web Services and Amazon Web Services Marketplace sellers. </p>
3442
3466
  * <p>Vendors, you can use the managed rule set APIs to provide controlled rollout of your versioned managed rule group offerings for your customers. The APIs are <code>ListManagedRuleSets</code>, <code>GetManagedRuleSet</code>, <code>PutManagedRuleSetVersions</code>, and <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p>
3443
3467
  * </note>
3444
3468
  */
@@ -3497,10 +3521,10 @@ export namespace ManagedRuleSetVersion {
3497
3521
  }
3498
3522
 
3499
3523
  /**
3500
- * <p>A set of rules that is managed by Amazon Web Services and Marketplace sellers to provide versioned managed
3524
+ * <p>A set of rules that is managed by Amazon Web Services and Amazon Web Services Marketplace sellers to provide versioned managed
3501
3525
  * rule groups for customers of WAF.</p>
3502
3526
  * <note>
3503
- * <p>This is intended for use only by vendors of managed rule sets. Vendors are Amazon Web Services and Marketplace sellers. </p>
3527
+ * <p>This is intended for use only by vendors of managed rule sets. Vendors are Amazon Web Services and Amazon Web Services Marketplace sellers. </p>
3504
3528
  * <p>Vendors, you can use the managed rule set APIs to provide controlled rollout of your versioned managed rule group offerings for your customers. The APIs are <code>ListManagedRuleSets</code>, <code>GetManagedRuleSet</code>, <code>PutManagedRuleSetVersions</code>, and <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p>
3505
3529
  * </note>
3506
3530
  */
@@ -3645,7 +3669,13 @@ export interface GetRateBasedStatementManagedKeysRequest {
3645
3669
  WebACLId: string | undefined;
3646
3670
 
3647
3671
  /**
3648
- * <p>The name of the rate-based rule to get the keys for.</p>
3672
+ * <p>The name of the rule group reference statement in your web ACL. This is required only when you have the rate-based rule nested
3673
+ * inside a rule group. </p>
3674
+ */
3675
+ RuleGroupRuleName?: string;
3676
+
3677
+ /**
3678
+ * <p>The name of the rate-based rule to get the keys for. If you have the rule defined inside a rule group that you're using in your web ACL, also provide the name of the rule group reference statement in the request parameter <code>RuleGroupRuleName</code>.</p>
3649
3679
  */
3650
3680
  RuleName: string | undefined;
3651
3681
  }
@@ -3660,7 +3690,7 @@ export namespace GetRateBasedStatementManagedKeysRequest {
3660
3690
  }
3661
3691
 
3662
3692
  /**
3663
- * <p>The set of IP addresses that are currently blocked for a rate-based statement.</p>
3693
+ * <p>The set of IP addresses that are currently blocked for a <a>RateBasedStatement</a>.</p>
3664
3694
  */
3665
3695
  export interface RateBasedStatementManagedKeysIPSet {
3666
3696
  /**
@@ -4230,7 +4260,7 @@ export namespace ListAvailableManagedRuleGroupsRequest {
4230
4260
  }
4231
4261
 
4232
4262
  /**
4233
- * <p>High-level information about a managed rule group, returned by <a>ListAvailableManagedRuleGroups</a>. This provides information like the name and vendor name, that you provide when you add a <a>ManagedRuleGroupStatement</a> to a web ACL. Managed rule groups include Amazon Web Services Managed Rules rule groups, which are free of charge to WAF customers, and Marketplace managed rule groups, which you can subscribe to through Marketplace. </p>
4263
+ * <p>High-level information about a managed rule group, returned by <a>ListAvailableManagedRuleGroups</a>. This provides information like the name and vendor name, that you provide when you add a <a>ManagedRuleGroupStatement</a> to a web ACL. Managed rule groups include Amazon Web Services Managed Rules rule groups, which are free of charge to WAF customers, and Amazon Web Services Marketplace managed rule groups, which you can subscribe to through Amazon Web Services Marketplace. </p>
4234
4264
  */
4235
4265
  export interface ManagedRuleGroupSummary {
4236
4266
  /**
@@ -4244,7 +4274,7 @@ export interface ManagedRuleGroupSummary {
4244
4274
  Name?: string;
4245
4275
 
4246
4276
  /**
4247
- * <p>The description of the managed rule group, provided by Amazon Web Services Managed Rules or the Marketplace seller who manages it.</p>
4277
+ * <p>The description of the managed rule group, provided by Amazon Web Services Managed Rules or the Amazon Web Services Marketplace seller who manages it.</p>
4248
4278
  */
4249
4279
  Description?: string;
4250
4280
  }
@@ -4545,7 +4575,7 @@ export namespace ListManagedRuleSetsRequest {
4545
4575
  /**
4546
4576
  * <p>High-level information for a managed rule set. </p>
4547
4577
  * <note>
4548
- * <p>This is intended for use only by vendors of managed rule sets. Vendors are Amazon Web Services and Marketplace sellers. </p>
4578
+ * <p>This is intended for use only by vendors of managed rule sets. Vendors are Amazon Web Services and Amazon Web Services Marketplace sellers. </p>
4549
4579
  * <p>Vendors, you can use the managed rule set APIs to provide controlled rollout of your versioned managed rule group offerings for your customers. The APIs are <code>ListManagedRuleSets</code>, <code>GetManagedRuleSet</code>, <code>PutManagedRuleSetVersions</code>, and <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p>
4550
4580
  * </note>
4551
4581
  */
@@ -5005,7 +5035,7 @@ export namespace WAFServiceLinkedRoleErrorException {
5005
5035
  * <p>A version of the named managed rule group, that the rule group's vendor publishes for
5006
5036
  * use by customers. </p>
5007
5037
  * <note>
5008
- * <p>This is intended for use only by vendors of managed rule sets. Vendors are Amazon Web Services and Marketplace sellers. </p>
5038
+ * <p>This is intended for use only by vendors of managed rule sets. Vendors are Amazon Web Services and Amazon Web Services Marketplace sellers. </p>
5009
5039
  * <p>Vendors, you can use the managed rule set APIs to provide controlled rollout of your versioned managed rule group offerings for your customers. The APIs are <code>ListManagedRuleSets</code>, <code>GetManagedRuleSet</code>, <code>PutManagedRuleSetVersions</code>, and <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p>
5010
5040
  * </note>
5011
5041
  */
@@ -5522,8 +5552,7 @@ export namespace UpdateWebACLResponse {
5522
5552
  }
5523
5553
 
5524
5554
  /**
5525
- * <p>The processing guidance for a <a>Rule</a>, used by WAF to determine
5526
- * whether a web request matches the rule. </p>
5555
+ * <p>The processing guidance for a <a>Rule</a>, used by WAF to determine whether a web request matches the rule. </p>
5527
5556
  */
5528
5557
  export interface Statement {
5529
5558
  /**
@@ -5559,7 +5588,8 @@ export interface Statement {
5559
5588
 
5560
5589
  /**
5561
5590
  * <p>A rule statement used to run the rules that are defined in a <a>RuleGroup</a>. To use this, create a rule group with your rules, then provide the ARN of the rule group in this statement.</p>
5562
- * <p>You cannot nest a <code>RuleGroupReferenceStatement</code>, for example for use inside a <code>NotStatement</code> or <code>OrStatement</code>. It can only be referenced as a top-level statement within a rule.</p>
5591
+ * <p>You cannot nest a <code>RuleGroupReferenceStatement</code>, for example for use inside a <code>NotStatement</code> or <code>OrStatement</code>. You
5592
+ * can only use a rule group reference statement at the top level inside a web ACL. </p>
5563
5593
  */
5564
5594
  RuleGroupReferenceStatement?: RuleGroupReferenceStatement;
5565
5595
 
@@ -5576,7 +5606,8 @@ export interface Statement {
5576
5606
  RegexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement;
5577
5607
 
5578
5608
  /**
5579
- * <p>A rate-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5-minute time span. You can use this to put a temporary block on requests from an IP address that is sending excessive requests.</p>
5609
+ * <p>A rate-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5-minute time span. You can use this to put a temporary block on requests from an IP address that is sending excessive requests. </p>
5610
+ * <p>WAF tracks and manages web requests separately for each instance of a rate-based rule that you use. For example, if you provide the same rate-based rule settings in two web ACLs, each of the two rule statements represents a separate instance of the rate-based rule and gets its own tracking and management by WAF. If you define a rate-based rule inside a rule group, and then use that rule group in multiple places, each use creates a separate instance of the rate-based rule that gets its own tracking and management by WAF. </p>
5580
5611
  * <p>When the rule action triggers, WAF blocks additional requests from the IP address until the request rate falls below the limit.</p>
5581
5612
  * <p>You can optionally nest another statement inside the rate-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement. For example, based on recent requests that you have seen from an attacker, you might create a rate-based rule with a nested AND rule statement that contains the following nested statements:</p>
5582
5613
  * <ul>
@@ -5588,7 +5619,7 @@ export interface Statement {
5588
5619
  * </li>
5589
5620
  * </ul>
5590
5621
  * <p>In this rate-based rule, you also define a rate limit. For this example, the rate limit is 1,000. Requests that meet both of the conditions in the statements are counted. If the count exceeds 1,000 requests per five minutes, the rule action triggers. Requests that do not meet both conditions are not counted towards the rate limit and are not affected by this rule.</p>
5591
- * <p>You cannot nest a <code>RateBasedStatement</code>, for example for use inside a <code>NotStatement</code> or <code>OrStatement</code>. It can only be referenced as a top-level statement within a rule.</p>
5622
+ * <p>You cannot nest a <code>RateBasedStatement</code> inside another statement, for example inside a <code>NotStatement</code> or <code>OrStatement</code>. You can define a <code>RateBasedStatement</code> inside a web ACL and inside a rule group. </p>
5592
5623
  */
5593
5624
  RateBasedStatement?: RateBasedStatement;
5594
5625
 
@@ -5698,7 +5729,8 @@ export namespace NotStatement {
5698
5729
  }
5699
5730
 
5700
5731
  /**
5701
- * <p>A rate-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5-minute time span. You can use this to put a temporary block on requests from an IP address that is sending excessive requests.</p>
5732
+ * <p>A rate-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5-minute time span. You can use this to put a temporary block on requests from an IP address that is sending excessive requests. </p>
5733
+ * <p>WAF tracks and manages web requests separately for each instance of a rate-based rule that you use. For example, if you provide the same rate-based rule settings in two web ACLs, each of the two rule statements represents a separate instance of the rate-based rule and gets its own tracking and management by WAF. If you define a rate-based rule inside a rule group, and then use that rule group in multiple places, each use creates a separate instance of the rate-based rule that gets its own tracking and management by WAF. </p>
5702
5734
  * <p>When the rule action triggers, WAF blocks additional requests from the IP address until the request rate falls below the limit.</p>
5703
5735
  * <p>You can optionally nest another statement inside the rate-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement. For example, based on recent requests that you have seen from an attacker, you might create a rate-based rule with a nested AND rule statement that contains the following nested statements:</p>
5704
5736
  * <ul>
@@ -5710,7 +5742,7 @@ export namespace NotStatement {
5710
5742
  * </li>
5711
5743
  * </ul>
5712
5744
  * <p>In this rate-based rule, you also define a rate limit. For this example, the rate limit is 1,000. Requests that meet both of the conditions in the statements are counted. If the count exceeds 1,000 requests per five minutes, the rule action triggers. Requests that do not meet both conditions are not counted towards the rate limit and are not affected by this rule.</p>
5713
- * <p>You cannot nest a <code>RateBasedStatement</code>, for example for use inside a <code>NotStatement</code> or <code>OrStatement</code>. It can only be referenced as a top-level statement within a rule.</p>
5745
+ * <p>You cannot nest a <code>RateBasedStatement</code> inside another statement, for example inside a <code>NotStatement</code> or <code>OrStatement</code>. You can define a <code>RateBasedStatement</code> inside a web ACL and inside a rule group. </p>
5714
5746
  */
5715
5747
  export interface RateBasedStatement {
5716
5748
  /**
@@ -5921,7 +5953,8 @@ export interface FirewallManagerStatement {
5921
5953
 
5922
5954
  /**
5923
5955
  * <p>A rule statement used to run the rules that are defined in a <a>RuleGroup</a>. To use this, create a rule group with your rules, then provide the ARN of the rule group in this statement.</p>
5924
- * <p>You cannot nest a <code>RuleGroupReferenceStatement</code>, for example for use inside a <code>NotStatement</code> or <code>OrStatement</code>. It can only be referenced as a top-level statement within a rule.</p>
5956
+ * <p>You cannot nest a <code>RuleGroupReferenceStatement</code>, for example for use inside a <code>NotStatement</code> or <code>OrStatement</code>. You
5957
+ * can only use a rule group reference statement at the top level inside a web ACL. </p>
5925
5958
  */
5926
5959
  RuleGroupReferenceStatement?: RuleGroupReferenceStatement;
5927
5960
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-wafv2",
3
3
  "description": "AWS SDK for JavaScript Wafv2 Client for Node.js, Browser and React Native",
4
- "version": "3.28.0",
4
+ "version": "3.32.0",
5
5
  "scripts": {
6
6
  "clean": "yarn remove-definitions && yarn remove-dist && yarn remove-documentation",
7
7
  "build-documentation": "yarn remove-documentation && typedoc ./",
@@ -27,45 +27,45 @@
27
27
  "dependencies": {
28
28
  "@aws-crypto/sha256-browser": "^1.0.0",
29
29
  "@aws-crypto/sha256-js": "^1.0.0",
30
- "@aws-sdk/client-sts": "3.28.0",
31
- "@aws-sdk/config-resolver": "3.28.0",
32
- "@aws-sdk/credential-provider-node": "3.28.0",
33
- "@aws-sdk/fetch-http-handler": "3.25.0",
34
- "@aws-sdk/hash-node": "3.25.0",
35
- "@aws-sdk/invalid-dependency": "3.25.0",
36
- "@aws-sdk/middleware-content-length": "3.25.0",
37
- "@aws-sdk/middleware-host-header": "3.25.0",
38
- "@aws-sdk/middleware-logger": "3.25.0",
39
- "@aws-sdk/middleware-retry": "3.28.0",
40
- "@aws-sdk/middleware-serde": "3.25.0",
41
- "@aws-sdk/middleware-signing": "3.28.0",
42
- "@aws-sdk/middleware-stack": "3.25.0",
43
- "@aws-sdk/middleware-user-agent": "3.25.0",
44
- "@aws-sdk/node-config-provider": "3.28.0",
45
- "@aws-sdk/node-http-handler": "3.25.0",
46
- "@aws-sdk/protocol-http": "3.25.0",
47
- "@aws-sdk/smithy-client": "3.28.0",
48
- "@aws-sdk/types": "3.25.0",
49
- "@aws-sdk/url-parser": "3.25.0",
50
- "@aws-sdk/util-base64-browser": "3.23.0",
51
- "@aws-sdk/util-base64-node": "3.23.0",
52
- "@aws-sdk/util-body-length-browser": "3.23.0",
53
- "@aws-sdk/util-body-length-node": "3.23.0",
54
- "@aws-sdk/util-user-agent-browser": "3.25.0",
55
- "@aws-sdk/util-user-agent-node": "3.28.0",
56
- "@aws-sdk/util-utf8-browser": "3.23.0",
57
- "@aws-sdk/util-utf8-node": "3.23.0",
30
+ "@aws-sdk/client-sts": "3.32.0",
31
+ "@aws-sdk/config-resolver": "3.32.0",
32
+ "@aws-sdk/credential-provider-node": "3.32.0",
33
+ "@aws-sdk/fetch-http-handler": "3.32.0",
34
+ "@aws-sdk/hash-node": "3.32.0",
35
+ "@aws-sdk/invalid-dependency": "3.32.0",
36
+ "@aws-sdk/middleware-content-length": "3.32.0",
37
+ "@aws-sdk/middleware-host-header": "3.32.0",
38
+ "@aws-sdk/middleware-logger": "3.32.0",
39
+ "@aws-sdk/middleware-retry": "3.32.0",
40
+ "@aws-sdk/middleware-serde": "3.32.0",
41
+ "@aws-sdk/middleware-signing": "3.32.0",
42
+ "@aws-sdk/middleware-stack": "3.32.0",
43
+ "@aws-sdk/middleware-user-agent": "3.32.0",
44
+ "@aws-sdk/node-config-provider": "3.32.0",
45
+ "@aws-sdk/node-http-handler": "3.32.0",
46
+ "@aws-sdk/protocol-http": "3.32.0",
47
+ "@aws-sdk/smithy-client": "3.32.0",
48
+ "@aws-sdk/types": "3.32.0",
49
+ "@aws-sdk/url-parser": "3.32.0",
50
+ "@aws-sdk/util-base64-browser": "3.32.0",
51
+ "@aws-sdk/util-base64-node": "3.32.0",
52
+ "@aws-sdk/util-body-length-browser": "3.32.0",
53
+ "@aws-sdk/util-body-length-node": "3.32.0",
54
+ "@aws-sdk/util-user-agent-browser": "3.32.0",
55
+ "@aws-sdk/util-user-agent-node": "3.32.0",
56
+ "@aws-sdk/util-utf8-browser": "3.32.0",
57
+ "@aws-sdk/util-utf8-node": "3.32.0",
58
58
  "tslib": "^2.3.0"
59
59
  },
60
60
  "devDependencies": {
61
- "@aws-sdk/client-documentation-generator": "3.23.0",
61
+ "@aws-sdk/client-documentation-generator": "3.32.0",
62
62
  "@types/node": "^12.7.5",
63
63
  "downlevel-dts": "0.7.0",
64
64
  "jest": "^26.1.0",
65
65
  "rimraf": "^3.0.0",
66
66
  "ts-jest": "^26.4.1",
67
67
  "typedoc": "^0.19.2",
68
- "typescript": "~4.3.2"
68
+ "typescript": "~4.3.5"
69
69
  },
70
70
  "engines": {
71
71
  "node": ">=10.0.0"
@@ -297,8 +297,12 @@ import {
297
297
  import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http";
298
298
  import {
299
299
  expectBoolean as __expectBoolean,
300
- expectInt as __expectInt,
300
+ expectInt32 as __expectInt32,
301
+ expectLong as __expectLong,
302
+ expectNonNull as __expectNonNull,
303
+ expectNumber as __expectNumber,
301
304
  expectString as __expectString,
305
+ parseEpochTimestamp as __parseEpochTimestamp,
302
306
  } from "@aws-sdk/smithy-client";
303
307
  import {
304
308
  Endpoint as __Endpoint,
@@ -5658,6 +5662,8 @@ const serializeAws_json1_1GetRateBasedStatementManagedKeysRequest = (
5658
5662
  context: __SerdeContext
5659
5663
  ): any => {
5660
5664
  return {
5665
+ ...(input.RuleGroupRuleName !== undefined &&
5666
+ input.RuleGroupRuleName !== null && { RuleGroupRuleName: input.RuleGroupRuleName }),
5661
5667
  ...(input.RuleName !== undefined && input.RuleName !== null && { RuleName: input.RuleName }),
5662
5668
  ...(input.Scope !== undefined && input.Scope !== null && { Scope: input.Scope }),
5663
5669
  ...(input.WebACLId !== undefined && input.WebACLId !== null && { WebACLId: input.WebACLId }),
@@ -6554,7 +6560,7 @@ const deserializeAws_json1_1ByteMatchStatement = (output: any, context: __SerdeC
6554
6560
 
6555
6561
  const deserializeAws_json1_1CheckCapacityResponse = (output: any, context: __SerdeContext): CheckCapacityResponse => {
6556
6562
  return {
6557
- Capacity: __expectInt(output.Capacity),
6563
+ Capacity: __expectLong(output.Capacity),
6558
6564
  } as any;
6559
6565
  };
6560
6566
 
@@ -6674,7 +6680,7 @@ const deserializeAws_json1_1CustomRequestHandling = (output: any, context: __Ser
6674
6680
  const deserializeAws_json1_1CustomResponse = (output: any, context: __SerdeContext): CustomResponse => {
6675
6681
  return {
6676
6682
  CustomResponseBodyKey: __expectString(output.CustomResponseBodyKey),
6677
- ResponseCode: __expectInt(output.ResponseCode),
6683
+ ResponseCode: __expectInt32(output.ResponseCode),
6678
6684
  ResponseHeaders:
6679
6685
  output.ResponseHeaders !== undefined && output.ResponseHeaders !== null
6680
6686
  ? deserializeAws_json1_1CustomHTTPHeaders(output.ResponseHeaders, context)
@@ -6771,7 +6777,7 @@ const deserializeAws_json1_1DescribeManagedRuleGroupResponse = (
6771
6777
  output.AvailableLabels !== undefined && output.AvailableLabels !== null
6772
6778
  ? deserializeAws_json1_1LabelSummaries(output.AvailableLabels, context)
6773
6779
  : undefined,
6774
- Capacity: __expectInt(output.Capacity),
6780
+ Capacity: __expectLong(output.Capacity),
6775
6781
  ConsumedLabels:
6776
6782
  output.ConsumedLabels !== undefined && output.ConsumedLabels !== null
6777
6783
  ? deserializeAws_json1_1LabelSummaries(output.ConsumedLabels, context)
@@ -6881,7 +6887,7 @@ const deserializeAws_json1_1FirewallManagerRuleGroup = (
6881
6887
  output.OverrideAction !== undefined && output.OverrideAction !== null
6882
6888
  ? deserializeAws_json1_1OverrideAction(output.OverrideAction, context)
6883
6889
  : undefined,
6884
- Priority: __expectInt(output.Priority),
6890
+ Priority: __expectInt32(output.Priority),
6885
6891
  VisibilityConfig:
6886
6892
  output.VisibilityConfig !== undefined && output.VisibilityConfig !== null
6887
6893
  ? deserializeAws_json1_1VisibilityConfig(output.VisibilityConfig, context)
@@ -7027,7 +7033,7 @@ const deserializeAws_json1_1GetSampledRequestsResponse = (
7027
7033
  context: __SerdeContext
7028
7034
  ): GetSampledRequestsResponse => {
7029
7035
  return {
7030
- PopulationSize: __expectInt(output.PopulationSize),
7036
+ PopulationSize: __expectLong(output.PopulationSize),
7031
7037
  SampledRequests:
7032
7038
  output.SampledRequests !== undefined && output.SampledRequests !== null
7033
7039
  ? deserializeAws_json1_1SampledHTTPRequests(output.SampledRequests, context)
@@ -7461,7 +7467,7 @@ const deserializeAws_json1_1ManagedRuleGroupVersion = (
7461
7467
  return {
7462
7468
  LastUpdateTimestamp:
7463
7469
  output.LastUpdateTimestamp !== undefined && output.LastUpdateTimestamp !== null
7464
- ? new Date(Math.round(output.LastUpdateTimestamp * 1000))
7470
+ ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.LastUpdateTimestamp)))
7465
7471
  : undefined,
7466
7472
  Name: __expectString(output.Name),
7467
7473
  } as any;
@@ -7524,19 +7530,19 @@ const deserializeAws_json1_1ManagedRuleSetSummary = (output: any, context: __Ser
7524
7530
  const deserializeAws_json1_1ManagedRuleSetVersion = (output: any, context: __SerdeContext): ManagedRuleSetVersion => {
7525
7531
  return {
7526
7532
  AssociatedRuleGroupArn: __expectString(output.AssociatedRuleGroupArn),
7527
- Capacity: __expectInt(output.Capacity),
7533
+ Capacity: __expectLong(output.Capacity),
7528
7534
  ExpiryTimestamp:
7529
7535
  output.ExpiryTimestamp !== undefined && output.ExpiryTimestamp !== null
7530
- ? new Date(Math.round(output.ExpiryTimestamp * 1000))
7536
+ ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.ExpiryTimestamp)))
7531
7537
  : undefined,
7532
- ForecastedLifetime: __expectInt(output.ForecastedLifetime),
7538
+ ForecastedLifetime: __expectInt32(output.ForecastedLifetime),
7533
7539
  LastUpdateTimestamp:
7534
7540
  output.LastUpdateTimestamp !== undefined && output.LastUpdateTimestamp !== null
7535
- ? new Date(Math.round(output.LastUpdateTimestamp * 1000))
7541
+ ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.LastUpdateTimestamp)))
7536
7542
  : undefined,
7537
7543
  PublishTimestamp:
7538
7544
  output.PublishTimestamp !== undefined && output.PublishTimestamp !== null
7539
- ? new Date(Math.round(output.PublishTimestamp * 1000))
7545
+ ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.PublishTimestamp)))
7540
7546
  : undefined,
7541
7547
  } as any;
7542
7548
  };
@@ -7634,7 +7640,7 @@ const deserializeAws_json1_1RateBasedStatement = (output: any, context: __SerdeC
7634
7640
  output.ForwardedIPConfig !== undefined && output.ForwardedIPConfig !== null
7635
7641
  ? deserializeAws_json1_1ForwardedIPConfig(output.ForwardedIPConfig, context)
7636
7642
  : undefined,
7637
- Limit: __expectInt(output.Limit),
7643
+ Limit: __expectLong(output.Limit),
7638
7644
  ScopeDownStatement:
7639
7645
  output.ScopeDownStatement !== undefined && output.ScopeDownStatement !== null
7640
7646
  ? deserializeAws_json1_1Statement(output.ScopeDownStatement, context)
@@ -7759,7 +7765,7 @@ const deserializeAws_json1_1Rule = (output: any, context: __SerdeContext): Rule
7759
7765
  output.OverrideAction !== undefined && output.OverrideAction !== null
7760
7766
  ? deserializeAws_json1_1OverrideAction(output.OverrideAction, context)
7761
7767
  : undefined,
7762
- Priority: __expectInt(output.Priority),
7768
+ Priority: __expectInt32(output.Priority),
7763
7769
  RuleLabels:
7764
7770
  output.RuleLabels !== undefined && output.RuleLabels !== null
7765
7771
  ? deserializeAws_json1_1Labels(output.RuleLabels, context)
@@ -7799,7 +7805,7 @@ const deserializeAws_json1_1RuleGroup = (output: any, context: __SerdeContext):
7799
7805
  output.AvailableLabels !== undefined && output.AvailableLabels !== null
7800
7806
  ? deserializeAws_json1_1LabelSummaries(output.AvailableLabels, context)
7801
7807
  : undefined,
7802
- Capacity: __expectInt(output.Capacity),
7808
+ Capacity: __expectLong(output.Capacity),
7803
7809
  ConsumedLabels:
7804
7810
  output.ConsumedLabels !== undefined && output.ConsumedLabels !== null
7805
7811
  ? deserializeAws_json1_1LabelSummaries(output.ConsumedLabels, context)
@@ -7904,13 +7910,13 @@ const deserializeAws_json1_1SampledHTTPRequest = (output: any, context: __SerdeC
7904
7910
  output.RequestHeadersInserted !== undefined && output.RequestHeadersInserted !== null
7905
7911
  ? deserializeAws_json1_1HTTPHeaders(output.RequestHeadersInserted, context)
7906
7912
  : undefined,
7907
- ResponseCodeSent: __expectInt(output.ResponseCodeSent),
7913
+ ResponseCodeSent: __expectInt32(output.ResponseCodeSent),
7908
7914
  RuleNameWithinRuleGroup: __expectString(output.RuleNameWithinRuleGroup),
7909
7915
  Timestamp:
7910
7916
  output.Timestamp !== undefined && output.Timestamp !== null
7911
- ? new Date(Math.round(output.Timestamp * 1000))
7917
+ ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.Timestamp)))
7912
7918
  : undefined,
7913
- Weight: __expectInt(output.Weight),
7919
+ Weight: __expectLong(output.Weight),
7914
7920
  } as any;
7915
7921
  };
7916
7922
 
@@ -7947,7 +7953,7 @@ const deserializeAws_json1_1SizeConstraintStatement = (
7947
7953
  output.FieldToMatch !== undefined && output.FieldToMatch !== null
7948
7954
  ? deserializeAws_json1_1FieldToMatch(output.FieldToMatch, context)
7949
7955
  : undefined,
7950
- Size: __expectInt(output.Size),
7956
+ Size: __expectLong(output.Size),
7951
7957
  TextTransformations:
7952
7958
  output.TextTransformations !== undefined && output.TextTransformations !== null
7953
7959
  ? deserializeAws_json1_1TextTransformations(output.TextTransformations, context)
@@ -8074,7 +8080,7 @@ const deserializeAws_json1_1TagResourceResponse = (output: any, context: __Serde
8074
8080
 
8075
8081
  const deserializeAws_json1_1TextTransformation = (output: any, context: __SerdeContext): TextTransformation => {
8076
8082
  return {
8077
- Priority: __expectInt(output.Priority),
8083
+ Priority: __expectInt32(output.Priority),
8078
8084
  Type: __expectString(output.Type),
8079
8085
  } as any;
8080
8086
  };
@@ -8093,10 +8099,12 @@ const deserializeAws_json1_1TextTransformations = (output: any, context: __Serde
8093
8099
  const deserializeAws_json1_1TimeWindow = (output: any, context: __SerdeContext): TimeWindow => {
8094
8100
  return {
8095
8101
  EndTime:
8096
- output.EndTime !== undefined && output.EndTime !== null ? new Date(Math.round(output.EndTime * 1000)) : undefined,
8102
+ output.EndTime !== undefined && output.EndTime !== null
8103
+ ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.EndTime)))
8104
+ : undefined,
8097
8105
  StartTime:
8098
8106
  output.StartTime !== undefined && output.StartTime !== null
8099
- ? new Date(Math.round(output.StartTime * 1000))
8107
+ ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.StartTime)))
8100
8108
  : undefined,
8101
8109
  } as any;
8102
8110
  };
@@ -8119,7 +8127,7 @@ const deserializeAws_json1_1UpdateManagedRuleSetVersionExpiryDateResponse = (
8119
8127
  ExpiringVersion: __expectString(output.ExpiringVersion),
8120
8128
  ExpiryTimestamp:
8121
8129
  output.ExpiryTimestamp !== undefined && output.ExpiryTimestamp !== null
8122
- ? new Date(Math.round(output.ExpiryTimestamp * 1000))
8130
+ ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.ExpiryTimestamp)))
8123
8131
  : undefined,
8124
8132
  NextLockToken: __expectString(output.NextLockToken),
8125
8133
  } as any;
@@ -8311,7 +8319,7 @@ const deserializeAws_json1_1WAFUnavailableEntityException = (
8311
8319
  const deserializeAws_json1_1WebACL = (output: any, context: __SerdeContext): WebACL => {
8312
8320
  return {
8313
8321
  ARN: __expectString(output.ARN),
8314
- Capacity: __expectInt(output.Capacity),
8322
+ Capacity: __expectLong(output.Capacity),
8315
8323
  CustomResponseBodies:
8316
8324
  output.CustomResponseBodies !== undefined && output.CustomResponseBodies !== null
8317
8325
  ? deserializeAws_json1_1CustomResponseBodies(output.CustomResponseBodies, context)