Class ApiLoaderConfig.Builder

java.lang.Object
io.gorules.zen.loader.ApiLoaderConfig.Builder
Enclosing class:
ApiLoaderConfig

public static class ApiLoaderConfig.Builder extends Object
Builder for ApiLoaderConfig with flexible header configuration.
  • Method Details

    • header

      public ApiLoaderConfig.Builder header(String name, String value)
      Add a single HTTP header. Can be called multiple times to add multiple headers.
      Parameters:
      name - Header name (e.g., "Authorization", "X-API-Key")
      value - Header value
      Returns:
      this builder
    • headers

      public ApiLoaderConfig.Builder headers(Map<String,String> headers)
      Add multiple headers at once from a Map.
      Parameters:
      headers - Map of header names to values
      Returns:
      this builder
    • bearerToken

      public ApiLoaderConfig.Builder bearerToken(String token)
      Add Bearer token authorization header. Convenience method for: header("Authorization", "Bearer " + token)
      Parameters:
      token - Bearer token
      Returns:
      this builder
    • basicAuth

      public ApiLoaderConfig.Builder basicAuth(String username, String password)
      Add Basic authentication header. Convenience method for: header("Authorization", "Basic " + base64(username:password))
      Parameters:
      username - Username
      password - Password
      Returns:
      this builder
    • headerProvider

      public ApiLoaderConfig.Builder headerProvider(HeaderProvider provider)
      Set a provider for dynamic headers that are computed per request. Useful for headers that change per request like timestamps, request IDs, etc.
      Parameters:
      provider - HeaderProvider instance
      Returns:
      this builder
    • timeout

      public ApiLoaderConfig.Builder timeout(Duration timeout)
      Set request timeout.
      Parameters:
      timeout - Timeout duration (default: 30 seconds)
      Returns:
      this builder
    • maxRetries

      public ApiLoaderConfig.Builder maxRetries(int maxRetries)
      Set maximum number of retry attempts for failed requests.
      Parameters:
      maxRetries - Maximum retries (default: 3)
      Returns:
      this builder
    • retryDelay

      public ApiLoaderConfig.Builder retryDelay(Duration retryDelay)
      Set delay between retry attempts.
      Parameters:
      retryDelay - Delay duration (default: 1 second)
      Returns:
      this builder
    • caching

      public ApiLoaderConfig.Builder caching(boolean enable)
      Enable or disable caching of loaded decisions.
      Parameters:
      enable - true to enable caching (default: true)
      Returns:
      this builder
    • cacheTtl

      public ApiLoaderConfig.Builder cacheTtl(Duration ttl)
      Set cache TTL (time to live). Entries will be automatically expired after this duration from write.
      Parameters:
      ttl - Cache TTL duration (default: 5 minutes)
      Returns:
      this builder
    • cacheMaxSize

      public ApiLoaderConfig.Builder cacheMaxSize(long maxSize)
      Set maximum cache size (number of entries).
      Parameters:
      maxSize - Maximum number of entries (default: 10000)
      Returns:
      this builder
    • cacheMaxMemoryMb

      public ApiLoaderConfig.Builder cacheMaxMemoryMb(long maxMemoryMb)
      Set maximum cache memory in MB. Cache will evict entries when memory limit is reached.
      Parameters:
      maxMemoryMb - Maximum memory in MB (default: 100)
      Returns:
      this builder
    • cacheEvictionPolicy

      public ApiLoaderConfig.Builder cacheEvictionPolicy(ApiLoaderConfig.CacheEvictionPolicy policy)
      Set cache eviction policy.
      Parameters:
      policy - Eviction policy (default: LRU)
      Returns:
      this builder
    • build

      public ApiLoaderConfig build()
      Build the ApiLoaderConfig.
      Returns:
      ApiLoaderConfig instance