class JdkHttpClientBuilderImpl
    extends StandardHttpClientBuilder<JdkHttpClientImpl, JdkHttpClientFactory, JdkHttpClientBuilderImpl> {

  public JdkHttpClientBuilderImpl(JdkHttpClientFactory factory) {
    super(factory);
  }

  @Override
  public HttpClient build() {<FILL_FUNCTION_BODY>}

  @Override
  protected JdkHttpClientBuilderImpl newInstance(JdkHttpClientFactory clientFactory) {
    return new JdkHttpClientBuilderImpl(clientFactory);
  }

}

    if (client != null) {
      return new JdkHttpClientImpl(this, client.getHttpClient(), client.getClosed());
    }
    java.net.http.HttpClient.Builder builder = clientFactory.createNewHttpClientBuilder();
    if (connectTimeout != null && !java.time.Duration.ZERO.equals(connectTimeout)) {
      builder.connectTimeout(connectTimeout);
    }
    if (sslContext != null) {
      builder.sslContext(sslContext);
    }
    if (followRedirects) {
      builder.followRedirects(Redirect.ALWAYS);
    }
    if (proxyType == HttpClient.ProxyType.DIRECT) {
      builder.proxy(java.net.http.HttpClient.Builder.NO_PROXY);
    } else if (proxyAddress != null) {
      if (proxyType != HttpClient.ProxyType.HTTP) {
        // https://bugs.openjdk.org/browse/JDK-8214516
        throw new KubernetesClientException("JDK HttpClient only support HTTP proxies");
      }
      builder.proxy(ProxySelector.of(proxyAddress));
      addProxyAuthInterceptor();
    }
    if (preferHttp11) {
      builder.version(Version.HTTP_1_1);
    }
    if (tlsVersions != null && tlsVersions.length > 0) {
      builder.sslParameters(new SSLParameters(null,
          Arrays.asList(tlsVersions).stream().map(TlsVersion::javaName).toArray(String[]::new)));
    }
    clientFactory.additionalConfig(builder);
    return new JdkHttpClientImpl(this, builder.build(), new AtomicBoolean());
  
<methods>public io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientBuilderImpl addOrReplaceInterceptor(java.lang.String, io.fabric8.kubernetes.client.http.Interceptor) ,public io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientBuilderImpl authenticatorNone() ,public io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientBuilderImpl clientFactory(io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientFactory) ,public io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientBuilderImpl connectTimeout(long, java.util.concurrent.TimeUnit) ,public io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientBuilderImpl copy(io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientImpl) ,public io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientBuilderImpl followAllRedirects() ,public io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientBuilderImpl preferHttp11() ,public io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientBuilderImpl proxyAddress(java.net.InetSocketAddress) ,public io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientBuilderImpl proxyAuthorization(java.lang.String) ,public io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientBuilderImpl proxyType(io.fabric8.kubernetes.client.http.HttpClient.ProxyType) ,public io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientBuilderImpl sslContext(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[]) ,public io.fabric8.kubernetes.client.http.HttpClient.DerivedClientBuilder tag(java.lang.Object) ,public transient io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientBuilderImpl tlsVersions(io.fabric8.kubernetes.client.http.TlsVersion[]) <variables>protected boolean authenticatorNone,protected io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientImpl client,protected io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientFactory clientFactory,protected java.time.Duration connectTimeout,protected boolean followRedirects,protected LinkedHashMap<java.lang.String,io.fabric8.kubernetes.client.http.Interceptor> interceptors,protected javax.net.ssl.KeyManager[] keyManagers,protected boolean preferHttp11,protected java.net.InetSocketAddress proxyAddress,protected java.lang.String proxyAuthorization,protected io.fabric8.kubernetes.client.http.HttpClient.ProxyType proxyType,protected javax.net.ssl.SSLContext sslContext,protected LinkedHashMap<Class<?>,java.lang.Object> tags,protected io.fabric8.kubernetes.client.http.TlsVersion[] tlsVersions,protected javax.net.ssl.TrustManager[] trustManagers