@aws-sdk/client-wafv2 3.758.0 → 3.769.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.
@@ -451,6 +451,40 @@ export interface JA3Fingerprint {
451
451
  */
452
452
  FallbackBehavior: FallbackBehavior | undefined;
453
453
  }
454
+ /**
455
+ * <p>Available for use with Amazon CloudFront distributions and Application Load Balancers. Match against the request's JA4 fingerprint. The JA4 fingerprint is a 36-character hash derived from the TLS Client Hello of an incoming request. This fingerprint serves as a unique identifier for the client's TLS configuration. WAF calculates and logs this fingerprint for each
456
+ * request that has enough TLS Client Hello information for the calculation. Almost
457
+ * all web requests include this information.</p>
458
+ * <note>
459
+ * <p>You can use this choice only with a string match <code>ByteMatchStatement</code> with the <code>PositionalConstraint</code> set to
460
+ * <code>EXACTLY</code>. </p>
461
+ * </note>
462
+ * <p>You can obtain the JA4 fingerprint for client requests from the web ACL logs.
463
+ * If WAF is able to calculate the fingerprint, it includes it in the logs.
464
+ * For information about the logging fields,
465
+ * see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/logging-fields.html">Log fields</a> in the <i>WAF Developer Guide</i>. </p>
466
+ * <p>Provide the JA4 fingerprint string from the logs in your string match statement
467
+ * specification, to match with any future requests that have the same TLS configuration.</p>
468
+ * @public
469
+ */
470
+ export interface JA4Fingerprint {
471
+ /**
472
+ * <p>The match status to assign to the web request if the request doesn't have a JA4 fingerprint. </p>
473
+ * <p>You can specify the following fallback behaviors:</p>
474
+ * <ul>
475
+ * <li>
476
+ * <p>
477
+ * <code>MATCH</code> - Treat the web request as matching the rule statement. WAF applies the rule action to the request.</p>
478
+ * </li>
479
+ * <li>
480
+ * <p>
481
+ * <code>NO_MATCH</code> - Treat the web request as not matching the rule statement.</p>
482
+ * </li>
483
+ * </ul>
484
+ * @public
485
+ */
486
+ FallbackBehavior: FallbackBehavior | undefined;
487
+ }
454
488
  /**
455
489
  * @public
456
490
  * @enum
@@ -666,6 +700,53 @@ export interface SingleQueryArgument {
666
700
  */
667
701
  Name: string | undefined;
668
702
  }
703
+ /**
704
+ * <p>Inspect fragments of the request URI. You can specify the parts of the URI fragment to
705
+ * inspect and you can narrow the set of URI fragments to inspect by including or excluding specific
706
+ * keys.
707
+ * </p>
708
+ * <p>This is used to indicate the web request component to inspect, in the <a>FieldToMatch</a> specification. </p>
709
+ * <p>Example JSON: <code>"UriFragment": \{ "MatchPattern": \{ "All": \{\} \}, "MatchScope": "KEY",
710
+ * "OversizeHandling": "MATCH" \}</code>
711
+ * </p>
712
+ * @public
713
+ */
714
+ export interface UriFragment {
715
+ /**
716
+ * <p>What WAF should do if it fails to completely parse the JSON body. The options are
717
+ * the following:</p>
718
+ * <ul>
719
+ * <li>
720
+ * <p>
721
+ * <code>EVALUATE_AS_STRING</code> - Inspect the body as plain text. WAF
722
+ * applies the text transformations and inspection criteria that you defined for the
723
+ * JSON inspection to the body text string.</p>
724
+ * </li>
725
+ * <li>
726
+ * <p>
727
+ * <code>MATCH</code> - Treat the web request as matching the rule statement.
728
+ * WAF applies the rule action to the request.</p>
729
+ * </li>
730
+ * <li>
731
+ * <p>
732
+ * <code>NO_MATCH</code> - Treat the web request as not matching the rule
733
+ * statement.</p>
734
+ * </li>
735
+ * </ul>
736
+ * <p>If you don't provide this setting, WAF parses and evaluates the content only up to the
737
+ * first parsing failure that it encounters. </p>
738
+ * <p>Example JSON: <code>\{ "UriFragment": \{ "FallbackBehavior": "MATCH"\} \}</code>
739
+ * </p>
740
+ * <note>
741
+ * <p>WAF parsing doesn't fully validate the input JSON string, so parsing can succeed even for invalid JSON. When
742
+ * parsing succeeds, WAF doesn't apply the fallback behavior. For more information,
743
+ * see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-fields-list.html#waf-rule-statement-request-component-json-body">JSON body</a>
744
+ * in the <i>WAF Developer Guide</i>.</p>
745
+ * </note>
746
+ * @public
747
+ */
748
+ FallbackBehavior?: FallbackBehavior | undefined;
749
+ }
669
750
  /**
670
751
  * <p>Inspect the path component of the URI of the web request. This is the part of the web
671
752
  * request that identifies a resource. For example, <code>/images/daily-ad.jpg</code>.</p>
@@ -852,6 +933,34 @@ export interface FieldToMatch {
852
933
  * @public
853
934
  */
