github.com/fabiokung/docker@v0.11.2-0.20170222101415-4534dcd49497/client/interface.go (about)

     1  package client
     2  
     3  import (
     4  	"io"
     5  	"time"
     6  
     7  	"github.com/docker/docker/api/types"
     8  	"github.com/docker/docker/api/types/container"
     9  	"github.com/docker/docker/api/types/events"
    10  	"github.com/docker/docker/api/types/filters"
    11  	"github.com/docker/docker/api/types/image"
    12  	"github.com/docker/docker/api/types/network"
    13  	"github.com/docker/docker/api/types/registry"
    14  	"github.com/docker/docker/api/types/swarm"
    15  	volumetypes "github.com/docker/docker/api/types/volume"
    16  	"golang.org/x/net/context"
    17  )
    18  
    19  // CommonAPIClient is the common methods between stable and experimental versions of APIClient.
    20  type CommonAPIClient interface {
    21  	ContainerAPIClient
    22  	ImageAPIClient
    23  	NodeAPIClient
    24  	NetworkAPIClient
    25  	PluginAPIClient
    26  	ServiceAPIClient
    27  	SwarmAPIClient
    28  	SecretAPIClient
    29  	SystemAPIClient
    30  	VolumeAPIClient
    31  	ClientVersion() string
    32  	ServerVersion(ctx context.Context) (types.Version, error)
    33  	UpdateClientVersion(v string)
    34  }
    35  
    36  // ContainerAPIClient defines API client methods for the containers
    37  type ContainerAPIClient interface {
    38  	ContainerAttach(ctx context.Context, container string, options types.ContainerAttachOptions) (types.HijackedResponse, error)
    39  	ContainerCommit(ctx context.Context, container string, options types.ContainerCommitOptions) (types.IDResponse, error)
    40  	ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, containerName string) (container.ContainerCreateCreatedBody, error)
    41  	ContainerDiff(ctx context.Context, container string) ([]container.ContainerChangeResponseItem, error)
    42  	ContainerExecAttach(ctx context.Context, execID string, config types.ExecConfig) (types.HijackedResponse, error)
    43  	ContainerExecCreate(ctx context.Context, container string, config types.ExecConfig) (types.IDResponse, error)
    44  	ContainerExecInspect(ctx context.Context, execID string) (types.ContainerExecInspect, error)
    45  	ContainerExecResize(ctx context.Context, execID string, options types.ResizeOptions) error
    46  	ContainerExecStart(ctx context.Context, execID string, config types.ExecStartCheck) error
    47  	ContainerExport(ctx context.Context, container string) (io.ReadCloser, error)
    48  	ContainerInspect(ctx context.Context, container string) (types.ContainerJSON, error)
    49  	ContainerInspectWithRaw(ctx context.Context, container string, getSize bool) (types.ContainerJSON, []byte, error)
    50  	ContainerKill(ctx context.Context, container, signal string) error
    51  	ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error)
    52  	ContainerLogs(ctx context.Context, container string, options types.ContainerLogsOptions) (io.ReadCloser, error)
    53  	ContainerPause(ctx context.Context, container string) error
    54  	ContainerRemove(ctx context.Context, container string, options types.ContainerRemoveOptions) error
    55  	ContainerRename(ctx context.Context, container, newContainerName string) error
    56  	ContainerResize(ctx context.Context, container string, options types.ResizeOptions) error
    57  	ContainerRestart(ctx context.Context, container string, timeout *time.Duration) error
    58  	ContainerStatPath(ctx context.Context, container, path string) (types.ContainerPathStat, error)
    59  	ContainerStats(ctx context.Context, container string, stream bool) (types.ContainerStats, error)
    60  	ContainerStart(ctx context.Context, container string, options types.ContainerStartOptions) error
    61  	ContainerStop(ctx context.Context, container string, timeout *time.Duration) error
    62  	ContainerTop(ctx context.Context, container string, arguments []string) (container.ContainerTopOKBody, error)
    63  	ContainerUnpause(ctx context.Context, container string) error
    64  	ContainerUpdate(ctx context.Context, container string, updateConfig container.UpdateConfig) (container.ContainerUpdateOKBody, error)
    65  	ContainerWait(ctx context.Context, container string) (int64, error)
    66  	CopyFromContainer(ctx context.Context, container, srcPath string) (io.ReadCloser, types.ContainerPathStat, error)
    67  	CopyToContainer(ctx context.Context, container, path string, content io.Reader, options types.CopyToContainerOptions) error
    68  	ContainersPrune(ctx context.Context, pruneFilters filters.Args) (types.ContainersPruneReport, error)
    69  }
    70  
    71  // ImageAPIClient defines API client methods for the images
    72  type ImageAPIClient interface {
    73  	ImageBuild(ctx context.Context, context io.Reader, options types.ImageBuildOptions) (types.ImageBuildResponse, error)
    74  	ImageCreate(ctx context.Context, parentReference string, options types.ImageCreateOptions) (io.ReadCloser, error)
    75  	ImageHistory(ctx context.Context, image string) ([]image.HistoryResponseItem, error)
    76  	ImageImport(ctx context.Context, source types.ImageImportSource, ref string, options types.ImageImportOptions) (io.ReadCloser, error)
    77  	ImageInspectWithRaw(ctx context.Context, image string) (types.ImageInspect, []byte, error)
    78  	ImageList(ctx context.Context, options types.ImageListOptions) ([]types.ImageSummary, error)
    79  	ImageLoad(ctx context.Context, input io.Reader, quiet bool) (types.ImageLoadResponse, error)
    80  	ImagePull(ctx context.Context, ref string, options types.ImagePullOptions) (io.ReadCloser, error)
    81  	ImagePush(ctx context.Context, ref string, options types.ImagePushOptions) (io.ReadCloser, error)
    82  	ImageRemove(ctx context.Context, image string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error)
    83  	ImageSearch(ctx context.Context, term string, options types.ImageSearchOptions) ([]registry.SearchResult, error)
    84  	ImageSave(ctx context.Context, images []string) (io.ReadCloser, error)
    85  	ImageTag(ctx context.Context, image, ref string) error
    86  	ImagesPrune(ctx context.Context, pruneFilter filters.Args) (types.ImagesPruneReport, error)
    87  }
    88  
    89  // NetworkAPIClient defines API client methods for the networks
    90  type NetworkAPIClient interface {
    91  	NetworkConnect(ctx context.Context, networkID, container string, config *network.EndpointSettings) error
    92  	NetworkCreate(ctx context.Context, name string, options types.NetworkCreate) (types.NetworkCreateResponse, error)
    93  	NetworkDisconnect(ctx context.Context, networkID, container string, force bool) error
    94  	NetworkInspect(ctx context.Context, networkID string) (types.NetworkResource, error)
    95  	NetworkInspectWithRaw(ctx context.Context, networkID string) (types.NetworkResource, []byte, error)
    96  	NetworkList(ctx context.Context, options types.NetworkListOptions) ([]types.NetworkResource, error)
    97  	NetworkRemove(ctx context.Context, networkID string) error
    98  	NetworksPrune(ctx context.Context, pruneFilter filters.Args) (types.NetworksPruneReport, error)
    99  }
   100  
   101  // NodeAPIClient defines API client methods for the nodes
   102  type NodeAPIClient interface {
   103  	NodeInspectWithRaw(ctx context.Context, nodeID string) (swarm.Node, []byte, error)
   104  	NodeList(ctx context.Context, options types.NodeListOptions) ([]swarm.Node, error)
   105  	NodeRemove(ctx context.Context, nodeID string, options types.NodeRemoveOptions) error
   106  	NodeUpdate(ctx context.Context, nodeID string, version swarm.Version, node swarm.NodeSpec) error
   107  }
   108  
   109  // PluginAPIClient defines API client methods for the plugins
   110  type PluginAPIClient interface {
   111  	PluginList(ctx context.Context, filter filters.Args) (types.PluginsListResponse, error)
   112  	PluginRemove(ctx context.Context, name string, options types.PluginRemoveOptions) error
   113  	PluginEnable(ctx context.Context, name string, options types.PluginEnableOptions) error
   114  	PluginDisable(ctx context.Context, name string, options types.PluginDisableOptions) error
   115  	PluginInstall(ctx context.Context, name string, options types.PluginInstallOptions) (io.ReadCloser, error)
   116  	PluginUpgrade(ctx context.Context, name string, options types.PluginInstallOptions) (io.ReadCloser, error)
   117  	PluginPush(ctx context.Context, name string, registryAuth string) (io.ReadCloser, error)
   118  	PluginSet(ctx context.Context, name string, args []string) error
   119  	PluginInspectWithRaw(ctx context.Context, name string) (*types.Plugin, []byte, error)
   120  	PluginCreate(ctx context.Context, createContext io.Reader, options types.PluginCreateOptions) error
   121  }
   122  
   123  // ServiceAPIClient defines API client methods for the services
   124  type ServiceAPIClient interface {
   125  	ServiceCreate(ctx context.Context, service swarm.ServiceSpec, options types.ServiceCreateOptions) (types.ServiceCreateResponse, error)
   126  	ServiceInspectWithRaw(ctx context.Context, serviceID string) (swarm.Service, []byte, error)
   127  	ServiceList(ctx context.Context, options types.ServiceListOptions) ([]swarm.Service, error)
   128  	ServiceRemove(ctx context.Context, serviceID string) error
   129  	ServiceUpdate(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error)
   130  	ServiceLogs(ctx context.Context, serviceID string, options types.ContainerLogsOptions) (io.ReadCloser, error)
   131  	TaskInspectWithRaw(ctx context.Context, taskID string) (swarm.Task, []byte, error)
   132  	TaskList(ctx context.Context, options types.TaskListOptions) ([]swarm.Task, error)
   133  }
   134  
   135  // SwarmAPIClient defines API client methods for the swarm
   136  type SwarmAPIClient interface {
   137  	SwarmInit(ctx context.Context, req swarm.InitRequest) (string, error)
   138  	SwarmJoin(ctx context.Context, req swarm.JoinRequest) error
   139  	SwarmGetUnlockKey(ctx context.Context) (types.SwarmUnlockKeyResponse, error)
   140  	SwarmUnlock(ctx context.Context, req swarm.UnlockRequest) error
   141  	SwarmLeave(ctx context.Context, force bool) error
   142  	SwarmInspect(ctx context.Context) (swarm.Swarm, error)
   143  	SwarmUpdate(ctx context.Context, version swarm.Version, swarm swarm.Spec, flags swarm.UpdateFlags) error
   144  }
   145  
   146  // SystemAPIClient defines API client methods for the system
   147  type SystemAPIClient interface {
   148  	Events(ctx context.Context, options types.EventsOptions) (<-chan events.Message, <-chan error)
   149  	Info(ctx context.Context) (types.Info, error)
   150  	RegistryLogin(ctx context.Context, auth types.AuthConfig) (registry.AuthenticateOKBody, error)
   151  	DiskUsage(ctx context.Context) (types.DiskUsage, error)
   152  	Ping(ctx context.Context) (types.Ping, error)
   153  }
   154  
   155  // VolumeAPIClient defines API client methods for the volumes
   156  type VolumeAPIClient interface {
   157  	VolumeCreate(ctx context.Context, options volumetypes.VolumesCreateBody) (types.Volume, error)
   158  	VolumeInspect(ctx context.Context, volumeID string) (types.Volume, error)
   159  	VolumeInspectWithRaw(ctx context.Context, volumeID string) (types.Volume, []byte, error)
   160  	VolumeList(ctx context.Context, filter filters.Args) (volumetypes.VolumesListOKBody, error)
   161  	VolumeRemove(ctx context.Context, volumeID string, force bool) error
   162  	VolumesPrune(ctx context.Context, pruneFilter filters.Args) (types.VolumesPruneReport, error)
   163  }
   164  
   165  // SecretAPIClient defines API client methods for secrets
   166  type SecretAPIClient interface {
   167  	SecretList(ctx context.Context, options types.SecretListOptions) ([]swarm.Secret, error)
   168  	SecretCreate(ctx context.Context, secret swarm.SecretSpec) (types.SecretCreateResponse, error)
   169  	SecretRemove(ctx context.Context, id string) error
   170  	SecretInspectWithRaw(ctx context.Context, name string) (swarm.Secret, []byte, error)
   171  	SecretUpdate(ctx context.Context, id string, version swarm.Version, secret swarm.SecretSpec) error
   172  }