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 }