.cr
Crystal
(text/x-crystal)
require "./api_client_wrapper"
require "./containers"
require "./images"
require "./volumes"

# A client for communicating with a Docker server.
#
# Provides the main entrypoint for common interaction with a docker instance.
class Docker::Client
  include Docker::ApiClientWrapper

  property api_version : String = "latest"

  # Creates a new instance for the passed *base_url*
  def initialize(base_url = Docker::Api::ApiClient::DEFAULT_URL, @api_version = "latest")
    @client = Docker::Api::ApiClient.new base_url, @api_version
  end

  # Provides access to container management.
  def containers
    Containers.new @client
  end

  # Provides access to image management.
  def images
    Images.new @client
  end

  # Provides access to volume management.
  def volumes
    Volumes.new @client
  end
end