854
935
  JA3Fingerprint?: JA3Fingerprint | undefined;
936
+ /**
937
+ * <p>Available for use with Amazon CloudFront distributions and Application Load Balancers. Match against the request's JA4 fingerprint. The JA4 fingerprint is a 36-character hash derived from the TLS Client Hello of an incoming request. This fingerprint serves as a unique identifier for the client's TLS configuration. WAF calculates and logs this fingerprint for each
938
+ * request that has enough TLS Client Hello information for the calculation. Almost
939
+ * all web requests include this information.</p>
940
+ * <note>
941
+ * <p>You can use this choice only with a string match <code>ByteMatchStatement</code> with the <code>PositionalConstraint</code> set to
942
+ * <code>EXACTLY</code>. </p>
943
+ * </note>
944
+ * <p>You can obtain the JA4 fingerprint for client requests from the web ACL logs.
945
+ * If WAF is able to calculate the fingerprint, it includes it in the logs.
946
+ * For information about the logging fields,
947
+ * see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/logging-fields.html">Log fields</a> in the <i>WAF Developer Guide</i>. </p>
948
+ * <p>Provide the JA4 fingerprint string from the logs in your string match statement
949
+ * specification, to match with any future requests that have the same TLS configuration.</p>
950
+ * @public
951
+ */
952
+ JA4Fingerprint?: JA4Fingerprint | undefined;
953
+ /**
954
+ * <p>Inspect fragments of the request URI. You must configure scope and pattern matching filters in
955
+ * the <code>UriFragment</code> object, to define the fragment of a URI that WAF inspects. </p>
956
+ * <p>Only the first 8 KB (8192 bytes) of a request's URI fragments and only the first 200 URI fragments
957
+ * are forwarded to WAF for inspection by the underlying host service. You must
958
+ * configure how to handle any oversize URI fragment content in the <code>UriFragment</code> object.
959
+ * WAF applies the pattern matching filters to the cookies that it receives from the
960
+ * underlying host service. </p>
961
+ * @public
962
+ */
963
+ UriFragment?: UriFragment | undefined;
855
964
  }
856
965
  /**
857
966
  * @public
@@ -2489,6 +2598,54 @@ export interface RateLimitHTTPMethod {
2489
2598
  */
2490
2599
  export interface RateLimitIP {
2491
2600
  }
2601
+ /**
2602
+ * <p>
2603
+ * Use the request's JA3 fingerprint derived from the TLS Client Hello of an incoming request as an aggregate key. If you use a single
2604
+ * JA3 fingerprint as your custom key, then each value fully defines an aggregation instance.
2605
+ * </p>
2606
+ * @public
2607
+ */
2608
+ export interface RateLimitJA3Fingerprint {
2609
+ /**
2610
+ * <p>The match status to assign to the web request if there is insufficient TSL Client Hello information to compute the JA3 fingerprint.</p>
2611
+ * <p>You can specify the following fallback behaviors:</p>
2612
+ * <ul>
2613
+ * <li>
2614
+ * <p>
2615
+ * <code>MATCH</code> - Treat the web request as matching the rule statement. WAF applies the rule action to the request.</p>
2616
+ * </li>
2617
+ * <li>
2618
+ * <p>
2619
+ * <code>NO_MATCH</code> - Treat the web request as not matching the rule statement.</p>
2620
+ * </li>
2621
+ * </ul>
2622
+ * @public
2623
+ */
2624
+ FallbackBehavior: FallbackBehavior | undefined;
2625
+ }
2626
+ /**
2627
+ * <p>Use the request's JA4 fingerprint derived from the TLS Client Hello of an incoming request as an aggregate key. If you use a single
2628
+ * JA4 fingerprint as your custom key, then each value fully defines an aggregation instance.</p>
2629
+ * @public
2630
+ */
2631
+ export interface RateLimitJA4Fingerprint {
2632
+ /**
2633
+ * <p>The match status to assign to the web request if there is insufficient TSL Client Hello information to compute the JA4 fingerprint.</p>
2634
+ * <p>You can specify the following fallback behaviors:</p>
2635
+ * <ul>
2636
+ * <li>
2637
+ * <p>
2638
+ * <code>MATCH</code> - Treat the web request as matching the rule statement. WAF applies the rule action to the request.</p>
2639
+ * </li>
2640
+ * <li>
2641
+ * <p>
2642
+ * <code>NO_MATCH</code> - Treat the web request as not matching the rule statement.</p>
2643
+ * </li>
2644
+ * </ul>
2645
+ * @public
2646
+ */
2647
+ FallbackBehavior: FallbackBehavior | undefined;
2648
+ }
2492
2649
  /**
2493
2650
  * <p>Specifies a label namespace to use as an aggregate key for a rate-based rule. Each distinct fully qualified label name that has the specified label namespace contributes to the aggregation instance. If you use just one label namespace as your custom key, then each label name fully defines an aggregation instance. </p>
2494
2651
  * <p>This uses only labels that have been added to the request by rules that are evaluated before this rate-based rule in the web ACL. </p>
@@ -2612,6 +2769,20 @@ export interface RateBasedStatementCustomKey {
2612
2769
  * @public
2613
2770
  */
