| package client |
| |
| import ( |
| "context" |
| "io" |
| "net" |
| ) |
| |
| // APIClient is an interface that clients that talk with a docker server must implement. |
| type APIClient interface { |
| stableAPIClient |
| CheckpointAPIClient // CheckpointAPIClient is still experimental. |
| } |
| |
| type stableAPIClient interface { |
| ConfigAPIClient |
| ContainerAPIClient |
| DistributionAPIClient |
| RegistrySearchClient |
| ExecAPIClient |
| ImageBuildAPIClient |
| ImageAPIClient |
| NetworkAPIClient |
| PluginAPIClient |
| SystemAPIClient |
| VolumeAPIClient |
| ClientVersion() string |
| DaemonHost() string |
| ServerVersion(ctx context.Context, options ServerVersionOptions) (ServerVersionResult, error) |
| HijackDialer |
| Dialer() func(context.Context) (net.Conn, error) |
| Close() error |
| SwarmManagementAPIClient |
| } |
| |
| // SwarmManagementAPIClient defines all methods for managing Swarm-specific |
| // objects. |
| type SwarmManagementAPIClient interface { |
| SwarmAPIClient |
| NodeAPIClient |
| ServiceAPIClient |
| TaskAPIClient |
| SecretAPIClient |
| ConfigAPIClient |
| } |
| |
| // HijackDialer defines methods for a hijack dialer. |
| type HijackDialer interface { |
| DialHijack(ctx context.Context, url, proto string, meta map[string][]string) (net.Conn, error) |
| } |
| |
| // CheckpointAPIClient defines API client methods for the checkpoints. |
| // |
| // Experimental: checkpoint and restore is still an experimental feature, |
| // and only available if the daemon is running with experimental features |
| // enabled. |
| type CheckpointAPIClient interface { |
| CheckpointCreate(ctx context.Context, container string, options CheckpointCreateOptions) (CheckpointCreateResult, error) |
| CheckpointRemove(ctx context.Context, container string, options CheckpointRemoveOptions) (CheckpointRemoveResult, error) |
| CheckpointList(ctx context.Context, container string, options CheckpointListOptions) (CheckpointListResult, error) |
| } |
| |
| // ContainerAPIClient defines API client methods for the containers |
| type ContainerAPIClient interface { |
| ContainerCreate(ctx context.Context, options ContainerCreateOptions) (ContainerCreateResult, error) |
| ContainerInspect(ctx context.Context, container string, options ContainerInspectOptions) (ContainerInspectResult, error) |
| ContainerList(ctx context.Context, options ContainerListOptions) (ContainerListResult, error) |
| ContainerUpdate(ctx context.Context, container string, updateConfig ContainerUpdateOptions) (ContainerUpdateResult, error) |
| ContainerRemove(ctx context.Context, container string, options ContainerRemoveOptions) (ContainerRemoveResult, error) |
| ContainerPrune(ctx context.Context, opts ContainerPruneOptions) (ContainerPruneResult, error) |
| |
| ContainerLogs(ctx context.Context, container string, options ContainerLogsOptions) (ContainerLogsResult, error) |
| |
| ContainerStart(ctx context.Context, container string, options ContainerStartOptions) (ContainerStartResult, error) |
| ContainerStop(ctx context.Context, container string, options ContainerStopOptions) (ContainerStopResult, error) |
| ContainerRestart(ctx context.Context, container string, options ContainerRestartOptions) (ContainerRestartResult, error) |
| ContainerPause(ctx context.Context, container string, options ContainerPauseOptions) (ContainerPauseResult, error) |
| ContainerUnpause(ctx context.Context, container string, options ContainerUnpauseOptions) (ContainerUnpauseResult, error) |
| ContainerWait(ctx context.Context, container string, options ContainerWaitOptions) ContainerWaitResult |
| ContainerKill(ctx context.Context, container string, options ContainerKillOptions) (ContainerKillResult, error) |
| |
| ContainerRename(ctx context.Context, container string, options ContainerRenameOptions) (ContainerRenameResult, error) |
| ContainerResize(ctx context.Context, container string, options ContainerResizeOptions) (ContainerResizeResult, error) |
| ContainerAttach(ctx context.Context, container string, options ContainerAttachOptions) (ContainerAttachResult, error) |
| ContainerCommit(ctx context.Context, container string, options ContainerCommitOptions) (ContainerCommitResult, error) |
| ContainerDiff(ctx context.Context, container string, options ContainerDiffOptions) (ContainerDiffResult, error) |
| ContainerExport(ctx context.Context, container string, options ContainerExportOptions) (ContainerExportResult, error) |
| |
| ContainerStats(ctx context.Context, container string, options ContainerStatsOptions) (ContainerStatsResult, error) |
| ContainerTop(ctx context.Context, container string, options ContainerTopOptions) (ContainerTopResult, error) |
| |
| ContainerStatPath(ctx context.Context, container string, options ContainerStatPathOptions) (ContainerStatPathResult, error) |
| CopyFromContainer(ctx context.Context, container string, options CopyFromContainerOptions) (CopyFromContainerResult, error) |
| CopyToContainer(ctx context.Context, container string, options CopyToContainerOptions) (CopyToContainerResult, error) |
| } |
| |
| type ExecAPIClient interface { |
| ExecCreate(ctx context.Context, container string, options ExecCreateOptions) (ExecCreateResult, error) |
| ExecInspect(ctx context.Context, execID string, options ExecInspectOptions) (ExecInspectResult, error) |
| ExecResize(ctx context.Context, execID string, options ExecResizeOptions) (ExecResizeResult, error) |
| |
| ExecStart(ctx context.Context, execID string, options ExecStartOptions) (ExecStartResult, error) |
| ExecAttach(ctx context.Context, execID string, options ExecAttachOptions) (ExecAttachResult, error) |
| } |
| |
| // DistributionAPIClient defines API client methods for the registry |
| type DistributionAPIClient interface { |
| DistributionInspect(ctx context.Context, image string, options DistributionInspectOptions) (DistributionInspectResult, error) |
| } |
| |
| type RegistrySearchClient interface { |
| ImageSearch(ctx context.Context, term string, options ImageSearchOptions) (ImageSearchResult, error) |
| } |
| |
| // ImageBuildAPIClient defines API client methods for building images |
| // using the REST API. |
| type ImageBuildAPIClient interface { |
| ImageBuild(ctx context.Context, context io.Reader, options ImageBuildOptions) (ImageBuildResult, error) |
| BuildCachePrune(ctx context.Context, opts BuildCachePruneOptions) (BuildCachePruneResult, error) |
| BuildCancel(ctx context.Context, id string, opts BuildCancelOptions) (BuildCancelResult, error) |
| } |
| |
| // ImageAPIClient defines API client methods for the images |
| type ImageAPIClient interface { |
| ImageImport(ctx context.Context, source ImageImportSource, ref string, options ImageImportOptions) (ImageImportResult, error) |
| |
| ImageList(ctx context.Context, options ImageListOptions) (ImageListResult, error) |
| ImagePull(ctx context.Context, ref string, options ImagePullOptions) (ImagePullResponse, error) |
| ImagePush(ctx context.Context, ref string, options ImagePushOptions) (ImagePushResponse, error) |
| ImageRemove(ctx context.Context, image string, options ImageRemoveOptions) (ImageRemoveResult, error) |
| ImageTag(ctx context.Context, options ImageTagOptions) (ImageTagResult, error) |
| ImagePrune(ctx context.Context, opts ImagePruneOptions) (ImagePruneResult, error) |
| |
| ImageInspect(ctx context.Context, image string, _ ...ImageInspectOption) (ImageInspectResult, error) |
| ImageHistory(ctx context.Context, image string, _ ...ImageHistoryOption) (ImageHistoryResult, error) |
| |
| ImageLoad(ctx context.Context, input io.Reader, _ ...ImageLoadOption) (ImageLoadResult, error) |
| ImageSave(ctx context.Context, images []string, _ ...ImageSaveOption) (ImageSaveResult, error) |
| } |
| |
| // NetworkAPIClient defines API client methods for the networks |
| type NetworkAPIClient interface { |
| NetworkCreate(ctx context.Context, name string, options NetworkCreateOptions) (NetworkCreateResult, error) |
| NetworkInspect(ctx context.Context, network string, options NetworkInspectOptions) (NetworkInspectResult, error) |
| NetworkList(ctx context.Context, options NetworkListOptions) (NetworkListResult, error) |
| NetworkRemove(ctx context.Context, network string, options NetworkRemoveOptions) (NetworkRemoveResult, error) |
| NetworkPrune(ctx context.Context, opts NetworkPruneOptions) (NetworkPruneResult, error) |
| |
| NetworkConnect(ctx context.Context, network string, options NetworkConnectOptions) (NetworkConnectResult, error) |
| NetworkDisconnect(ctx context.Context, network string, options NetworkDisconnectOptions) (NetworkDisconnectResult, error) |
| } |
| |
| // NodeAPIClient defines API client methods for the nodes |
| type NodeAPIClient interface { |
| NodeInspect(ctx context.Context, nodeID string, options NodeInspectOptions) (NodeInspectResult, error) |
| NodeList(ctx context.Context, options NodeListOptions) (NodeListResult, error) |
| NodeUpdate(ctx context.Context, nodeID string, options NodeUpdateOptions) (NodeUpdateResult, error) |
| NodeRemove(ctx context.Context, nodeID string, options NodeRemoveOptions) (NodeRemoveResult, error) |
| } |
| |
| // PluginAPIClient defines API client methods for the plugins |
| type PluginAPIClient interface { |
| PluginCreate(ctx context.Context, createContext io.Reader, options PluginCreateOptions) (PluginCreateResult, error) |
| PluginInstall(ctx context.Context, name string, options PluginInstallOptions) (PluginInstallResult, error) |
| PluginInspect(ctx context.Context, name string, options PluginInspectOptions) (PluginInspectResult, error) |
| PluginList(ctx context.Context, options PluginListOptions) (PluginListResult, error) |
| PluginRemove(ctx context.Context, name string, options PluginRemoveOptions) (PluginRemoveResult, error) |
| |
| PluginEnable(ctx context.Context, name string, options PluginEnableOptions) (PluginEnableResult, error) |
| PluginDisable(ctx context.Context, name string, options PluginDisableOptions) (PluginDisableResult, error) |
| PluginUpgrade(ctx context.Context, name string, options PluginUpgradeOptions) (PluginUpgradeResult, error) |
| PluginPush(ctx context.Context, name string, options PluginPushOptions) (PluginPushResult, error) |
| PluginSet(ctx context.Context, name string, options PluginSetOptions) (PluginSetResult, error) |
| } |
| |
| // ServiceAPIClient defines API client methods for the services |
| type ServiceAPIClient interface { |
| ServiceCreate(ctx context.Context, options ServiceCreateOptions) (ServiceCreateResult, error) |
| ServiceInspect(ctx context.Context, serviceID string, options ServiceInspectOptions) (ServiceInspectResult, error) |
| ServiceList(ctx context.Context, options ServiceListOptions) (ServiceListResult, error) |
| ServiceUpdate(ctx context.Context, serviceID string, options ServiceUpdateOptions) (ServiceUpdateResult, error) |
| ServiceRemove(ctx context.Context, serviceID string, options ServiceRemoveOptions) (ServiceRemoveResult, error) |
| |
| ServiceLogs(ctx context.Context, serviceID string, options ServiceLogsOptions) (ServiceLogsResult, error) |
| } |
| |
| // TaskAPIClient defines API client methods to manage swarm tasks. |
| type TaskAPIClient interface { |
| TaskInspect(ctx context.Context, taskID string, options TaskInspectOptions) (TaskInspectResult, error) |
| TaskList(ctx context.Context, options TaskListOptions) (TaskListResult, error) |
| |
| TaskLogs(ctx context.Context, taskID string, options TaskLogsOptions) (TaskLogsResult, error) |
| } |
| |
| // SwarmAPIClient defines API client methods for the swarm |
| type SwarmAPIClient interface { |
| SwarmInit(ctx context.Context, options SwarmInitOptions) (SwarmInitResult, error) |
| SwarmJoin(ctx context.Context, options SwarmJoinOptions) (SwarmJoinResult, error) |
| SwarmInspect(ctx context.Context, options SwarmInspectOptions) (SwarmInspectResult, error) |
| SwarmUpdate(ctx context.Context, options SwarmUpdateOptions) (SwarmUpdateResult, error) |
| SwarmLeave(ctx context.Context, options SwarmLeaveOptions) (SwarmLeaveResult, error) |
| |
| SwarmGetUnlockKey(ctx context.Context) (SwarmGetUnlockKeyResult, error) |
| SwarmUnlock(ctx context.Context, options SwarmUnlockOptions) (SwarmUnlockResult, error) |
| } |
| |
| // SystemAPIClient defines API client methods for the system |
| type SystemAPIClient interface { |
| Events(ctx context.Context, options EventsListOptions) EventsResult |
| Info(ctx context.Context, options InfoOptions) (SystemInfoResult, error) |
| RegistryLogin(ctx context.Context, auth RegistryLoginOptions) (RegistryLoginResult, error) |
| DiskUsage(ctx context.Context, options DiskUsageOptions) (DiskUsageResult, error) |
| Ping(ctx context.Context, options PingOptions) (PingResult, error) |
| } |
| |
| // VolumeAPIClient defines API client methods for the volumes |
| type VolumeAPIClient interface { |
| VolumeCreate(ctx context.Context, options VolumeCreateOptions) (VolumeCreateResult, error) |
| VolumeInspect(ctx context.Context, volumeID string, options VolumeInspectOptions) (VolumeInspectResult, error) |
| VolumeList(ctx context.Context, options VolumeListOptions) (VolumeListResult, error) |
| VolumeUpdate(ctx context.Context, volumeID string, options VolumeUpdateOptions) (VolumeUpdateResult, error) |
| VolumeRemove(ctx context.Context, volumeID string, options VolumeRemoveOptions) (VolumeRemoveResult, error) |
| VolumePrune(ctx context.Context, options VolumePruneOptions) (VolumePruneResult, error) |
| } |
| |
| // SecretAPIClient defines API client methods for secrets |
| type SecretAPIClient interface { |
| SecretCreate(ctx context.Context, options SecretCreateOptions) (SecretCreateResult, error) |
| SecretInspect(ctx context.Context, id string, options SecretInspectOptions) (SecretInspectResult, error) |
| SecretList(ctx context.Context, options SecretListOptions) (SecretListResult, error) |
| SecretUpdate(ctx context.Context, id string, options SecretUpdateOptions) (SecretUpdateResult, error) |
| SecretRemove(ctx context.Context, id string, options SecretRemoveOptions) (SecretRemoveResult, error) |
| } |
| |
| // ConfigAPIClient defines API client methods for configs |
| type ConfigAPIClient interface { |
| ConfigCreate(ctx context.Context, options ConfigCreateOptions) (ConfigCreateResult, error) |
| ConfigInspect(ctx context.Context, id string, options ConfigInspectOptions) (ConfigInspectResult, error) |
| ConfigList(ctx context.Context, options ConfigListOptions) (ConfigListResult, error) |
| ConfigUpdate(ctx context.Context, id string, options ConfigUpdateOptions) (ConfigUpdateResult, error) |
| ConfigRemove(ctx context.Context, id string, options ConfigRemoveOptions) (ConfigRemoveResult, error) |
| } |