@aws-sdk/client-wafv2 3.1068.0 → 3.1070.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 (53) hide show
  1. package/README.md +28 -0
  2. package/dist-cjs/auth/httpAuthSchemeProvider.js +9 -15
  3. package/dist-cjs/endpoint/bdd.js +2 -5
  4. package/dist-cjs/endpoint/endpointResolver.js +7 -11
  5. package/dist-cjs/index.js +338 -225
  6. package/dist-cjs/models/WAFV2ServiceException.js +4 -8
  7. package/dist-cjs/models/errors.js +41 -64
  8. package/dist-cjs/runtimeConfig.browser.js +22 -26
  9. package/dist-cjs/runtimeConfig.js +30 -34
  10. package/dist-cjs/runtimeConfig.native.js +4 -7
  11. package/dist-cjs/runtimeConfig.shared.js +20 -24
  12. package/dist-cjs/schemas/schemas_0.js +970 -492
  13. package/dist-es/WAFV2.js +8 -0
  14. package/dist-es/commands/GetRevenueStatisticsCommand.js +16 -0
  15. package/dist-es/commands/GetRevenueStatisticsSummaryCommand.js +16 -0
  16. package/dist-es/commands/GetRevenueStatisticsTimeSeriesCommand.js +16 -0
  17. package/dist-es/commands/ListSettlementRecordsCommand.js +16 -0
  18. package/dist-es/commands/index.js +4 -0
  19. package/dist-es/models/enums.js +65 -0
  20. package/dist-es/schemas/schemas_0.js +216 -21
  21. package/dist-types/WAFV2.d.ts +28 -0
  22. package/dist-types/WAFV2Client.d.ts +6 -2
  23. package/dist-types/commands/CheckCapacityCommand.d.ts +12 -0
  24. package/dist-types/commands/CreateRuleGroupCommand.d.ts +29 -0
  25. package/dist-types/commands/CreateWebACLCommand.d.ts +29 -0
  26. package/dist-types/commands/DescribeManagedRuleGroupCommand.d.ts +3 -0
  27. package/dist-types/commands/GetLoggingConfigurationCommand.d.ts +1 -1
  28. package/dist-types/commands/GetRevenueStatisticsCommand.d.ts +150 -0
  29. package/dist-types/commands/GetRevenueStatisticsSummaryCommand.d.ts +130 -0
  30. package/dist-types/commands/GetRevenueStatisticsTimeSeriesCommand.d.ts +139 -0
  31. package/dist-types/commands/GetRuleGroupCommand.d.ts +29 -0
  32. package/dist-types/commands/GetWebACLCommand.d.ts +29 -0
  33. package/dist-types/commands/GetWebACLForResourceCommand.d.ts +29 -0
  34. package/dist-types/commands/ListLoggingConfigurationsCommand.d.ts +1 -1
  35. package/dist-types/commands/ListSettlementRecordsCommand.d.ts +148 -0
  36. package/dist-types/commands/PutLoggingConfigurationCommand.d.ts +2 -2
  37. package/dist-types/commands/UpdateRuleGroupCommand.d.ts +29 -0
  38. package/dist-types/commands/UpdateWebACLCommand.d.ts +29 -0
  39. package/dist-types/commands/index.d.ts +4 -0
  40. package/dist-types/models/enums.d.ts +161 -0
  41. package/dist-types/models/models_0.d.ts +843 -114
  42. package/dist-types/schemas/schemas_0.d.ts +23 -0
  43. package/dist-types/ts3.4/WAFV2.d.ts +68 -0
  44. package/dist-types/ts3.4/WAFV2Client.d.ts +24 -0
  45. package/dist-types/ts3.4/commands/GetRevenueStatisticsCommand.d.ts +53 -0
  46. package/dist-types/ts3.4/commands/GetRevenueStatisticsSummaryCommand.d.ts +53 -0
  47. package/dist-types/ts3.4/commands/GetRevenueStatisticsTimeSeriesCommand.d.ts +53 -0
  48. package/dist-types/ts3.4/commands/ListSettlementRecordsCommand.d.ts +53 -0
  49. package/dist-types/ts3.4/commands/index.d.ts +4 -0
  50. package/dist-types/ts3.4/models/enums.d.ts +83 -0
  51. package/dist-types/ts3.4/models/models_0.d.ts +154 -4
  52. package/dist-types/ts3.4/schemas/schemas_0.d.ts +23 -0
  53. package/package.json +8 -8
@@ -1,4 +1,4 @@
1
- import type { ActionValue, AssociatedResourceType, BodyParsingFallbackBehavior, ComparisonOperator, CountryCode, DataProtectionAction, FailureReason, FallbackBehavior, FieldToProtectType, FilterBehavior, FilterRequirement, ForwardedIPPosition, InspectionLevel, IPAddressVersion, JsonMatchScope, LabelMatchScope, LogScope, LogType, LowReputationMode, MapMatchScope, OversizeHandling, PayloadType, Platform, PositionalConstraint, RateBasedStatementAggregateKeyType, ResourceType, ResponseContentType, Scope, SensitivityLevel, SensitivityToAct, SizeInspectionLimit, TextTransformationType, UsageOfAction } from "./enums";
1
+ import type { ActionValue, AssociatedResourceType, BlockchainChain, BodyParsingFallbackBehavior, ComparisonOperator, CountryCode, CryptoCurrency, Currency, CurrencyMode, DataProtectionAction, FailureReason, FallbackBehavior, FieldToProtectType, FilterBehavior, FilterRequirement, ForwardedIPPosition, GroupByType, InspectionLevel, IntervalType, IPAddressVersion, JsonMatchScope, LabelMatchScope, LogScope, LogType, LowReputationMode, MapMatchScope, OversizeHandling, PayloadType, Platform, PositionalConstraint, RankingSortBy, RankingStatisticType, RateBasedStatementAggregateKeyType, ResourceType, ResponseContentType, Scope, SensitivityLevel, SensitivityToAct, SettlementSortBy, SettlementStatus, SizeInspectionLimit, SortOrder, TextTransformationType, TimeSeriesStatisticType, UsageOfAction } from "./enums";
2
2
  /**
3
3
  * <p>A single action condition for a <a>Condition</a> in a logging filter.</p>
4
4
  * @public
@@ -2239,6 +2239,17 @@ export interface CountAction {
2239
2239
  */
2240
2240
  CustomRequestHandling?: CustomRequestHandling | undefined;
2241
2241
  }
2242
+ /**
2243
+ * <p>Specifies the monetize action settings for a rule. When WAF applies this action, it returns an HTTP 402 Payment Required response containing pricing information that the requesting client uses to complete payment and gain access to the resource. This is a terminating action-if the client does not complete the 402 payment flow, the request is blocked. This action is available only for web ACLs associated with Amazon CloudFront distributions. You must configure a <code>MonetizationConfig</code> on the web ACL or rule group before adding rules that use this action. You cannot use the Monetize action for rate-based rules.</p>
2244
+ * @public
2245
+ */
2246
+ export interface MonetizeAction {
2247
+ /**
2248
+ * <p>An integer multiplier applied to the base price defined in the web ACL's <code>MonetizationConfig</code>. The effective price for the request is the base price multiplied by this value. Specify as a string. Valid values: 1 to 100.</p>
2249
+ * @public
2250
+ */
2251
+ PriceMultiplier?: string | undefined;
2252
+ }
2242
2253
  /**
2243
2254
  * <p>The action that WAF should take on a web request when it matches a rule's
2244
2255
  * statement. Settings at the web ACL level can override the rule action setting. </p>
@@ -2270,6 +2281,11 @@ export interface RuleAction {
2270
2281
  * @public
2271
2282
  */
