use std::sync::Arc;
use bollard::Docker;
mod create_deployment;
mod delete_deployment;
mod get_connection_string;
mod get_deployment;
mod get_deployment_id;
mod get_logs;
mod get_mongodb_secret;
mod list_deployments;
mod pause_deployment;
mod pull_image;
mod start_deployment;
mod stop_deployment;
mod unpause_deployment;
mod watch_deployment;
pub use create_deployment::{
CreateDeploymentError, CreateDeploymentProgress, CreateDeploymentStepOutcome,
};
pub use delete_deployment::DeleteDeploymentError;
pub use get_connection_string::GetConnectionStringError;
pub use get_deployment::GetDeploymentError;
pub use get_deployment_id::GetDeploymentIdError;
pub use get_logs::GetLogsError;
pub use pause_deployment::PauseDeploymentError;
pub use pull_image::PullImageError;
pub use start_deployment::StartDeploymentError;
pub use stop_deployment::StopDeploymentError;
pub use unpause_deployment::UnpauseDeploymentError;
pub use watch_deployment::WatchDeploymentError;
pub struct Client<D = Docker> {
docker: Arc<D>,
}
impl<D> Client<D> {
pub fn new(docker: D) -> Client<D> {
Client {
docker: Arc::new(docker),
}
}
}
#[cfg(feature = "bollard")]
impl Client<bollard::Docker> {
pub fn connect_with_defaults() -> Result<Self, bollard::errors::Error> {
Ok(Client::new(bollard::Docker::connect_with_defaults()?))
}
pub fn connect_with_socket_defaults() -> Result<Self, bollard::errors::Error> {
Ok(Client::new(bollard::Docker::connect_with_socket_defaults()?))
}
}
impl<D> Clone for Client<D> {
fn clone(&self) -> Self {
Client {
docker: self.docker.clone(),
}
}
}