class DefaultKubernetesClient extends NamespacedKubernetesClientAdapter<NamespacedKubernetesClient> {

  public static final String KUBERNETES_VERSION_ENDPOINT = "version";

  public DefaultKubernetesClient() {
    this(new ConfigBuilder().build());
  }

  public DefaultKubernetesClient(String masterUrl) {
    this(new ConfigBuilder().withMasterUrl(masterUrl).build());
  }

  public DefaultKubernetesClient(Config config) {
    this(HttpClientUtils.createHttpClient(config), config);
  }

  public DefaultKubernetesClient(HttpClient httpClient, Config config) {
    this(httpClient, config, null);
  }

  public DefaultKubernetesClient(HttpClient httpClient, Config config, ExecutorSupplier executorSupplier) {
    super(NamespacedKubernetesClient.class);
    KubernetesClientBuilder builder = new KubernetesClientBuilder().withConfig(config)
        .withTaskExecutorSupplier(executorSupplier);
    if (httpClient != null) {
      // this reads a little oddly, but it supplies the given HttpClient via the factory.
      // no further configuration is performed
      // an alternative would be to add back a factory method that returns the client, or to allow the HttpClient to be set directly on the KubernetesClientBuilder
      builder.withHttpClientFactory(new Factory() {

        @Override
        public Builder newBuilder() {
          throw new UnsupportedOperationException();
        }

        @Override
        public Builder newBuilder(Config config) {<FILL_FUNCTION_BODY>}

      });
    }
    this.init(builder.build());
  }

}

          return new StandardHttpClientBuilder<HttpClient, HttpClient.Factory, StandardHttpClientBuilder<HttpClient, HttpClient.Factory, ?>>(
              null) {

            @Override
            public HttpClient build() {
              return httpClient;
            }

            @Override
            protected StandardHttpClientBuilder<HttpClient, HttpClient.Factory, StandardHttpClientBuilder<HttpClient, HttpClient.Factory, ?>> newInstance(
                Factory clientFactory) {
              return null;
            }
          };
        