2272
2283
  Challenge?: ChallengeAction | undefined;
2284
+ /**
2285
+ * <p>Instructs WAF to return an HTTP 402 Payment Required response with a price manifest. The requesting client can complete payment and resubmit the request to gain access. This is a terminating action-requests that do not complete payment are blocked. This action is available only for web ACLs associated with Amazon CloudFront distributions and requires a <code>MonetizationConfig</code> on the web ACL.</p>
2286
+ * @public
2287
+ */
2288
+ Monetize?: MonetizeAction | undefined;
2273
2289
  }
2274
2290
  /**
2275
2291
  * <p>Action setting to use in the place of a rule action that is configured inside the rule group. You specify one override for each rule whose action you want to change. </p>
@@ -3316,6 +3332,71 @@ export interface CustomResponseBody {
3316
3332
  */
3317
3333
  Content: string | undefined;
3318
3334
  }
3335
+ /**
3336
+ * <p>The price per request for a payment network, specifying the amount and cryptocurrency.</p>
3337
+ * @public
3338
+ */
3339
+ export interface Price {
3340
+ /**
3341
+ * <p>The price per request as a decimal string in the specified currency. Minimum: 0.001. Maximum: 999999999.999. Supports up to 3 decimal places.</p>
3342
+ * @public
3343
+ */
3344
+ Amount: string | undefined;
3345
+ /**
3346
+ * <p>The cryptocurrency for payment. Currently only <code>USDC</code> is supported.</p>
3347
+ * @public
3348
+ */
3349
+ Currency: CryptoCurrency | undefined;
3350
+ }
3351
+ /**
3352
+ * <p>A blockchain payment network configuration for receiving AI bot monetization payments. Specifies the blockchain chain, your wallet address on that chain, and the price per request.</p>
3353
+ * @public
3354
+ */
3355
+ export interface PaymentNetwork {
3356
+ /**
3357
+ * <p>The blockchain network for receiving payments. Production networks: <code>BASE</code> (Base mainnet), <code>SOLANA</code> (Solana mainnet). Test networks: <code>BASE_SEPOLIA</code> (Base Sepolia testnet), <code>SOLANA_DEVNET</code> (Solana Devnet).</p>
3358
+ * @public
3359
+ */
3360
+ Chain: BlockchainChain | undefined;
3361
+ /**
3362
+ * <p>Your wallet address on the specified blockchain where payments are sent. For EVM chains (Base, Base Sepolia), provide a valid Ethereum address (42 characters including 0x prefix). For Solana chains, provide a valid Base58-encoded public key (32-44 characters).</p>
3363
+ * <p>For EVM addresses, WAF performs EIP-55 checksum validation for typo detection when the address uses a mix of lower and upper case letters. You can bypass this validation by providing the address in all lowercase or all uppercase.</p>
3364
+ * @public
3365
+ */
3366
+ WalletAddress: string | undefined;
3367
+ /**
3368
+ * <p>The price configuration for this payment network. Currently supports a single price entry in USDC.</p>
3369
+ * @public
3370
+ */
3371
+ Prices: Price[] | undefined;
3372
+ }
3373
+ /**
3374
+ * <p>The cryptocurrency payment configuration for AI bot monetization. Contains the list of blockchain payment networks where you receive payments.</p>
3375
+ * @public
3376
+ */
3377
+ export interface CryptoConfig {
3378
+ /**
3379
+ * <p>The blockchain payment networks configured to receive payments. You can specify 1 to 2 networks. All networks must be in the same environment-either all production networks (Base, Solana) or all test networks (Base Sepolia, Solana Devnet).</p>
3380
+ * @public
3381
+ */
3382
+ PaymentNetworks: PaymentNetwork[] | undefined;
3383
+ }
3384
+ /**
3385
+ * <p>The monetization configuration for a web ACL or rule group. Specifies the cryptocurrency payment networks and currency mode for AI bot monetization. You must provide this configuration when any rule in the web ACL or rule group uses the <code>Monetize</code> action.</p>
3386
+ * @public
3387
+ */
3388
+ export interface MonetizationConfig {
3389
+ /**
3390
+ * <p>The cryptocurrency payment configuration, including the blockchain networks and wallet addresses where you receive payments.</p>
3391
+ * @public
3392
+ */
3393
+ CryptoConfig?: CryptoConfig | undefined;
3394
+ /**
3395
+ * <p>Specifies whether the configuration uses real or test currency. Set to <code>REAL</code> to settle payments in USDC on production blockchain networks (Base, Solana). Set to <code>TEST</code> to settle on testnet networks (Base Sepolia, Solana Devnet) with tokens that have no monetary value. If not specified, defaults to <code>REAL</code>.</p>
3396
+ * @public
3397
+ */
3398
+ CurrencyMode?: CurrencyMode | undefined;
3399
+ }
3319
3400
  /**
3320
3401
  * <p>High-level information about a <a>RuleGroup</a>, returned by operations like create and list. This provides information like the ID, that you can use to retrieve and manage a <code>RuleGroup</code>, and the ARN, that you provide to the <a>RuleGroupReferenceStatement</a> to use the rule group in a <a>Rule</a>.</p>
3321
3402
  * @public
@@ -4735,141 +4816,619 @@ export interface GetRateBasedStatementManagedKeysRequest {
4735
4816
  * </ul>
4736
4817
  * @public
4737
4818
  */
