package fr.ens.biologie.genomique.eoulsan.util.process;
import java.io.IOException;
import java.net.URI;
import java.util.Set;
/**
* This interface define a Docker client.
* @author Laurent Jourdren
* @since 2.0
*/
public interface DockerClient {
/**
* Initialize the Docker client.
* @param dockerConnectionURI the URI of the Docker connection.
* @throws IOException if an error occurs while initialize the Docker
* connection
*/
void initialize(URI dockerConnectionURI) throws IOException;
/**
* Create a Docker connection.
* @param dockerImage the Docker image to use with the connection
* @return a new Docker connection
* @throws IOException if an error occurs while creating the connection
*/
DockerImageInstance createConnection(String dockerImage) throws IOException;
/**
* List the Docker images tags.
* @return a set with the Docker image tags
* @throws IOException if an error occurs while listing the Docker image tags
*/
Set<String> listImageTags() throws IOException;
/**
* Close the Docker client.
* @throws IOException if an error occurs while closing the client
*/
void close() throws IOException;
}