<methods>public void <init>(Class<io.fabric8.kubernetes.client.NamespacedKubernetesClient>) ,public io.fabric8.kubernetes.client.AdmissionRegistrationAPIGroupDSL admissionRegistration() ,public NonNamespaceOperation<APIService,APIServiceList,Resource<APIService>> apiServices() ,public io.fabric8.kubernetes.client.dsl.ApiextensionsAPIGroupDSL apiextensions() ,public io.fabric8.kubernetes.client.dsl.AppsAPIGroupDSL apps() ,public io.fabric8.kubernetes.client.dsl.AuthenticationAPIGroupDSL authentication() ,public io.fabric8.kubernetes.client.dsl.AuthorizationAPIGroupDSL authorization() ,public io.fabric8.kubernetes.client.dsl.AutoscalingAPIGroupDSL autoscaling() ,public io.fabric8.kubernetes.client.dsl.BatchAPIGroupDSL batch() ,public MixedOperation<Binding,KubernetesResourceList<Binding>,Resource<Binding>> bindings() ,public NonNamespaceOperation<CertificateSigningRequest,CertificateSigningRequestList,Resource<CertificateSigningRequest>> certificateSigningRequests() ,public io.fabric8.kubernetes.client.dsl.CertificatesAPIGroupDSL certificates() ,public NonNamespaceOperation<ComponentStatus,ComponentStatusList,Resource<ComponentStatus>> componentstatuses() ,public MixedOperation<ConfigMap,ConfigMapList,Resource<ConfigMap>> configMaps() ,public io.fabric8.kubernetes.client.dsl.DiscoveryAPIGroupDSL discovery() ,public io.fabric8.kubernetes.client.dsl.DynamicResourceAllocationAPIGroupDSL dynamicResourceAllocation() ,public MixedOperation<Endpoints,EndpointsList,Resource<Endpoints>> endpoints() ,public io.fabric8.kubernetes.client.dsl.EventingAPIGroupDSL events() ,public io.fabric8.kubernetes.client.dsl.ExtensionsAPIGroupDSL extensions() ,public io.fabric8.kubernetes.client.dsl.FlowControlAPIGroupDSL flowControl() ,public MixedOperation<io.fabric8.kubernetes.api.model.GenericKubernetesResource,io.fabric8.kubernetes.api.model.GenericKubernetesResourceList,Resource<io.fabric8.kubernetes.api.model.GenericKubernetesResource>> genericKubernetesResources(io.fabric8.kubernetes.client.dsl.base.ResourceDefinitionContext) ,public MixedOperation<io.fabric8.kubernetes.api.model.GenericKubernetesResource,io.fabric8.kubernetes.api.model.GenericKubernetesResourceList,Resource<io.fabric8.kubernetes.api.model.GenericKubernetesResource>> genericKubernetesResources(java.lang.String, java.lang.String) ,public io.fabric8.kubernetes.client.NamespacedKubernetesClient getClient() ,public io.fabric8.kubernetes.client.utils.KubernetesSerialization getKubernetesSerialization() ,public io.fabric8.kubernetes.client.VersionInfo getKubernetesVersion() ,public io.fabric8.kubernetes.client.VersionInfo getVersion() ,public io.fabric8.kubernetes.client.informers.SharedInformerFactory informers() ,public io.fabric8.kubernetes.client.extended.leaderelection.LeaderElectorBuilder leaderElector() ,public MixedOperation<Lease,LeaseList,Resource<Lease>> leases() ,public MixedOperation<LimitRange,LimitRangeList,Resource<LimitRange>> limitRanges() ,public NamespaceListVisitFromServerGetDeleteRecreateWaitApplicable<io.fabric8.kubernetes.api.model.HasMetadata> load(java.io.InputStream) ,public NonNamespaceOperation<Namespace,NamespaceList,Resource<Namespace>> namespaces() ,public io.fabric8.kubernetes.client.dsl.NetworkAPIGroupDSL network() ,public io.fabric8.kubernetes.client.Client newClient(io.fabric8.kubernetes.client.RequestConfig) ,public NamespacedKubernetesClientAdapter<io.fabric8.kubernetes.client.NamespacedKubernetesClient> newInstance() ,public NonNamespaceOperation<Node,NodeList,Resource<Node>> nodes() ,public MixedOperation<PersistentVolumeClaim,PersistentVolumeClaimList,Resource<PersistentVolumeClaim>> persistentVolumeClaims() ,public NonNamespaceOperation<PersistentVolume,PersistentVolumeList,Resource<PersistentVolume>> persistentVolumes() ,public MixedOperation<Pod,PodList,io.fabric8.kubernetes.client.dsl.PodResource> pods() ,public io.fabric8.kubernetes.client.dsl.PolicyAPIGroupDSL policy() ,public java.lang.String raw(java.lang.String, java.lang.String, java.lang.Object) ,public io.fabric8.kubernetes.client.dsl.RbacAPIGroupDSL rbac() ,public MixedOperation<ReplicationController,ReplicationControllerList,RollableScalableResource<ReplicationController>> replicationControllers() ,public NamespaceableResource<T> resource(T) ,public NamespaceableResource<io.fabric8.kubernetes.api.model.HasMetadata> resource(java.lang.String) ,public NamespaceableResource<io.fabric8.kubernetes.api.model.HasMetadata> resource(java.io.InputStream) ,public NamespaceListVisitFromServerGetDeleteRecreateWaitApplicable<io.fabric8.kubernetes.api.model.HasMetadata> resourceList(java.lang.String) ,public NamespaceListVisitFromServerGetDeleteRecreateWaitApplicable<io.fabric8.kubernetes.api.model.HasMetadata> resourceList(KubernetesResourceList#RAW) ,public transient NamespaceListVisitFromServerGetDeleteRecreateWaitApplicable<io.fabric8.kubernetes.api.model.HasMetadata> resourceList(io.fabric8.kubernetes.api.model.HasMetadata[]) ,public NamespaceListVisitFromServerGetDeleteRecreateWaitApplicable<io.fabric8.kubernetes.api.model.HasMetadata> resourceList(Collection<? extends io.fabric8.kubernetes.api.model.HasMetadata>) ,public MixedOperation<ResourceQuota,ResourceQuotaList,Resource<ResourceQuota>> resourceQuotas() ,public MixedOperation<T,L,Resource<T>> resources(Class<T>, Class<L>) ,public MixedOperation<T,KubernetesResourceList<T>,Resource<T>> resources(Class<T>) ,public io.fabric8.kubernetes.client.extended.run.RunOperations run() ,public NonNamespaceOperation<RuntimeClass,RuntimeClassList,Resource<RuntimeClass>> runtimeClasses() ,public io.fabric8.kubernetes.client.dsl.SchedulingAPIGroupDSL scheduling() ,public MixedOperation<Secret,SecretList,Resource<Secret>> secrets() ,public MixedOperation<ServiceAccount,ServiceAccountList,io.fabric8.kubernetes.client.dsl.ServiceAccountResource> serviceAccounts() ,public MixedOperation<Service,ServiceList,ServiceResource<Service>> services() ,public io.fabric8.kubernetes.client.dsl.StorageAPIGroupDSL storage() ,public InOutCreateable<TokenReview,TokenReview> tokenReviews() ,public io.fabric8.kubernetes.client.dsl.MetricAPIGroupDSL top() ,public io.fabric8.kubernetes.client.dsl.V1APIGroupDSL v1() ,public void visitResources(io.fabric8.kubernetes.client.ApiVisitor) ,public FunctionCallable<? extends io.fabric8.kubernetes.client.NamespacedKubernetesClient> withRequestConfig(io.fabric8.kubernetes.client.RequestConfig) <variables>private Class<io.fabric8.kubernetes.client.NamespacedKubernetesClient> type