Class MonetizationFilter

java.lang.Object
software.amazon.awssdk.services.wafv2.model.MonetizationFilter
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<MonetizationFilter.Builder,MonetizationFilter>

@Generated("software.amazon.awssdk:codegen") public final class MonetizationFilter extends Object implements SdkPojo, Serializable, ToCopyableBuilder<MonetizationFilter.Builder,MonetizationFilter>

A filter for narrowing monetization statistics and settlement record results. Specify a filter name and one or more values to match.

Filter behavior:

  • Multiple values within one filter: OR (match any)

  • Multiple filters: AND (all must match)

  • No duplicate filter names allowed (rejected with error)

  • Duplicate values within a filter are silently deduplicated

  • If no CurrencyMode filter is specified, defaults to REAL

See Also:
  • Method Details

    • name

      public final String name()

      The filter name. Format: Key is a string, Value is a list of strings.

      Enum-restricted (invalid values rejected):

      • CurrencyMode: REAL, TEST

      • ChainName: BASE, SOLANA, BASE_SEPOLIA, SOLANA_DEVNET

      • SettlementStatus: SETTLED, PENDING, FAILED, SERVICE_ERROR, SKIPPED_ORIGIN_ERROR, DUPLICATE

      • HttpSourceName: CF, ALB, APIGW, APPRUNNER, COGNITO, VERIFIED_ACCESS

      ARN-validated:

      • WebACLArn: valid WAFv2 web ACL ARN

      Free-text (any string up to 256 chars):

      • SourceName: The name of the bot. Populated from Bot Control verified bot labels.

      • SourceCategory: The category classification of the bot. From Bot Control categorization.

      • Intent: The declared intent of the bot request.

      • Organization: The organization operating the bot.

      • UriPathPrefix: The URI path of the request that was monetized.

      • RequestId: The WAF request ID associated with the transaction. Matches the requestId in WAF logs. Pattern: ^[a-zA-Z0-9:._\-=+/]+$

      • TransactionId: The blockchain transaction identifier. Pattern: ^[a-zA-Z0-9:._\-=+/]+$

      • TerminatingRuleName: The name of the WAF rule that triggered the Monetize action.

      • PayerAddress: The blockchain wallet address of the paying client. Pattern: ^[a-zA-Z0-9:._\-=+/]+$

      • HttpSourceId: The identifier of the Amazon Web Services resource associated with the web ACL (for example, CloudFront distribution ID).

      Returns:
      The filter name. Format: Key is a string, Value is a list of strings.

      Enum-restricted (invalid values rejected):

      • CurrencyMode: REAL, TEST

      • ChainName: BASE, SOLANA, BASE_SEPOLIA, SOLANA_DEVNET

      • SettlementStatus: SETTLED, PENDING, FAILED, SERVICE_ERROR, SKIPPED_ORIGIN_ERROR, DUPLICATE

      • HttpSourceName: CF, ALB, APIGW, APPRUNNER, COGNITO, VERIFIED_ACCESS

      ARN-validated:

      • WebACLArn: valid WAFv2 web ACL ARN

      Free-text (any string up to 256 chars):

      • SourceName: The name of the bot. Populated from Bot Control verified bot labels.

      • SourceCategory: The category classification of the bot. From Bot Control categorization.

      • Intent: The declared intent of the bot request.

      • Organization: The organization operating the bot.

      • UriPathPrefix: The URI path of the request that was monetized.

      • RequestId: The WAF request ID associated with the transaction. Matches the requestId in WAF logs. Pattern: ^[a-zA-Z0-9:._\-=+/]+$

      • TransactionId: The blockchain transaction identifier. Pattern: ^[a-zA-Z0-9:._\-=+/]+$

      • TerminatingRuleName: The name of the WAF rule that triggered the Monetize action.

      • PayerAddress: The blockchain wallet address of the paying client. Pattern: ^[a-zA-Z0-9:._\-=+/]+$

      • HttpSourceId: The identifier of the Amazon Web Services resource associated with the web ACL (for example, CloudFront distribution ID).

    • hasValues

      public final boolean hasValues()
      For responses, this returns true if the service returned a value for the Values property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • values

      public final List<String> values()

      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.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasValues() method.

      Returns:
      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.
    • toBuilder

      public MonetizationFilter.Builder toBuilder()
      Specified by:
      toBuilder in interface ToCopyableBuilder<MonetizationFilter.Builder,MonetizationFilter>
    • builder

      public static MonetizationFilter.Builder builder()
    • serializableBuilderClass

      public static Class<? extends MonetizationFilter.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Specified by:
      equalsBySdkFields in interface SdkPojo
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
    • sdkFieldNameToField

      public final Map<String,SdkField<?>> sdkFieldNameToField()
      Specified by:
      sdkFieldNameToField in interface SdkPojo