// Path: yet-another-docker-plugin/src/main/java/com/github/kostyasha/yad/other/ConnectorType.java
// public enum ConnectorType {
//     JERSEY,
//     NETTY,
//     OKHTTP
// }
// 
// Path: yet-another-docker-plugin/src/main/java/com/github/kostyasha/yad/client/ClientBuilderForConnector.java
// public static ClientBuilderForConnector newClientBuilderForConnector() {
//     return new ClientBuilderForConnector();
// }


import com.cloudbees.plugins.credentials.CredentialsMatchers;
import com.cloudbees.plugins.credentials.CredentialsProvider;
import com.cloudbees.plugins.credentials.common.StandardCredentials;
import com.github.kostyasha.yad.connector.YADockerConnector;
import com.github.kostyasha.yad.other.ConnectorType;
import com.github.kostyasha.yad.utils.CredentialsListBoxModel;
import com.github.kostyasha.yad_docker_java.com.github.dockerjava.api.DockerClient;
import com.github.kostyasha.yad_docker_java.com.github.dockerjava.api.exception.DockerException;
import com.github.kostyasha.yad_docker_java.com.github.dockerjava.api.model.Version;
import com.github.kostyasha.yad_docker_java.com.github.dockerjava.core.DefaultDockerClientConfig;
import com.github.kostyasha.yad_docker_java.com.github.dockerjava.core.RemoteApiVersion;
import com.github.kostyasha.yad_docker_java.com.google.common.base.Preconditions;
import com.github.kostyasha.yad_docker_java.org.apache.commons.lang.StringUtils;
import com.github.kostyasha.yad_docker_java.org.glassfish.jersey.client.ClientProperties;
import com.google.common.base.Throwables;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import hudson.Extension;
import hudson.model.ItemGroup;
import hudson.security.ACL;
import hudson.security.AccessControlled;
import hudson.util.FormValidation;
import hudson.util.ListBoxModel;
import jenkins.model.Jenkins;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.kohsuke.stapler.AncestorInPath;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.DataBoundSetter;
import org.kohsuke.stapler.QueryParameter;
import org.kohsuke.stapler.interceptor.RequirePOST;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import javax.servlet.ServletException;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.Collections;
import java.util.List;
import static com.github.kostyasha.yad.client.ClientBuilderForConnector.newClientBuilderForConnector;
import static com.github.kostyasha.yad.other.ConnectorType.NETTY;
import static com.github.kostyasha.yad_docker_java.com.github.dockerjava.core.RemoteApiVersion.parseConfig;
import static hudson.util.FormValidation.ok;
import static hudson.util.FormValidation.warning;
import static org.apache.commons.lang.builder.ToStringBuilder.reflectionToString;
import static org.apache.commons.lang.builder.ToStringStyle.MULTI_LINE_STYLE;
    }

    @DataBoundSetter
    public void setConnectorType(ConnectorType connectorType) {
        this.connectorType = connectorType;
    }

    public Integer getConnectTimeout() {
        return connectTimeout;
    }

    @DataBoundSetter
    public void setConnectTimeout(Integer connectTimeout) {
        this.connectTimeout = connectTimeout;
    }

    @CheckForNull
    public Integer getReadTimeout() {
        return readTimeout;
    }

    /**
     * @see ClientProperties#READ_TIMEOUT
     */
    @DataBoundSetter
    public void setReadTimeout(Integer readTimeout) {
        this.readTimeout = readTimeout;
    }

    public DockerClient getFreshClient() throws GeneralSecurityException {
// Path: yet-another-docker-plugin/src/main/java/com/github/kostyasha/yad/other/ConnectorType.java
// public enum ConnectorType {
//     JERSEY,
//     NETTY,
//     OKHTTP
// }
// 
// Path: yet-another-docker-plugin/src/main/java/com/github/kostyasha/yad/client/ClientBuilderForConnector.java
// public static ClientBuilderForConnector newClientBuilderForConnector() {
//     return new ClientBuilderForConnector();
// }


// Path: yet-another-docker-plugin/src/main/java/com/github/kostyasha/yad/DockerConnector.java
import com.cloudbees.plugins.credentials.CredentialsMatchers;
import com.cloudbees.plugins.credentials.CredentialsProvider;
import com.cloudbees.plugins.credentials.common.StandardCredentials;
import com.github.kostyasha.yad.connector.YADockerConnector;
import com.github.kostyasha.yad.other.ConnectorType;
import com.github.kostyasha.yad.utils.CredentialsListBoxModel;
import com.github.kostyasha.yad_docker_java.com.github.dockerjava.api.DockerClient;
import com.github.kostyasha.yad_docker_java.com.github.dockerjava.api.exception.DockerException;
import com.github.kostyasha.yad_docker_java.com.github.dockerjava.api.model.Version;
import com.github.kostyasha.yad_docker_java.com.github.dockerjava.core.DefaultDockerClientConfig;
import com.github.kostyasha.yad_docker_java.com.github.dockerjava.core.RemoteApiVersion;
import com.github.kostyasha.yad_docker_java.com.google.common.base.Preconditions;
import com.github.kostyasha.yad_docker_java.org.apache.commons.lang.StringUtils;
import com.github.kostyasha.yad_docker_java.org.glassfish.jersey.client.ClientProperties;
import com.google.common.base.Throwables;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import hudson.Extension;
import hudson.model.ItemGroup;
import hudson.security.ACL;
import hudson.security.AccessControlled;
import hudson.util.FormValidation;
import hudson.util.ListBoxModel;
import jenkins.model.Jenkins;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.kohsuke.stapler.AncestorInPath;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.DataBoundSetter;
import org.kohsuke.stapler.QueryParameter;
import org.kohsuke.stapler.interceptor.RequirePOST;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import javax.servlet.ServletException;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.Collections;
import java.util.List;
import static com.github.kostyasha.yad.client.ClientBuilderForConnector.newClientBuilderForConnector;
import static com.github.kostyasha.yad.other.ConnectorType.NETTY;
import static com.github.kostyasha.yad_docker_java.com.github.dockerjava.core.RemoteApiVersion.parseConfig;
import static hudson.util.FormValidation.ok;
import static hudson.util.FormValidation.warning;
import static org.apache.commons.lang.builder.ToStringBuilder.reflectionToString;
import static org.apache.commons.lang.builder.ToStringStyle.MULTI_LINE_STYLE;

    }

    @DataBoundSetter
    public void setConnectorType(ConnectorType connectorType) {
        this.connectorType = connectorType;
    }

    public Integer getConnectTimeout() {
        return connectTimeout;
    }

    @DataBoundSetter
    public void setConnectTimeout(Integer connectTimeout) {
        this.connectTimeout = connectTimeout;
    }

    @CheckForNull
    public Integer getReadTimeout() {
        return readTimeout;
    }

    /**
     * @see ClientProperties#READ_TIMEOUT
     */
    @DataBoundSetter
    public void setReadTimeout(Integer readTimeout) {
        this.readTimeout = readTimeout;
    }

    public DockerClient getFreshClient() throws GeneralSecurityException {
        client = newClientBuilderForConnector()