2614
2771
  UriPath?: RateLimitUriPath | undefined;
2772
+ /**
2773
+ * <p>
2774
+ * Use the request's JA3 fingerprint as an aggregate key. If you use a single
2775
+ * JA3 fingerprint as your custom key, then each value fully defines an aggregation instance.
2776
+ * </p>
2777
+ * @public
2778
+ */
2779
+ JA3Fingerprint?: RateLimitJA3Fingerprint | undefined;
2780
+ /**
2781
+ * <p>Use the request's JA4 fingerprint as an aggregate key. If you use a single
2782
+ * JA4 fingerprint as your custom key, then each value fully defines an aggregation instance. </p>
2783
+ * @public
2784
+ */
2785
+ JA4Fingerprint?: RateLimitJA4Fingerprint | undefined;
2615
2786
  }
2616
2787
  /**
2617
2788
  * <p>A rule statement used to search web request components for a match against a single regular expression. </p>
@@ -3841,7 +4012,7 @@ export interface DataProtection {
3841
4012
  */
3842
4013
  Action: DataProtectionAction | undefined;
3843
4014
  /**
3844
- * <p>Specifies whether to also protect any rule match details from the web ACL logs when applying data protection this field type and keys. WAF logs these details for non-terminating
4015
+ * <p>Specifies whether to also exclude any rule match details from the data protection you have enabled for a given field. WAF logs these details for non-terminating
3845
4016
  * matching rules and for the terminating matching rule. For additional information, see
3846
4017
  * <a href="https://docs.aws.amazon.com/waf/latest/developerguide/logging-fields.html">Log fields for web ACL traffic</a> in the
3847
4018
  * <i>WAF Developer Guide</i>.</p>
@@ -3851,7 +4022,7 @@ export interface DataProtection {
3851
4022
  */
3852
4023
  ExcludeRuleMatchDetails?: boolean | undefined;
3853
4024
  /**
3854
- * <p>Specifies whether to also protect any rate-based rule details from the web ACL logs when applying data protection for this field type and keys.
4025
+ * <p>Specifies whether to also exclude any rate-based rule details from the data protection you have enabled for a given field. If you specify this exception, RateBasedDetails will show the value of the field.
3855
4026
  * For additional information, see the log field <code>rateBasedRuleList</code> at
3856
4027
  * <a href="https://docs.aws.amazon.com/waf/latest/developerguide/logging-fields.html">Log fields for web ACL traffic</a> in the
3857
4028
  * <i>WAF Developer Guide</i>.</p>
@@ -3862,9 +4033,9 @@ export interface DataProtection {
3862
4033
  ExcludeRateBasedDetails?: boolean | undefined;
3863
4034
  }
3864
4035
  /**
3865
- * <p>Specifies data protection to apply to the web request data that WAF stores for the web ACL. This is a web ACL level data protection option. </p>
4036
+ * <p>Specifies data protection to apply to the web request data for the web ACL. This is a web ACL level data protection option. </p>
3866
4037
  * <p>The data protection that you configure for the web ACL alters the data that's available for any other data collection activity,
3867
- * including WAF logging, web ACL request sampling, Amazon Web Services Managed Rules, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging. </p>
4038
+ * including your WAF logging destinations, web ACL request sampling, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging. </p>
3868
4039
  * <p>This is part of the data protection configuration for a web ACL. </p>
3869
4040
  * @public
3870
4041
  */
