class DefaultOpenShiftClient extends NamespacedOpenShiftClientAdapter {

  public static final String OPENSHIFT_VERSION_ENDPOINT = "version/openshift";

  public DefaultOpenShiftClient() {
    this(new OpenShiftConfigBuilder().build());
  }

  public DefaultOpenShiftClient(String masterUrl) {
    this(new OpenShiftConfigBuilder().withMasterUrl(masterUrl).build());
  }

  public DefaultOpenShiftClient(final Config config) {
    this(new OpenShiftConfig(config));
  }

  public DefaultOpenShiftClient(final OpenShiftConfig config) {
    this(HttpClientUtils.createHttpClient(config), config);
  }

  public DefaultOpenShiftClient(HttpClient httpClient, OpenShiftConfig config) {
    // basically copied from DefaultKubernetesClient to avoid creating another public method
    KubernetesClientBuilder builder = new KubernetesClientBuilder().withConfig(config);
    if (httpClient != null) {
      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>() ,public NonNamespaceOperation<APIRequestCount,APIRequestCountList,Resource<APIRequestCount>> apiRequestCounts() ,public MixedOperation<BareMetalHost,BareMetalHostList,Resource<BareMetalHost>> bareMetalHosts() ,public NonNamespaceOperation<BrokerTemplateInstance,BrokerTemplateInstanceList,Resource<BrokerTemplateInstance>> brokerTemplateInstances() ,public MixedOperation<BuildConfig,BuildConfigList,BuildConfigResource<BuildConfig,java.lang.Void,Build>> buildConfigs() ,public MixedOperation<Build,BuildList,io.fabric8.openshift.client.dsl.BuildResource> builds() ,public io.fabric8.openshift.client.dsl.OpenShiftClusterAutoscalingAPIGroupDSL clusterAutoscaling() ,public NonNamespaceOperation<ClusterNetwork,ClusterNetworkList,Resource<ClusterNetwork>> clusterNetworks() ,public MixedOperation<ClusterRoleBinding,ClusterRoleBindingList,Resource<ClusterRoleBinding>> clusterRoleBindings() ,public NonNamespaceOperation<ClusterRole,ClusterRoleList,Resource<ClusterRole>> clusterRoles() ,public NonNamespaceOperation<ComponentStatus,ComponentStatusList,Resource<ComponentStatus>> componentstatuses() ,public io.fabric8.openshift.client.dsl.OpenShiftConfigAPIGroupDSL config() ,public io.fabric8.openshift.client.dsl.OpenShiftConsoleAPIGroupDSL console() ,public MixedOperation<CredentialsRequest,CredentialsRequestList,Resource<CredentialsRequest>> credentialsRequests() ,public User currentUser() ,public MixedOperation<DeploymentConfig,DeploymentConfigList,DeployableScalableResource<DeploymentConfig>> deploymentConfigs() ,public MixedOperation<EgressNetworkPolicy,EgressNetworkPolicyList,Resource<EgressNetworkPolicy>> egressNetworkPolicies() ,public MixedOperation<EgressRouter,EgressRouterList,Resource<EgressRouter>> egressRouters() ,public io.fabric8.kubernetes.client.VersionInfo getOpenShiftV3Version() ,public java.lang.String getOpenShiftV4Version() ,public java.net.URL getOpenshiftUrl() ,public NonNamespaceOperation<Group,GroupList,Resource<Group>> groups() ,public NonNamespaceOperation<HelmChartRepository,HelmChartRepositoryList,Resource<HelmChartRepository>> helmChartRepositories() ,public io.fabric8.openshift.client.dsl.OpenShiftHiveAPIGroupDSL hive() ,public NonNamespaceOperation<HostSubnet,HostSubnetList,Resource<HostSubnet>> hostSubnets() ,public NonNamespaceOperation<Identity,IdentityList,Resource<Identity>> identities() ,public NonNamespaceOperation<io.fabric8.openshift.api.model.miscellaneous.imageregistry.operator.v1.Config,ConfigList,Resource<io.fabric8.openshift.api.model.miscellaneous.imageregistry.operator.v1.Config>> imageRegistryOperatorConfigs() ,public io.fabric8.openshift.client.dsl.NameableCreateOrDeleteable imageSignatures() ,public Namespaceable<Nameable<? extends Gettable<ImageStreamImage>>> imageStreamImages() ,public NamespacedInOutCreateable<ImageStreamImport,ImageStreamImport> imageStreamImports() ,public NamespacedInOutCreateable<ImageStreamMapping,ImageStreamMapping> imageStreamMappings() ,public MixedOperation<ImageStreamTag,ImageStreamTagList,Resource<ImageStreamTag>> imageStreamTags() ,public MixedOperation<ImageStream,ImageStreamList,Resource<ImageStream>> imageStreams() ,public MixedOperation<ImageTag,ImageTagList,Resource<ImageTag>> imageTags() ,public NonNamespaceOperation<Image,ImageList,Resource<Image>> images() ,public io.fabric8.openshift.client.NamespacedOpenShiftClientAdapter inAnyNamespace() ,public io.fabric8.openshift.client.NamespacedOpenShiftClientAdapter inNamespace(java.lang.String) ,public boolean isSupported() ,public io.fabric8.openshift.client.dsl.OpenShiftStorageVersionMigratorApiGroupDSL kubeStorageVersionMigrator() ,public NamespacedInOutCreateable<LocalResourceAccessReview,ResourceAccessReviewResponse> localResourceAccessReviews() ,public NamespacedInOutCreateable<LocalSubjectAccessReview,SubjectAccessReviewResponse> localSubjectAccessReviews() ,public io.fabric8.openshift.client.dsl.OpenShiftMachineAPIGroupDSL machine() ,public io.fabric8.openshift.client.dsl.MachineConfigurationAPIGroupDSL machineConfigurations() ,public MixedOperation<Metal3RemediationTemplate,Metal3RemediationTemplateList,Resource<Metal3RemediationTemplate>> metal3RemediationTemplates() ,public MixedOperation<Metal3Remediation,Metal3RemediationList,Resource<Metal3Remediation>> metal3Remediations() ,public io.fabric8.openshift.client.dsl.OpenShiftMonitoringAPIGroupDSL monitoring() ,public NonNamespaceOperation<NetNamespace,NetNamespaceList,Resource<NetNamespace>> netNamespaces() ,public MixedOperation<NetworkAttachmentDefinition,NetworkAttachmentDefinitionList,Resource<NetworkAttachmentDefinition>> networkAttachmentDefinitions() ,public io.fabric8.openshift.client.NamespacedOpenShiftClientAdapter newInstance() ,public NonNamespaceOperation<OAuthAccessToken,OAuthAccessTokenList,Resource<OAuthAccessToken>> oAuthAccessTokens() ,public NonNamespaceOperation<OAuthAuthorizeToken,OAuthAuthorizeTokenList,Resource<OAuthAuthorizeToken>> oAuthAuthorizeTokens() ,public NonNamespaceOperation<OAuthClientAuthorization,OAuthClientAuthorizationList,Resource<OAuthClientAuthorization>> oAuthClientAuthorizations() ,public NonNamespaceOperation<OAuthClient,OAuthClientList,Resource<OAuthClient>> oAuthClients() ,public io.fabric8.openshift.client.dsl.OpenShiftOperatorAPIGroupDSL operator() ,public io.fabric8.openshift.client.dsl.OpenShiftOperatorHubAPIGroupDSL operatorHub() ,public MixedOperation<OperatorPKI,OperatorPKIList,Resource<OperatorPKI>> operatorPKIs() ,public NamespacedInOutCreateable<PodSecurityPolicyReview,PodSecurityPolicyReview> podSecurityPolicyReviews() ,public NamespacedInOutCreateable<PodSecurityPolicySelfSubjectReview,PodSecurityPolicySelfSubjectReview> podSecurityPolicySelfSubjectReviews() ,public NamespacedInOutCreateable<PodSecurityPolicySubjectReview,PodSecurityPolicySubjectReview> podSecurityPolicySubjectReviews() ,public MixedOperation<ProjectHelmChartRepository,ProjectHelmChartRepositoryList,Resource<ProjectHelmChartRepository>> projectHelmChartRepositories() ,public io.fabric8.openshift.client.dsl.ProjectRequestOperation projectrequests() ,public io.fabric8.openshift.client.dsl.ProjectOperation projects() ,public io.fabric8.openshift.client.dsl.OpenShiftQuotaAPIGroupDSL quotas() ,public NonNamespaceOperation<RangeAllocation,RangeAllocationList,Resource<RangeAllocation>> rangeAllocations() ,public InOutCreateable<ResourceAccessReview,ResourceAccessReviewResponse> resourceAccessReviews() ,public MixedOperation<RoleBindingRestriction,RoleBindingRestrictionList,Resource<RoleBindingRestriction>> roleBindingRestrictions() ,public MixedOperation<RoleBinding,RoleBindingList,Resource<RoleBinding>> roleBindings() ,public MixedOperation<Role,RoleList,Resource<Role>> roles() ,public MixedOperation<Route,RouteList,Resource<Route>> routes() ,public NonNamespaceOperation<SecurityContextConstraints,SecurityContextConstraintsList,Resource<SecurityContextConstraints>> securityContextConstraints() ,public NamespacedInOutCreateable<SelfSubjectRulesReview,SelfSubjectRulesReview> selfSubjectRulesReviews() ,public InOutCreateable<SubjectAccessReview,SubjectAccessReviewResponse> subjectAccessReviews() ,public NamespacedInOutCreateable<SubjectRulesReview,SubjectRulesReview> subjectRulesReviews() ,public boolean supportsOpenShiftAPIGroup(java.lang.String) ,public MixedOperation<TemplateInstance,TemplateInstanceList,Resource<TemplateInstance>> templateInstances() ,public ParameterMixedOperation<Template,TemplateList,io.fabric8.openshift.client.dsl.TemplateResource> templates() ,public io.fabric8.openshift.client.dsl.OpenShiftTunedAPIGroupDSL tuned() ,public InOutCreateable<UserIdentityMapping,UserIdentityMapping> userIdentityMappings() ,public NonNamespaceOperation<UserOAuthAccessToken,UserOAuthAccessTokenList,Resource<UserOAuthAccessToken>> userOAuthAccessTokens() ,public NonNamespaceOperation<User,UserList,Resource<User>> users() ,public io.fabric8.openshift.client.dsl.OpenShiftWhereaboutsAPIGroupDSL whereabouts() ,public FunctionCallable<io.fabric8.openshift.client.NamespacedOpenShiftClient> withRequestConfig(io.fabric8.kubernetes.client.RequestConfig) <variables>