code: public static <T> T newDerivedClient(T client, Iterable<ClientOptionValue<?>> additionalOptions) {
          final ClientBuilderParams params = builderParams(client);
          final ClientBuilder builder = newDerivedBuilder(params);
          builder.options(additionalOptions);
  
          return newDerivedClient(builder, params.clientType());
      }
docs: Creates a new derived client that connects to the same {@link URI} with the specified {@code client}
  and the specified {@code additionalOptions}.
  
  @see ClientBuilder ClientBuilder, for more information about how the base options and
  additional options are merged when a derived client is created.