@@ -7816,9 +7987,9 @@ export interface CreateWebACLRequest {
7816
7987
  */
7817
7988
  VisibilityConfig: VisibilityConfig | undefined;
7818
7989
  /**
7819
- * <p>Specifies data protection to apply to the web request data that WAF stores for the web ACL. This is a web ACL level data protection option. </p>
7990
+ * <p>Specifies data protection to apply to the web request data for the web ACL. This is a web ACL level data protection option. </p>
7820
7991
  * <p>The data protection that you configure for the web ACL alters the data that's available for any other data collection activity,
7821
- * including WAF logging, web ACL request sampling, Amazon Web Services Managed Rules, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging. </p>
7992
+ * including your WAF logging destinations, web ACL request sampling, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging. </p>
7822
7993
  * @public
7823
7994
  */
7824
7995
  DataProtectionConfig?: DataProtectionConfig | undefined;
@@ -8076,9 +8247,9 @@ export interface UpdateWebACLRequest {
8076
8247
  */
8077
8248
  VisibilityConfig: VisibilityConfig | undefined;
8078
8249
  /**
8079
- * <p>Specifies data protection to apply to the web request data that WAF stores for the web ACL. This is a web ACL level data protection option. </p>
8250
+ * <p>Specifies data protection to apply to the web request data for the web ACL. This is a web ACL level data protection option. </p>
8080
8251
  * <p>The data protection that you configure for the web ACL alters the data that's available for any other data collection activity,
8081
- * including WAF logging, web ACL request sampling, Amazon Web Services Managed Rules, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging. </p>
8252
+ * including your WAF logging destinations, web ACL request sampling, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging. </p>
8082
8253
  * @public
8083
8254
  */
8084
8255
  DataProtectionConfig?: DataProtectionConfig | undefined;
@@ -8190,9 +8361,9 @@ export interface WebACL {
8190
8361
  */
8191
8362
  VisibilityConfig: VisibilityConfig | undefined;
8192
8363
  /**
8193
- * <p>Specifies data protection to apply to the web request data that WAF stores for the web ACL. This is a web ACL level data protection option. </p>
8364
+ * <p>Specifies data protection to apply to the web request data for the web ACL. This is a web ACL level data protection option. </p>
8194
8365
  * <p>The data protection that you configure for the web ACL alters the data that's available for any other data collection activity,
8195
- * including WAF logging, web ACL request sampling, Amazon Web Services Managed Rules, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging. </p>
8366
+ * including your WAF logging destinations, web ACL request sampling, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging. </p>
8196
8367
  * @public
8197
8368
  */
8198
8369
  DataProtectionConfig?: DataProtectionConfig | undefined;
@@ -75,6 +75,9 @@ export type FallbackBehavior =
75
75
  export interface JA3Fingerprint {
76
76
  FallbackBehavior: FallbackBehavior | undefined;
77
77
  }
78
+ export interface JA4Fingerprint {
79
+ FallbackBehavior: FallbackBehavior | undefined;
80
+ }
78
81
  export declare const BodyParsingFallbackBehavior: {
79
82
  readonly EVALUATE_AS_STRING: "EVALUATE_AS_STRING";
80
83
  readonly MATCH: "MATCH";
@@ -107,6 +110,9 @@ export interface SingleHeader {
107
110
  export interface SingleQueryArgument {
108
111
  Name: string | undefined;
109
112
  }
113
+ export interface UriFragment {
114
+ FallbackBehavior?: FallbackBehavior | undefined;
115
+ }
110
116
  export interface UriPath {}
111
117
  export interface FieldToMatch {
112
118
  SingleHeader?: SingleHeader | undefined;
@@ -121,6 +127,8 @@ export interface FieldToMatch {
121
127
  Cookies?: Cookies | undefined;
122
128
  HeaderOrder?: HeaderOrder | undefined;
123
129
  JA3Fingerprint?: JA3Fingerprint | undefined;
130
+ JA4Fingerprint?: JA4Fingerprint | undefined;
131
+ UriFragment?: UriFragment | undefined;
124
132
  }
125
133
  export declare const PositionalConstraint: {
126
134
  readonly CONTAINS: "CONTAINS";
@@ -591,6 +599,12 @@ export interface RateLimitHeader {
591
599
  }
592
600
  export interface RateLimitHTTPMethod {}
593
601
  export interface RateLimitIP {}
602
+ export interface RateLimitJA3Fingerprint {
603
+ FallbackBehavior: FallbackBehavior | undefined;
604
+ }
605
+ export interface RateLimitJA4Fingerprint {
606
+ FallbackBehavior: FallbackBehavior | undefined;
607
+ }
594
608
  export interface RateLimitLabelNamespace {
595
609
  Namespace: string | undefined;
596
610
  }
@@ -614,6 +628,8 @@ export interface RateBasedStatementCustomKey {
614
628
  IP?: RateLimitIP | undefined;
615
629
  LabelNamespace?: RateLimitLabelNamespace | undefined;
616
630
  UriPath?: RateLimitUriPath | undefined;
631
+ JA3Fingerprint?: RateLimitJA3Fingerprint | undefined;
632
+ JA4Fingerprint?: RateLimitJA4Fingerprint | undefined;
617
633
  }
618
634
  export interface RegexMatchStatement {
619
635
  RegexString: string | undefined;
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.758.0",
4
+ "version": "3.769.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
7
7
  "build:cjs": "node ../../scripts/compilation/inline client-wafv2",