4738
- Scope: Scope | undefined;
4819
+ Scope: Scope | undefined;
4820
+ /**
4821
+ * <p>The name of the web ACL. You cannot change the name of a web ACL after you create it.</p>
4822
+ * @public
4823
+ */
4824
+ WebACLName: string | undefined;
4825
+ /**
4826
+ * <p>The unique identifier for the web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.</p>
4827
+ * @public
4828
+ */
4829
+ WebACLId: string | undefined;
4830
+ /**
4831
+ * <p>The name of the rule group reference statement in your web ACL. This is required only
4832
+ * when you have the rate-based rule nested inside a rule group. </p>
4833
+ * @public
4834
+ */
4835
+ RuleGroupRuleName?: string | undefined;
4836
+ /**
4837
+ * <p>The name of the rate-based rule to get the keys for. If you have the rule defined inside
4838
+ * a rule group that you're using in your web ACL, also provide the name of the rule group
4839
+ * reference statement in the request parameter <code>RuleGroupRuleName</code>.</p>
4840
+ * @public
4841
+ */
4842
+ RuleName: string | undefined;
4843
+ }
4844
+ /**
4845
+ * <p>The set of IP addresses that are currently blocked for a <a>RateBasedStatement</a>. This is only available for rate-based rules
4846
+ * that aggregate on just the IP address, with the <code>AggregateKeyType</code> set to <code>IP</code> or <code>FORWARDED_IP</code>.</p>
4847
+ * <p>A rate-based rule applies its rule action to requests from IP addresses that are in the rule's managed keys list and that match the rule's scope-down statement. When a rule has no scope-down statement, it applies the action to all requests from the IP addresses that are in the list. The rule applies its rule action to rate limit the matching requests. The action is usually Block but it can be any valid rule action except for Allow. </p>
4848
+ * <p>The maximum number of IP addresses that can be rate limited by a single rate-based rule instance is 10,000. If more than 10,000 addresses exceed the rate limit, WAF limits those with the highest rates. </p>
4849
+ * @public
4850
+ */
4851
+ export interface RateBasedStatementManagedKeysIPSet {
4852
+ /**
4853
+ * <p>The version of the IP addresses, either <code>IPV4</code> or <code>IPV6</code>. </p>
4854
+ * @public
4855
+ */
4856
+ IPAddressVersion?: IPAddressVersion | undefined;
4857
+ /**
4858
+ * <p>The IP addresses that are currently blocked.</p>
4859
+ * @public
4860
+ */
4861
+ Addresses?: string[] | undefined;
4862
+ }
4863
+ /**
4864
+ * @public
4865
+ */
4866
+ export interface GetRateBasedStatementManagedKeysResponse {
4867
+ /**
4868
+ * <p>The keys that are of Internet Protocol version 4 (IPv4). </p>
4869
+ * @public
4870
+ */
4871
+ ManagedKeysIPV4?: RateBasedStatementManagedKeysIPSet | undefined;
4872
+ /**
4873
+ * <p>The keys that are of Internet Protocol version 6 (IPv6). </p>
4874
+ * @public
4875
+ */
4876
+ ManagedKeysIPV6?: RateBasedStatementManagedKeysIPSet | undefined;
4877
+ }
4878
+ /**
4879
+ * @public
4880
+ */
4881
+ export interface GetRegexPatternSetRequest {
4882
+ /**
4883
+ * <p>The name of the set. You cannot change the name after you create the set.</p>
4884
+ * @public
4885
+ */
4886
+ Name: string | undefined;
4887
+ /**
4888
+ * <p>Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use <code>CLOUDFRONT</code>.</p>
4889
+ * <p>To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows: </p>
4890
+ * <ul>
4891
+ * <li>
4892
+ * <p>CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>. </p>
4893
+ * </li>
4894
+ * <li>
4895
+ * <p>API and SDKs - For all calls, use the Region endpoint us-east-1. </p>
4896
+ * </li>
4897
+ * </ul>
4898
+ * @public
4899
+ */
4900
+ Scope: Scope | undefined;
4901
+ /**
4902
+ * <p>A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.</p>
4903
+ * @public
4904
+ */
4905
+ Id: string | undefined;
4906
+ }
4907
+ /**
4908
+ * <p>Contains one or more regular expressions. </p>
4909
+ * <p>WAF assigns an ARN to each <code>RegexPatternSet</code> that you create. To use a
4910
+ * set in a rule, you provide the ARN to the <a>Rule</a> statement <a>RegexPatternSetReferenceStatement</a>. </p>
4911
+ * @public
4912
+ */
4913
+ export interface RegexPatternSet {
4914
+ /**
4915
+ * <p>The name of the set. You cannot change the name after you create the set.</p>
4916
+ * @public
4917
+ */
4918
+ Name?: string | undefined;
4919
+ /**
4920
+ * <p>A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.</p>
4921
+ * @public
4922
+ */
4923
+ Id?: string | undefined;
4924
+ /**
4925
+ * <p>The Amazon Resource Name (ARN) of the entity.</p>
4926
+ * @public
4927
+ */
4928
+ ARN?: string | undefined;
4929
+ /**
4930
+ * <p>A description of the set that helps with identification. </p>
4931
+ * @public
4932
+ */
4933
+ Description?: string | undefined;
4934
+ /**
4935
+ * <p>The regular expression patterns in the set.</p>
4936
+ * @public
4937
+ */
4938
+ RegularExpressionList?: Regex[] | undefined;
4939
+ }
4940
+ /**
4941
+ * @public
4942
+ */
4943
+ export interface GetRegexPatternSetResponse {
4944
+ /**
4945
+ * <p></p>
4946
+ * @public
4947
+ */
4948
+ RegexPatternSet?: RegexPatternSet | undefined;
4949
+ /**
4950
+ * <p>A token used for optimistic locking. WAF returns a token to your <code>get</code> and <code>list</code> requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like <code>update</code> and <code>delete</code>. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another <code>get</code>, and use the new token returned by that operation. </p>
4951
+ * @public
4952
+ */
4953
+ LockToken?: string | undefined;
4954
+ }
4955
+ /**
4956
+ * <p>A filter for narrowing monetization statistics and settlement record results. Specify a filter name and one or more values to match.</p>
4957
+ * <p>Filter behavior:</p>
4958
+ * <ul>
4959
+ * <li>
4960
+ * <p>Multiple values within one filter: OR (match any)</p>
4961
+ * </li>
4962
+ * <li>
4963
+ * <p>Multiple filters: AND (all must match)</p>
4964
+ * </li>
4965
+ * <li>
4966
+ * <p>No duplicate filter names allowed (rejected with error)</p>
4967
+ * </li>
4968
+ * <li>
4969
+ * <p>Duplicate values within a filter are silently deduplicated</p>
4970
+ * </li>
4971
+ * <li>
4972
+ * <p>If no <code>CurrencyMode</code> filter is specified, defaults to <code>REAL</code>
4973
+ * </p>
4974
+ * </li>
4975
+ * </ul>
4976
+ * @public
4977
+ */
4978
+ export interface MonetizationFilter {
4979
+ /**
4980
+ * <p>The filter name. Format: Key is a string, Value is a list of strings.</p>
4981
+ * <p>Enum-restricted (invalid values rejected):</p>
4982
+ * <ul>
4983
+ * <li>
4984
+ * <p>
4985
+ * <code>CurrencyMode</code>: <code>REAL</code>, <code>TEST</code>
4986
+ * </p>
4987
+ * </li>
4988
+ * <li>
4989
+ * <p>
4990
+ * <code>ChainName</code>: <code>BASE</code>, <code>SOLANA</code>, <code>BASE_SEPOLIA</code>, <code>SOLANA_DEVNET</code>
4991
+ * </p>
4992
+ * </li>
4993
+ * <li>
4994
+ * <p>
4995
+ * <code>SettlementStatus</code>: <code>SETTLED</code>, <code>PENDING</code>, <code>FAILED</code>, <code>SERVICE_ERROR</code>, <code>SKIPPED_ORIGIN_ERROR</code>, <code>DUPLICATE</code>
4996
+ * </p>
4997
+ * </li>
4998
+ * <li>
4999
+ * <p>
5000
+ * <code>HttpSourceName</code>: <code>CF</code>, <code>ALB</code>, <code>APIGW</code>, <code>APPRUNNER</code>, <code>COGNITO</code>, <code>VERIFIED_ACCESS</code>
5001
+ * </p>
5002
+ * </li>
5003
+ * </ul>
5004
+ * <p>ARN-validated:</p>
5005
+ * <ul>
5006
+ * <li>
5007
+ * <p>
5008
+ * <code>WebACLArn</code>: valid WAFv2 web ACL ARN</p>
5009
+ * </li>
5010
+ * </ul>
5011
+ * <p>Free-text (any string up to 256 chars):</p>
5012
+ * <ul>
5013
+ * <li>
5014
+ * <p>
5015
+ * <code>SourceName</code>: The name of the bot. Populated from Bot Control verified bot labels.</p>
5016
+ * </li>
5017
+ * <li>
5018
+ * <p>
5019
+ * <code>SourceCategory</code>: The category classification of the bot. From Bot Control categorization.</p>
5020
+ * </li>
5021
+ * <li>
5022
+ * <p>
5023
+ * <code>Intent</code>: The declared intent of the bot request.</p>
5024
+ * </li>
5025
+ * <li>
5026
+ * <p>
5027
+ * <code>Organization</code>: The organization operating the bot.</p>
5028
+ * </li>
5029
+ * <li>
5030
+ * <p>
5031
+ * <code>UriPathPrefix</code>: The URI path of the request that was monetized.</p>
5032
+ * </li>
5033
+ * <li>
5034
+ * <p>
5035
+ * <code>RequestId</code>: The WAF request ID associated with the transaction. Matches the requestId in WAF logs. Pattern: <code>^[a-zA-Z0-9:._\-=+/]+$</code>
5036
+ * </p>
5037
+ * </li>
5038
+ * <li>
5039
+ * <p>
5040
+ * <code>TransactionId</code>: The blockchain transaction identifier. Pattern: <code>^[a-zA-Z0-9:._\-=+/]+$</code>
5041
+ * </p>
5042
+ * </li>
5043
+ * <li>
5044
+ * <p>
5045
+ * <code>TerminatingRuleName</code>: The name of the WAF rule that triggered the Monetize action.</p>
5046
+ * </li>
5047
+ * <li>
5048
+ * <p>
5049
+ * <code>PayerAddress</code>: The blockchain wallet address of the paying client. Pattern: <code>^[a-zA-Z0-9:._\-=+/]+$</code>
5050
+ * </p>
5051
+ * </li>
5052
+ * <li>
5053
+ * <p>
5054
+ * <code>HttpSourceId</code>: The identifier of the Amazon Web Services resource associated with the web ACL (for example, CloudFront distribution ID).</p>
5055
+ * </li>
5056
+ * </ul>
5057
+ * @public
5058
+ */
5059
+ Name: string | undefined;
5060
+ /**
5061
+ * <p>The values to filter on. Specify as a list of strings. Results match any of the specified values (OR logic). Duplicate values are silently deduplicated. Maximum: 20 values per filter.</p>
5062
+ * @public
5063
+ */
5064
+ Values: string[] | undefined;
5065
+ }
5066
+ /**
5067
+ * <p>In a <a>GetSampledRequests</a> request, the <code>StartTime</code> and
5068
+ * <code>EndTime</code> objects specify the time range for which you want WAF to
5069
+ * return a sample of web requests.</p>
5070
+ * <p>You must specify the times in Coordinated Universal Time (UTC) format. UTC format
5071
+ * includes the special designator, <code>Z</code>. For example,
5072
+ * <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three
5073
+ * hours.</p>
5074
+ * <p>In a <a>GetSampledRequests</a> response, the <code>StartTime</code> and
5075
+ * <code>EndTime</code> objects specify the time range for which WAF actually returned a
5076
+ * sample of web requests. WAF gets the specified number of requests from among the first
5077
+ * 5,000 requests that your Amazon Web Services resource receives during the specified time period. If your
5078
+ * resource receives more than 5,000 requests during that period, WAF stops sampling after
5079
+ * the 5,000th request. In that case, <code>EndTime</code> is the time that WAF received the
5080
+ * 5,000th request.</p>
5081
+ * @public
5082
+ */
5083
+ export interface TimeWindow {
5084
+ /**
5085
+ * <p>The beginning of the time range from which you want <code>GetSampledRequests</code> to
5086
+ * return a sample of the requests that your Amazon Web Services resource received. You must specify the
5087
+ * times in Coordinated Universal Time (UTC) format. UTC format includes the special
5088
+ * designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify
5089
+ * any time range in the previous three hours.</p>
5090
+ * @public
5091
+ */
5092
+ StartTime: Date | undefined;
5093
+ /**
5094
+ * <p>The end of the time range from which you want <code>GetSampledRequests</code> to return
5095
+ * a sample of the requests that your Amazon Web Services resource received. You must specify the times in
5096
+ * Coordinated Universal Time (UTC) format. UTC format includes the special designator,
5097
+ * <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time
5098
+ * range in the previous three hours.</p>
5099
+ * @public
5100
+ */
5101
+ EndTime: Date | undefined;
5102
+ }
5103
+ /**
5104
+ * @public
5105
+ */
5106
+ export interface GetRevenueStatisticsRequest {
5107
+ /**
5108
+ * <p>
5109
+ * <code>TOP_SOURCES_BY_REVENUE</code> ranks revenue from AI bot traffic, grouped by the dimension you specify in the <code>GroupBy</code> parameter (<code>NAME</code>, <code>CATEGORY</code>, <code>INTENT</code>, <code>ORGANIZATION</code>, or <code>WEBACL</code>); <code>GroupBy</code> is required for this statistic type. <code>TOP_PATHS_BY_REVENUE</code> ranks revenue by path.</p>
5110
+ * @public
5111
+ */
5112
+ StatisticType: RankingStatisticType | undefined;
5113
+ /**
5114
+ * <p>The time range for the query. Specify start and end timestamps.</p>
5115
+ * @public
5116
+ */
5117
+ TimeWindow: TimeWindow | undefined;
5118
+ /**
5119
+ * <p>Specifies whether this is for a Amazon CloudFront distribution (<code>CLOUDFRONT</code>) or for a regional application (<code>REGIONAL</code>).</p>
5120
+ * @public
5121
+ */
5122
+ Scope: Scope | undefined;
5123
+ /**
5124
+ * <p>The currency for the revenue amounts in the response.</p>
5125
+ * @public
5126
+ */
5127
+ Currency: Currency | undefined;
5128
+ /**
5129
+ * <p>The dimension to group results by: <code>NAME</code>, <code>CATEGORY</code>, <code>INTENT</code>, <code>ORGANIZATION</code>, or <code>WEBACL</code>. Required when <code>StatisticType</code> is <code>TOP_SOURCES_BY_REVENUE</code>. Not required for <code>TOP_PATHS_BY_REVENUE</code>, where results are grouped by content path. If <code>StatisticType</code> is <code>TOP_SOURCES_BY_REVENUE</code> and <code>GroupBy</code> is omitted, the request is rejected with a <code>WAFInvalidParameterException</code>.</p>
5130
+ * @public
5131
+ */
5132
+ GroupBy?: GroupByType | undefined;
5133
+ /**
5134
+ * <p>Optional filters to narrow the results.</p>
5135
+ * @public
5136
+ */
5137
+ Filters?: MonetizationFilter[] | undefined;
5138
+ /**
5139
+ * <p>When you get a paginated response, this marker indicates that additional results are available. Use it in a subsequent request to retrieve the next page of results.</p>
5140
+ * @public
5141
+ */
5142
+ NextMarker?: string | undefined;
5143
+ /**
5144
+ * <p>The maximum number of results to return.</p>
5145
+ * @public
5146
+ */
5147
+ Limit?: number | undefined;
5148
+ /**
5149
+ * <p>The field to sort results by: <code>REVENUE</code>, <code>PERCENTAGE</code>, or <code>NAME</code>.</p>
5150
+ * @public
5151
+ */
5152
+ SortBy?: RankingSortBy | undefined;
5153
+ /**
5154
+ * <p>The sort order: <code>ASC</code> for ascending or <code>DESC</code> for descending.</p>
5155
+ * @public
5156
+ */
5157
+ SortOrder?: SortOrder | undefined;
5158
+ }
5159
+ /**
5160
+ * <p>Revenue statistics for a single content path, including the path, revenue amount, and request count.</p>
5161
+ * @public
5162
+ */
5163
+ export interface RevenuePathStatistics {
5164
+ /**
5165
+ * <p>The URI path.</p>
5166
+ * @public
5167
+ */
5168
+ Path: string | undefined;
5169
+ /**
5170
+ * <p>The percentage of total revenue from this path.</p>
5171
+ * @public
5172
+ */
5173
+ Percentage: number | undefined;
5174
+ /**
5175
+ * <p>The total revenue amount from this path in the specified currency.</p>
5176
+ * @public
5177
+ */
5178
+ Amount: string | undefined;
5179
+ /**
5180
+ * <p>The number of monetized requests to this path.</p>
5181
+ * @public
5182
+ */
5183
+ RequestCount: number | undefined;
5184
+ }
5185
+ /**
5186
+ * <p>Revenue statistics for a single AI bot source, including the bot name, revenue amount, request count, and verification status.</p>
5187
+ * @public
5188
+ */
5189
+ export interface SourceStatistics {
5190
+ /**
5191
+ * <p>The name of the AI bot.</p>
5192
+ * @public
5193
+ */
5194
+ SourceName: string | undefined;
5195
+ /**
5196
+ * <p>The percentage of total revenue from this source.</p>
5197
+ * @public
5198
+ */
5199
+ Percentage: number | undefined;
5200
+ /**
5201
+ * <p>The total revenue amount from this source in the specified currency.</p>
5202
+ * @public
5203
+ */
5204
+ Amount: string | undefined;
5205
+ /**
5206
+ * <p>The number of monetized requests from this source.</p>
5207
+ * @public
5208
+ */
5209
+ RequestCount: number | undefined;
5210
+ /**
5211
+ * <p>The category of this AI bot source.</p>
5212
+ * @public
5213
+ */
5214
+ SourceCategory?: string | undefined;
5215
+ /**
5216
+ * <p>The declared intent of the AI bot (for example, summarize, index, or train).</p>
5217
+ * @public
5218
+ */
5219
+ Intent?: string | undefined;
5220
+ /**
5221
+ * <p>The organization associated with the AI bot.</p>
5222
+ * @public
5223
+ */
5224
+ Organization?: string | undefined;
5225
+ /**
5226
+ * <p>Whether the AI bot's identity was verified.</p>
5227
+ * @public
5228
+ */
5229
+ Verified?: boolean | undefined;
5230
+ /**
5231
+ * <p>The value for the group-by dimension, when grouping is applied.</p>
5232
+ * @public
5233
+ */
5234
+ GroupByValue?: string | undefined;
5235
+ }
5236
+ /**
5237
+ * @public
5238
+ */
5239
+ export interface GetRevenueStatisticsResponse {
5240
+ /**
5241
+ * <p>Statistics for top revenue sources (AI bots). Populated when <code>StatisticType</code> is <code>TOP_SOURCES_BY_REVENUE</code>.</p>
5242
+ * @public
5243
+ */
5244
+ SourceStatistics?: SourceStatistics[] | undefined;
5245
+ /**
5246
+ * <p>Statistics for top revenue paths. Populated when <code>StatisticType</code> is <code>TOP_PATHS_BY_REVENUE</code>.</p>
5247
+ * @public
5248
+ */
5249
+ RevenuePathStatistics?: RevenuePathStatistics[] | undefined;
5250
+ /**
5251
+ * <p>When you get a paginated response, this marker indicates that additional results are available.</p>
5252
+ * @public
5253
+ */
5254
+ NextMarker?: string | undefined;
5255
+ }
5256
+ /**
5257
+ * @public
5258
+ */
5259
+ export interface GetRevenueStatisticsSummaryRequest {
5260
+ /**
5261
+ * <p>The time range for the revenue summary query. Specify start and end timestamps.</p>
5262
+ * @public
5263
+ */
5264
+ TimeWindow: TimeWindow | undefined;
5265
+ /**
5266
+ * <p>Specifies whether this is for a Amazon CloudFront distribution (<code>CLOUDFRONT</code>) or for a regional application (<code>REGIONAL</code>). AI bot monetization is only available for <code>CLOUDFRONT</code> scope.</p>
5267
+ * @public
5268
+ */
5269
+ Scope: Scope | undefined;
5270
+ /**
5271
+ * <p>The currency for the revenue amounts in the response. Currently only <code>USDC</code> is supported.</p>
5272
+ * @public
5273
+ */
5274
+ Currency: Currency | undefined;
5275
+ /**
5276
+ * <p>Optional filters to narrow the results. You can filter by source name, category, organization, intent, verified status, content path, web ACL ARN, or currency mode.</p>
5277
+ * @public
5278
+ */
5279
+ Filters?: MonetizationFilter[] | undefined;
5280
+ }
5281
+ /**
5282
+ * <p>A summary of AI bot monetization revenue, including total revenue, revenue by verification tier, and request counts.</p>
5283
+ * @public
5284
+ */
5285
+ export interface RevenueBreakdown {
5286
+ /**
5287
+ * <p>The total revenue amount in the specified currency.</p>
5288
+ * @public
5289
+ */
5290
+ TotalAmount?: string | undefined;
5291
+ /**
5292
+ * <p>The revenue amount from verified AI bots.</p>
5293
+ * @public
5294
+ */
5295
+ VerifiedAmount?: string | undefined;
5296
+ /**
5297
+ * <p>The revenue amount from unverified AI bots.</p>
5298
+ * @public
5299
+ */
5300
+ UnverifiedAmount?: string | undefined;
5301
+ /**
5302
+ * <p>The currency of the revenue amounts.</p>
5303
+ * @public
5304
+ */
5305
+ Currency?: Currency | undefined;
5306
+ /**
5307
+ * <p>The total number of successfully settled payment transactions.</p>
5308
+ * @public
5309
+ */
5310
+ TotalSettled?: number | undefined;
5311
+ /**
5312
+ * <p>The total number of HTTP 402 Payment Required responses served to AI agents.</p>
5313
+ * @public
5314
+ */
5315
+ TotalMonetizeServed?: number | undefined;
5316
+ }
5317
+ /**
5318
+ * @public
5319
+ */
5320
+ export interface GetRevenueStatisticsSummaryResponse {
5321
+ /**
5322
+ * <p>The revenue breakdown summary for the specified time window and filters.</p>
5323
+ * @public
5324
+ */
5325
+ RevenueBreakdown?: RevenueBreakdown | undefined;
5326
+ }
5327
+ /**
5328
+ * @public
5329
+ */
5330
+ export interface GetRevenueStatisticsTimeSeriesRequest {
5331
+ /**
5332
+ * <p>The type of time series data to retrieve: <code>DATE_HISTOGRAM</code> for revenue over time, or <code>PAYMENT_TRAFFIC</code> for payment traffic patterns.</p>
5333
+ * @public
5334
+ */
5335
+ StatisticType: TimeSeriesStatisticType | undefined;
4739
5336
  /**
4740
- * <p>The name of the web ACL. You cannot change the name of a web ACL after you create it.</p>
5337
+ * <p>The time range for the query. Specify start and end timestamps.</p>
4741
5338
  * @public
4742
5339
  */
4743
- WebACLName: string | undefined;
5340
+ TimeWindow: TimeWindow | undefined;
4744
5341
  /**
4745
- * <p>The unique identifier for the web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.</p>
5342
+ * <p>Specifies whether this is for a Amazon CloudFront distribution (<code>CLOUDFRONT</code>) or for a regional application (<code>REGIONAL</code>).</p>
4746
5343
  * @public
4747
5344
  */
4748
- WebACLId: string | undefined;
5345
+ Scope: Scope | undefined;
4749
5346
  /**
4750
- * <p>The name of the rule group reference statement in your web ACL. This is required only
4751
- * when you have the rate-based rule nested inside a rule group. </p>
5347
+ * <p>The time interval for aggregating data points: <code>MINUTELY</code>, <code>FIVE_MINUTELY</code>, <code>HOURLY</code>, or <code>DAILY</code>.</p>
4752
5348
  * @public
4753
5349
  */
4754
- RuleGroupRuleName?: string | undefined;
5350
+ Interval: IntervalType | undefined;
4755
5351
  /**
4756
- * <p>The name of the rate-based rule to get the keys for. If you have the rule defined inside
4757
- * a rule group that you're using in your web ACL, also provide the name of the rule group
4758
- * reference statement in the request parameter <code>RuleGroupRuleName</code>.</p>
5352
+ * <p>The currency for the amounts in the response.</p>
4759
5353
  * @public
4760
5354
  */
4761
- RuleName: string | undefined;
4762
- }
4763
- /**
4764
- * <p>The set of IP addresses that are currently blocked for a <a>RateBasedStatement</a>. This is only available for rate-based rules
4765
- * that aggregate on just the IP address, with the <code>AggregateKeyType</code> set to <code>IP</code> or <code>FORWARDED_IP</code>.</p>
4766
- * <p>A rate-based rule applies its rule action to requests from IP addresses that are in the rule's managed keys list and that match the rule's scope-down statement. When a rule has no scope-down statement, it applies the action to all requests from the IP addresses that are in the list. The rule applies its rule action to rate limit the matching requests. The action is usually Block but it can be any valid rule action except for Allow. </p>
4767
- * <p>The maximum number of IP addresses that can be rate limited by a single rate-based rule instance is 10,000. If more than 10,000 addresses exceed the rate limit, WAF limits those with the highest rates. </p>
4768
- * @public
4769
- */
4770
- export interface RateBasedStatementManagedKeysIPSet {
5355
+ Currency: Currency | undefined;
4771
5356
  /**
4772
- * <p>The version of the IP addresses, either <code>IPV4</code> or <code>IPV6</code>. </p>
5357
+ * <p>The dimension to group results by.</p>
4773
5358
  * @public
4774
5359
  */
4775
- IPAddressVersion?: IPAddressVersion | undefined;
5360
+ GroupBy?: GroupByType | undefined;
4776
5361
  /**
4777
- * <p>The IP addresses that are currently blocked.</p>
5362
+ * <p>Optional filters to narrow the results.</p>
4778
5363
  * @public
4779
5364
  */
4780
- Addresses?: string[] | undefined;
4781
- }
4782
- /**
4783
- * @public
4784
- */
4785
- export interface GetRateBasedStatementManagedKeysResponse {
5365
+ Filters?: MonetizationFilter[] | undefined;
4786
5366
  /**
4787
- * <p>The keys that are of Internet Protocol version 4 (IPv4). </p>
5367
+ * <p>The maximum number of data points to return. Minimum: 1. Maximum: 10000.</p>
4788
5368
  * @public
4789
5369
  */
4790
- ManagedKeysIPV4?: RateBasedStatementManagedKeysIPSet | undefined;
5370
+ Limit?: number | undefined;
4791
5371
  /**
4792
- * <p>The keys that are of Internet Protocol version 6 (IPv6). </p>
5372
+ * <p>When you get a paginated response, this marker indicates that additional results are available.</p>
4793
5373
  * @public
4794
5374
  */
4795
- ManagedKeysIPV6?: RateBasedStatementManagedKeysIPSet | undefined;
5375
+ NextMarker?: string | undefined;
4796
5376
  }
