Class AsyncIntercomBuilder


  • public class AsyncIntercomBuilder
    extends java.lang.Object
    • Constructor Detail

      • AsyncIntercomBuilder

        public AsyncIntercomBuilder()
    • Method Detail

      • token

        public AsyncIntercomBuilder token​(java.lang.String token)
        Sets token. Defaults to the INTERCOM_API_KEY environment variable.
      • timeout

        public AsyncIntercomBuilder timeout​(int timeout)
        Sets the timeout (in seconds) for the client. Defaults to 60 seconds.
      • maxRetries

        public AsyncIntercomBuilder maxRetries​(int maxRetries)
        Sets the maximum number of retries for the client. Defaults to 2 retries.
      • httpClient

        public AsyncIntercomBuilder httpClient​(okhttp3.OkHttpClient httpClient)
        Sets the underlying OkHttp client
      • addHeader

        public AsyncIntercomBuilder addHeader​(java.lang.String name,
                                              java.lang.String value)
        Add a custom header to be sent with all requests. For headers that need to be computed dynamically or conditionally, use the setAdditional() method override instead.
        Parameters:
        name - The header name
        value - The header value
        Returns:
        This builder for method chaining
      • buildClientOptions

        protected ClientOptions buildClientOptions()
      • setEnvironment

        protected void setEnvironment​(ClientOptions.Builder builder)
        Sets the environment configuration for the client. Override this method to modify URLs or add environment-specific logic.
        Parameters:
        builder - The ClientOptions.Builder to configure
      • setAuthentication

        protected void setAuthentication​(ClientOptions.Builder builder)
        Override this method to customize authentication. This method is called during client options construction to set up authentication headers.
        Parameters:
        builder - The ClientOptions.Builder to configure Example:
        
         @Override
         protected void setAuthentication(ClientOptions.Builder builder) {
             super.setAuthentication(builder); // Keep existing auth
             builder.addHeader("X-API-Key", this.apiKey);
         }
         
      • setTimeouts

        protected void setTimeouts​(ClientOptions.Builder builder)
        Sets the request timeout configuration. Override this method to customize timeout behavior.
        Parameters:
        builder - The ClientOptions.Builder to configure
      • setRetries

        protected void setRetries​(ClientOptions.Builder builder)
        Sets the retry configuration for failed requests. Override this method to implement custom retry strategies.
        Parameters:
        builder - The ClientOptions.Builder to configure
      • setHttpClient

        protected void setHttpClient​(ClientOptions.Builder builder)
        Sets the OkHttp client configuration. Override this method to customize HTTP client behavior (interceptors, connection pools, etc).
        Parameters:
        builder - The ClientOptions.Builder to configure
      • setAdditional

        protected void setAdditional​(ClientOptions.Builder builder)
        Override this method to add any additional configuration to the client. This method is called at the end of the configuration chain, allowing you to add custom headers, modify settings, or perform any other client customization.
        Parameters:
        builder - The ClientOptions.Builder to configure Example:
        
         @Override
         protected void setAdditional(ClientOptions.Builder builder) {
             builder.addHeader("X-Request-ID", () -> UUID.randomUUID().toString());
             builder.addHeader("X-Client-Version", "1.0.0");
         }
         
      • validateConfiguration

        protected void validateConfiguration()
        Override this method to add custom validation logic before the client is built. This method is called at the beginning of the build() method to ensure the configuration is valid. Throw an exception to prevent client creation if validation fails. Example:
        
         @Override
         protected void validateConfiguration() {
             super.validateConfiguration(); // Run parent validations
             if (tenantId == null || tenantId.isEmpty()) {
                 throw new IllegalStateException("tenantId is required");
             }
         }