Interface SdkClientBuilder<B extends SdkClientBuilder<B,​C>,​C>

  • Type Parameters:
    B - The type of builder that should be returned by the fluent builder methods in this interface.
    C - The type of client generated by this builder.
    All Superinterfaces:
    Buildable, SdkBuilder<B,​C>
    All Known Implementing Classes:
    SdkDefaultClientBuilder

    @SdkPublicApi
    public interface SdkClientBuilder<B extends SdkClientBuilder<B,​C>,​C>
    extends SdkBuilder<B,​C>
    This includes required and optional override configuration required by every client builder. An instance can be acquired by calling the static "builder" method on the type of client you wish to create.

    Implementations of this interface are mutable and not thread-safe.

    • Method Detail

      • overrideConfiguration

        B overrideConfiguration​(ClientOverrideConfiguration overrideConfiguration)
        Specify overrides to the default SDK configuration that should be used for clients created by this builder.
      • endpointOverride

        B endpointOverride​(URI endpointOverride)
        Configure the endpoint with which the SDK should communicate.

        It is important to know that EndpointProviders and the endpoint override on the client are not mutually exclusive. In all existing cases, the endpoint override is passed as a parameter to the provider and the provider *may* modify it. For example, the S3 provider may add the bucket name as a prefix to the endpoint override for virtual bucket addressing.

      • putAuthScheme

        default B putAuthScheme​(AuthScheme<?> authScheme)
        Configure this client with an additional auth scheme, or replace one already on the client.

        By default, the SDK will only know about default auth schemes that ship with the service. If you want to modify those existing auth schemes or add a custom one (you select with a custom auth scheme resolver), you can add that new auth scheme with this method.

      • addPlugin

        default B addPlugin​(SdkPlugin plugin)
        Adds a plugin to the client builder that will modify the client configuration when the client is built.

        Plugins are invoked after all default configuration is applied, allowing them to override SDK defaults. Multiple plugins can be added and are executed in the order they were added. The configuration changes made by plugins apply to all requests made by the built client.

        Important: Plugin settings have the highest precedence and will override any configuration set directly on the client builder (e.g., via overrideConfiguration()).

        Example:

        Parameters:
        plugin - the plugin to add
        Returns:
        this builder for method chaining
        See Also:
        SdkPlugin
      • plugins

        default List<SdkPlugin> plugins()
        Returns the list of plugins configured on the client builder.