4797
5377
  /**
5378
+ * <p>A single data point in a revenue time series, representing aggregated monetization metrics for a specific time interval.</p>
4798
5379
  * @public
4799
5380
  */
4800
- export interface GetRegexPatternSetRequest {
4801
- /**
4802
- * <p>The name of the set. You cannot change the name after you create the set.</p>
4803
- * @public
4804
- */
4805
- Name: string | undefined;
5381
+ export interface DataPointEntry {
4806
5382
  /**
4807
- * <p>Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use <code>CLOUDFRONT</code>.</p>
4808
- * <p>To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows: </p>
4809
- * <ul>
4810
- * <li>
4811
- * <p>CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>. </p>
4812
- * </li>
4813
- * <li>
4814
- * <p>API and SDKs - For all calls, use the Region endpoint us-east-1. </p>
4815
- * </li>
4816
- * </ul>
5383
+ * <p>The timestamp for this data point.</p>
4817
5384
  * @public
4818
5385
  */
4819
- Scope: Scope | undefined;
5386
+ Date?: Date | undefined;
4820
5387
  /**
4821
- * <p>A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.</p>
5388
+ * <p>The number of HTTP 402 Payment Required responses served during this interval.</p>
4822
5389
  * @public
4823
5390
  */
4824
- Id: string | undefined;
4825
- }
4826
- /**
4827
- * <p>Contains one or more regular expressions. </p>
4828
- * <p>WAF assigns an ARN to each <code>RegexPatternSet</code> that you create. To use a
4829
- * set in a rule, you provide the ARN to the <a>Rule</a> statement <a>RegexPatternSetReferenceStatement</a>. </p>
4830
- * @public
4831
- */
4832
- export interface RegexPatternSet {
5391
+ MonetizeServedCount?: number | undefined;
4833
5392
  /**
4834
- * <p>The name of the set. You cannot change the name after you create the set.</p>
5393
+ * <p>The number of successfully settled payments during this interval.</p>
4835
5394
  * @public
4836
5395
  */
4837
- Name?: string | undefined;
5396
+ SettledCount?: number | undefined;
4838
5397
  /**
4839
- * <p>A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.</p>
5398
+ * <p>The total revenue amount during this interval in the specified currency.</p>
4840
5399
  * @public
4841
5400
  */
4842
- Id?: string | undefined;
5401
+ TotalAmount?: string | undefined;
4843
5402
  /**
4844
- * <p>The Amazon Resource Name (ARN) of the entity.</p>
5403
+ * <p>The bot category for this data point, when grouped by category.</p>
4845
5404
  * @public
4846
5405
  */
4847
- ARN?: string | undefined;
5406
+ Category?: string | undefined;
4848
5407
  /**
4849
- * <p>A description of the set that helps with identification. </p>
5408
+ * <p>The intent classification for this data point, when grouped by intent.</p>
4850
5409
  * @public
4851
5410
  */
4852
- Description?: string | undefined;
5411
+ Intent?: string | undefined;
4853
5412
  /**
4854
- * <p>The regular expression patterns in the set.</p>
5413
+ * <p>The group-by dimension value for this data point.</p>
4855
5414
  * @public
4856
5415
  */
4857
- RegularExpressionList?: Regex[] | undefined;
5416
+ GroupByValue?: string | undefined;
4858
5417
  }
4859
5418
  /**
4860
5419
  * @public
4861
5420
  */
4862
- export interface GetRegexPatternSetResponse {
5421
+ export interface GetRevenueStatisticsTimeSeriesResponse {
4863
5422
  /**
4864
- * <p></p>
5423
+ * <p>The list of time series data points.</p>
4865
5424
  * @public
4866
5425
  */
4867
- RegexPatternSet?: RegexPatternSet | undefined;
5426
+ DataPoints?: DataPointEntry[] | undefined;
4868
5427
  /**
4869
- * <p>A token used for optimistic locking. WAF returns a token to your <code>get</code> and <code>list</code> requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like <code>update</code> and <code>delete</code>. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another <code>get</code>, and use the new token returned by that operation. </p>
5428
+ * <p>When you get a paginated response, this marker indicates that additional results are available.</p>
4870
5429
  * @public
4871
5430
  */
4872
- LockToken?: string | undefined;
5431
+ NextMarker?: string | undefined;
4873
5432
  }
4874
5433
  /**
4875
5434
  * @public
@@ -4905,43 +5464,6 @@ export interface GetRuleGroupRequest {
4905
5464
  */
4906
5465
  ARN?: string | undefined;
4907
5466
  }
4908
- /**
4909
- * <p>In a <a>GetSampledRequests</a> request, the <code>StartTime</code> and
4910
- * <code>EndTime</code> objects specify the time range for which you want WAF to
4911
- * return a sample of web requests.</p>
4912
- * <p>You must specify the times in Coordinated Universal Time (UTC) format. UTC format
4913
- * includes the special designator, <code>Z</code>. For example,
4914
- * <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three
4915
- * hours.</p>
4916
- * <p>In a <a>GetSampledRequests</a> response, the <code>StartTime</code> and
4917
- * <code>EndTime</code> objects specify the time range for which WAF actually returned a
4918
- * sample of web requests. WAF gets the specified number of requests from among the first
4919
- * 5,000 requests that your Amazon Web Services resource receives during the specified time period. If your
4920
- * resource receives more than 5,000 requests during that period, WAF stops sampling after
4921
- * the 5,000th request. In that case, <code>EndTime</code> is the time that WAF received the
4922
- * 5,000th request.</p>
4923
- * @public
4924
- */
4925
- export interface TimeWindow {
4926
- /**
4927
- * <p>The beginning of the time range from which you want <code>GetSampledRequests</code> to
4928
- * return a sample of the requests that your Amazon Web Services resource received. You must specify the
4929
- * times in Coordinated Universal Time (UTC) format. UTC format includes the special
4930
- * designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify
4931
- * any time range in the previous three hours.</p>
4932
- * @public
4933
- */
4934
- StartTime: Date | undefined;
4935
- /**
4936
- * <p>The end of the time range from which you want <code>GetSampledRequests</code> to return
4937
- * a sample of the requests that your Amazon Web Services resource received. You must specify the times in
4938
- * Coordinated Universal Time (UTC) format. UTC format includes the special designator,
4939
- * <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time
4940
- * range in the previous three hours.</p>
4941
- * @public
4942
- */
4943
- EndTime: Date | undefined;
4944
- }
4945
5467
  /**
4946
5468
  * @public
4947
5469
  */
@@ -6089,6 +6611,183 @@ export interface ListRuleGroupsResponse {
6089
6611
  */
6090
6612
  RuleGroups?: RuleGroupSummary[] | undefined;
6091
6613
  }
6614
+ /**
6615
+ * @public
6616
+ */
6617
+ export interface ListSettlementRecordsRequest {
6618
+ /**
6619
+ * <p>The time range for the query. Specify start and end timestamps.</p>
6620
+ * @public
6621
+ */
6622
+ TimeWindow: TimeWindow | undefined;
6623
+ /**
6624
+ * <p>Specifies whether this is for a Amazon CloudFront distribution (<code>CLOUDFRONT</code>) or for a regional application (<code>REGIONAL</code>).</p>
6625
+ * @public
6626
+ */
6627
+ Scope: Scope | undefined;
6628
+ /**
6629
+ * <p>The currency for the amounts in the response.</p>
6630
+ * @public
6631
+ */
6632
+ Currency: Currency | undefined;
6633
+ /**
6634
+ * <p>Optional filters to narrow the results. You can filter by payer address, status, source name, network, or other settlement fields.</p>
6635
+ * @public
6636
+ */
6637
+ Filters?: MonetizationFilter[] | undefined;
6638
+ /**
6639
+ * <p>The field to sort settlement records by: <code>TIMESTAMP</code>, <code>AMOUNT</code>, <code>NAME</code>, or <code>STATUS</code>.</p>
6640
+ * @public
6641
+ */
6642
+ SortBy?: SettlementSortBy | undefined;
6643
+ /**
6644
+ * <p>The sort order: <code>ASC</code> for ascending or <code>DESC</code> for descending.</p>
6645
+ * @public
6646
+ */
6647
+ SortOrder?: SortOrder | undefined;
6648
+ /**
6649
+ * <p>The maximum number of settlement records to return. Minimum: 1. Maximum: 100.</p>
6650
+ * @public
6651
+ */
6652
+ Limit?: number | undefined;
6653
+ /**
6654
+ * <p>When you get a paginated response, this marker indicates that additional results are available.</p>
6655
+ * @public
6656
+ */
6657
+ NextMarker?: string | undefined;
6658
+ }
6659
+ /**
6660
+ * <p>A single settlement transaction record for AI bot monetization. Contains details about the payment including timestamp, amount, status, and the parties involved.</p>
6661
+ * @public
6662
+ */
6663
+ export interface SettlementRecord {
6664
+ /**
6665
+ * <p>The timestamp when the settlement was recorded.</p>
6666
+ * @public
6667
+ */
6668
+ Timestamp: Date | undefined;
6669
+ /**
6670
+ * <p>The blockchain wallet address of the paying AI agent.</p>
6671
+ * @public
6672
+ */
6673
+ PayerAddress?: string | undefined;
6674
+ /**
6675
+ * <p>Your receiving wallet address.</p>
6676
+ * @public
6677
+ */
6678
+ WalletAddress?: string | undefined;
6679
+ /**
6680
+ * <p>The status of the settlement. Possible values:</p>
6681
+ * <ul>
6682
+ * <li>
6683
+ * <p>
6684
+ * <code>SETTLED</code> - The payment was successfully settled on the blockchain and the transfer from the payer's wallet to the publisher's wallet is confirmed. The <code>TransactionId</code> field contains the on-chain transaction hash. Content is served to the client.</p>
6685
+ * </li>
6686
+ * <li>
6687
+ * <p>
6688
+ * <code>PENDING</code> - The blockchain transaction has been submitted but not yet confirmed on-chain. This is a transient state that automatically resolves to either <code>SETTLED</code> or <code>FAILED</code>. No action is required. While pending, content is not served and the API returns a 402 response. Clients can retry the request.</p>
6689
+ * </li>
6690
+ * <li>
6691
+ * <p>
6692
+ * <code>FAILED</code> - The payment settlement was attempted but failed. Possible causes include insufficient funds, an expired payment authorization, or a reverted blockchain transaction. The <code>failureReason</code> field contains a machine-readable error code. Content is not served.</p>
6693
+ * </li>
6694
+ * <li>
6695
+ * <p>
6696
+ * <code>SERVICE_ERROR</code> - Settlement could not be completed due to an internal service issue or an issue with the payment network. Content is not served. The client's payment authorization remains valid and the request can be retried.</p>
6697
+ * </li>
6698
+ * <li>
6699
+ * <p>
6700
+ * <code>SKIPPED_ORIGIN_ERROR</code> - The origin returned a non-2xx response, so settlement was intentionally skipped. The client is not charged.</p>
6701
+ * </li>
6702
+ * <li>
6703
+ * <p>
6704
+ * <code>DUPLICATE</code> - A prior request with the same payment payload has already been settled. This status typically appears when a previous attempt timed out but the payment was ultimately processed. The client is not charged again.</p>
6705
+ * </li>
6706
+ * </ul>
6707
+ * @public
6708
+ */
6709
+ Status: SettlementStatus | undefined;
6710
+ /**
6711
+ * <p>The payment amount in the specified currency.</p>
6712
+ * @public
6713
+ */
6714
+ Amount: string | undefined;
6715
+ /**
6716
+ * <p>The currency of the payment amount.</p>
6717
+ * @public
6718
+ */
6719
+ Currency?: Currency | undefined;
6720
+ /**
6721
+ * <p>The blockchain network on which the settlement occurred.</p>
6722
+ * @public
6723
+ */
6724
+ Network?: string | undefined;
6725
+ /**
6726
+ * <p>The blockchain transaction identifier. You can use this to verify the transaction on a blockchain explorer.</p>
6727
+ * @public
6728
+ */
6729
+ TransactionId?: string | undefined;
6730
+ /**
6731
+ * <p>The WAF request ID associated with this settlement.</p>
6732
+ * @public
6733
+ */
6734
+ RequestId?: string | undefined;
6735
+ /**
6736
+ * <p>The name of the AI bot that made the payment.</p>
6737
+ * @public
6738
+ */
6739
+ SourceName?: string | undefined;
6740
+ /**
6741
+ * <p>The organization associated with the AI bot.</p>
6742
+ * @public
6743
+ */
6744
+ Organization?: string | undefined;
6745
+ /**
6746
+ * <p>The category of the AI bot source.</p>
6747
+ * @public
6748
+ */
6749
+ SourceCategory?: string | undefined;
6750
+ /**
6751
+ * <p>The declared intent of the AI bot request.</p>
6752
+ * @public
6753
+ */
6754
+ Intent?: string | undefined;
6755
+ /**
6756
+ * <p>Whether the AI bot's identity was verified.</p>
6757
+ * @public
6758
+ */
6759
+ Verified?: boolean | undefined;
6760
+ /**
6761
+ * <p>The content path that was accessed.</p>
6762
+ * @public
6763
+ */
6764
+ ContentPath?: string | undefined;
6765
+ /**
6766
+ * <p>The ARN of the web ACL that processed the request.</p>
6767
+ * @public
6768
+ */
6769
+ WebAclArn?: string | undefined;
6770
+ /**
6771
+ * <p>The timestamp of the original web request.</p>
6772
+ * @public
6773
+ */
6774
+ RequestTimestamp?: Date | undefined;
6775
+ }
6776
+ /**
6777
+ * @public
6778
+ */
6779
+ export interface ListSettlementRecordsResponse {
6780
+ /**
6781
+ * <p>The list of settlement records.</p>
6782
+ * @public
6783
+ */
6784
+ Settlements?: SettlementRecord[] | undefined;
6785
+ /**
6786
+ * <p>When you get a paginated response, this marker indicates that additional results are available.</p>
6787
+ * @public
6788
+ */
6789
+ NextMarker?: string | undefined;
6790
+ }
6092
6791
  /**
6093
6792
  * @public
6094
6793
  */
@@ -7333,6 +8032,11 @@ export interface CreateRuleGroupRequest {
7333
8032
  * @public
7334
8033
  */
7335
8034
  CustomResponseBodies?: Record<string, CustomResponseBody> | undefined;
8035
+ /**
8036
+ * <p>The monetization configuration for the rule group. Provide this when any rule in the rule group uses the <code>Monetize</code> action.</p>
8037
+ * @public
8038
+ */
8039
+ MonetizationConfig?: MonetizationConfig | undefined;
7336
8040
  }
7337
8041
  /**
7338
8042
  * @public
@@ -7443,6 +8147,11 @@ export interface CreateWebACLRequest {
7443
8147
  * @public
7444
8148
  */
7445
8149
  ApplicationConfig?: ApplicationConfig | undefined;
8150
+ /**
8151
+ * <p>The monetization configuration for the web ACL. Provide this when any rule in the web ACL uses the <code>Monetize</code> action.</p>
8152
+ * @public
8153
+ */
8154
+ MonetizationConfig?: MonetizationConfig | undefined;
7446
8155
  }
7447
8156
  /**
7448
8157
  * <p> A rule group defines a collection of rules to inspect and control web requests that you can use in a <a>WebACL</a>. When you create a rule group, you define an immutable capacity limit. If you update a rule group, you must stay within the capacity. This allows others to reuse the rule group with confidence in its capacity requirements. </p>
@@ -7537,6 +8246,11 @@ export interface RuleGroup {
7537
8246
  * @public
7538
8247
  */
7539
8248
  ConsumedLabels?: LabelSummary[] | undefined;
8249
+ /**
8250
+ * <p>The monetization configuration for the rule group. Required when any rule in the rule group uses the <code>Monetize</code> action. When a rule group with a <code>MonetizationConfig</code> is used in a web ACL, the rule group's configuration applies to rules within that group unless overridden at the web ACL level.</p>
8251
+ * @public
8252
+ */
8253
+ MonetizationConfig?: MonetizationConfig | undefined;
7540
8254
  }
7541
8255
  /**
7542
8256
  * @public
@@ -7599,6 +8313,11 @@ export interface UpdateRuleGroupRequest {
7599
8313
  * @public
7600
8314
  */
7601
8315
  CustomResponseBodies?: Record<string, CustomResponseBody> | undefined;
8316
+ /**
8317
+ * <p>The monetization configuration for the rule group. Provide this when any rule in the rule group uses the <code>Monetize</code> action.</p>
8318
+ * @public
8319
+ */
8320
+ MonetizationConfig?: MonetizationConfig | undefined;
7602
8321
  }
7603
8322
  /**
7604
8323
  * @public
@@ -7724,6 +8443,11 @@ export interface UpdateWebACLRequest {
7724
8443
  * @public
7725
8444
  */
7726
8445
  ApplicationConfig?: ApplicationConfig | undefined;
8446
+ /**
8447
+ * <p>The monetization configuration for the web ACL. Provide this when any rule in the web ACL uses the <code>Monetize</code> action.</p>
8448
+ * @public
8449
+ */
8450
+ MonetizationConfig?: MonetizationConfig | undefined;
7727
8451
  }
7728
8452
  /**
7729
8453
  * @public
@@ -7908,6 +8632,11 @@ export interface WebACL {
7908
8632
  * @public
7909
8633
  */
7910
8634
  ApplicationConfig?: ApplicationConfig | undefined;
8635
+ /**
8636
+ * <p>The monetization configuration for the web ACL. Required when any rule in the web ACL uses the <code>Monetize</code> action. Specifies the cryptocurrency payment networks and currency mode for AI bot monetization.</p>
8637
+ * @public
8638
+ */
8639
+ MonetizationConfig?: MonetizationConfig | undefined;
7911
8640
  }
7912
8641
  /**
7913
8642
  * @public