github.com/zhuohuang-hust/src-cbuild@v0.0.0-20230105071821-c7aab3e7c840/api/types/client.go (about) 1 package types 2 3 import ( 4 "bufio" 5 "io" 6 "net" 7 "os" 8 9 "github.com/docker/docker/api/types/container" 10 "github.com/docker/docker/api/types/filters" 11 "github.com/docker/go-units" 12 ) 13 14 // CheckpointCreateOptions holds parameters to create a checkpoint from a container 15 type CheckpointCreateOptions struct { 16 CheckpointID string 17 CheckpointDir string 18 Exit bool 19 } 20 21 // CheckpointListOptions holds parameters to list checkpoints for a container 22 type CheckpointListOptions struct { 23 CheckpointDir string 24 } 25 26 // CheckpointDeleteOptions holds parameters to delete a checkpoint from a container 27 type CheckpointDeleteOptions struct { 28 CheckpointID string 29 CheckpointDir string 30 } 31 32 // ContainerAttachOptions holds parameters to attach to a container. 33 type ContainerAttachOptions struct { 34 Stream bool 35 Stdin bool 36 Stdout bool 37 Stderr bool 38 DetachKeys string 39 Logs bool 40 } 41 42 // ContainerCommitOptions holds parameters to commit changes into a container. 43 type ContainerCommitOptions struct { 44 Reference string 45 Comment string 46 Author string 47 Changes []string 48 Pause bool 49 Config *container.Config 50 } 51 52 // ContainerExecInspect holds information returned by exec inspect. 53 type ContainerExecInspect struct { 54 ExecID string 55 ContainerID string 56 Running bool 57 ExitCode int 58 Pid int 59 } 60 61 // ContainerListOptions holds parameters to list containers with. 62 type ContainerListOptions struct { 63 Quiet bool 64 Size bool 65 All bool 66 Latest bool 67 Since string 68 Before string 69 Limit int 70 Filters filters.Args 71 } 72 73 // ContainerLogsOptions holds parameters to filter logs with. 74 type ContainerLogsOptions struct { 75 ShowStdout bool 76 ShowStderr bool 77 Since string 78 Timestamps bool 79 Follow bool 80 Tail string 81 Details bool 82 } 83 84 // ContainerRemoveOptions holds parameters to remove containers. 85 type ContainerRemoveOptions struct { 86 RemoveVolumes bool 87 RemoveLinks bool 88 Force bool 89 } 90 91 // ContainerStartOptions holds parameters to start containers. 92 type ContainerStartOptions struct { 93 CheckpointID string 94 CheckpointDir string 95 } 96 97 // CopyToContainerOptions holds information 98 // about files to copy into a container 99 type CopyToContainerOptions struct { 100 AllowOverwriteDirWithFile bool 101 } 102 103 // EventsOptions holds parameters to filter events with. 104 type EventsOptions struct { 105 Since string 106 Until string 107 Filters filters.Args 108 } 109 110 // NetworkListOptions holds parameters to filter the list of networks with. 111 type NetworkListOptions struct { 112 Filters filters.Args 113 } 114 115 // HijackedResponse holds connection information for a hijacked request. 116 type HijackedResponse struct { 117 Conn net.Conn 118 Reader *bufio.Reader 119 } 120 121 // Close closes the hijacked connection and reader. 122 func (h *HijackedResponse) Close() { 123 h.Conn.Close() 124 } 125 126 // CloseWriter is an interface that implements structs 127 // that close input streams to prevent from writing. 128 type CloseWriter interface { 129 CloseWrite() error 130 } 131 132 // CloseWrite closes a readWriter for writing. 133 func (h *HijackedResponse) CloseWrite() error { 134 if conn, ok := h.Conn.(CloseWriter); ok { 135 return conn.CloseWrite() 136 } 137 return nil 138 } 139 140 // ImageBuildOptions holds the information 141 // necessary to build images. 142 type ImageBuildOptions struct { 143 Tags []string 144 SuppressOutput bool 145 RemoteContext string 146 NoCache bool 147 Remove bool 148 ForceRemove bool 149 PullParent bool 150 Isolation container.Isolation 151 CPUSetCPUs string 152 CPUSetMems string 153 CPUShares int64 154 CPUQuota int64 155 CPUPeriod int64 156 Memory int64 157 MemorySwap int64 158 CgroupParent string 159 NetworkMode string 160 ShmSize int64 161 Dockerfile string 162 Ulimits []*units.Ulimit 163 // See the parsing of buildArgs in api/server/router/build/build_routes.go 164 // for an explaination of why BuildArgs needs to use *string instead of 165 // just a string 166 BuildArgs map[string]*string 167 AuthConfigs map[string]AuthConfig 168 Context io.Reader 169 Labels map[string]string 170 // squash the resulting image's layers to the parent 171 // preserves the original image and creates a new one from the parent with all 172 // the changes applied to a single layer 173 Squash bool 174 // CacheFrom specifies images that are used for matching cache. Images 175 // specified here do not need to have a valid parent chain to match cache. 176 CacheFrom []string 177 SecurityOpt []string 178 } 179 180 // ImageBuildResponse holds information 181 // returned by a server after building 182 // an image. 183 type ImageBuildResponse struct { 184 Body io.ReadCloser 185 OSType string 186 } 187 188 // ImageCreateOptions holds information to create images. 189 type ImageCreateOptions struct { 190 RegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry 191 } 192 193 // ImageImportSource holds source information for ImageImport 194 type ImageImportSource struct { 195 Source io.Reader // Source is the data to send to the server to create this image from (mutually exclusive with SourceName) 196 SourceName string // SourceName is the name of the image to pull (mutually exclusive with Source) 197 } 198 199 // ImageImportOptions holds information to import images from the client host. 200 type ImageImportOptions struct { 201 Tag string // Tag is the name to tag this image with. This attribute is deprecated. 202 Message string // Message is the message to tag the image with 203 Changes []string // Changes are the raw changes to apply to this image 204 } 205 206 // ImageListOptions holds parameters to filter the list of images with. 207 type ImageListOptions struct { 208 All bool 209 Filters filters.Args 210 } 211 212 // ImageLoadResponse returns information to the client about a load process. 213 type ImageLoadResponse struct { 214 // Body must be closed to avoid a resource leak 215 Body io.ReadCloser 216 JSON bool 217 } 218 219 // ImagePullOptions holds information to pull images. 220 type ImagePullOptions struct { 221 All bool 222 RegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry 223 PrivilegeFunc RequestPrivilegeFunc 224 } 225 226 // RequestPrivilegeFunc is a function interface that 227 // clients can supply to retry operations after 228 // getting an authorization error. 229 // This function returns the registry authentication 230 // header value in base 64 format, or an error 231 // if the privilege request fails. 232 type RequestPrivilegeFunc func() (string, error) 233 234 //ImagePushOptions holds information to push images. 235 type ImagePushOptions ImagePullOptions 236 237 // ImageRemoveOptions holds parameters to remove images. 238 type ImageRemoveOptions struct { 239 Force bool 240 PruneChildren bool 241 } 242 243 // ImageSearchOptions holds parameters to search images with. 244 type ImageSearchOptions struct { 245 RegistryAuth string 246 PrivilegeFunc RequestPrivilegeFunc 247 Filters filters.Args 248 Limit int 249 } 250 251 // ResizeOptions holds parameters to resize a tty. 252 // It can be used to resize container ttys and 253 // exec process ttys too. 254 type ResizeOptions struct { 255 Height uint 256 Width uint 257 } 258 259 // VersionResponse holds version information for the client and the server 260 type VersionResponse struct { 261 Client *Version 262 Server *Version 263 } 264 265 // ServerOK returns true when the client could connect to the docker server 266 // and parse the information received. It returns false otherwise. 267 func (v VersionResponse) ServerOK() bool { 268 return v.Server != nil 269 } 270 271 // NodeListOptions holds parameters to list nodes with. 272 type NodeListOptions struct { 273 Filters filters.Args 274 } 275 276 // NodeRemoveOptions holds parameters to remove nodes with. 277 type NodeRemoveOptions struct { 278 Force bool 279 } 280 281 // ServiceCreateOptions contains the options to use when creating a service. 282 type ServiceCreateOptions struct { 283 // EncodedRegistryAuth is the encoded registry authorization credentials to 284 // use when updating the service. 285 // 286 // This field follows the format of the X-Registry-Auth header. 287 EncodedRegistryAuth string 288 } 289 290 // ServiceCreateResponse contains the information returned to a client 291 // on the creation of a new service. 292 type ServiceCreateResponse struct { 293 // ID is the ID of the created service. 294 ID string 295 // Warnings is a set of non-fatal warning messages to pass on to the user. 296 Warnings []string `json:",omitempty"` 297 } 298 299 // Values for RegistryAuthFrom in ServiceUpdateOptions 300 const ( 301 RegistryAuthFromSpec = "spec" 302 RegistryAuthFromPreviousSpec = "previous-spec" 303 ) 304 305 // ServiceUpdateOptions contains the options to be used for updating services. 306 type ServiceUpdateOptions struct { 307 // EncodedRegistryAuth is the encoded registry authorization credentials to 308 // use when updating the service. 309 // 310 // This field follows the format of the X-Registry-Auth header. 311 EncodedRegistryAuth string 312 313 // TODO(stevvooe): Consider moving the version parameter of ServiceUpdate 314 // into this field. While it does open API users up to racy writes, most 315 // users may not need that level of consistency in practice. 316 317 // RegistryAuthFrom specifies where to find the registry authorization 318 // credentials if they are not given in EncodedRegistryAuth. Valid 319 // values are "spec" and "previous-spec". 320 RegistryAuthFrom string 321 } 322 323 // ServiceListOptions holds parameters to list services with. 324 type ServiceListOptions struct { 325 Filters filters.Args 326 } 327 328 // TaskListOptions holds parameters to list tasks with. 329 type TaskListOptions struct { 330 Filters filters.Args 331 } 332 333 // PluginRemoveOptions holds parameters to remove plugins. 334 type PluginRemoveOptions struct { 335 Force bool 336 } 337 338 // PluginEnableOptions holds parameters to enable plugins. 339 type PluginEnableOptions struct { 340 Timeout int 341 } 342 343 // PluginInstallOptions holds parameters to install a plugin. 344 type PluginInstallOptions struct { 345 Disabled bool 346 AcceptAllPermissions bool 347 RegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry 348 PrivilegeFunc RequestPrivilegeFunc 349 AcceptPermissionsFunc func(PluginPrivileges) (bool, error) 350 Args []string 351 } 352 353 // SecretRequestOption is a type for requesting secrets 354 type SecretRequestOption struct { 355 Source string 356 Target string 357 UID string 358 GID string 359 Mode os.FileMode 360 } 361 362 // SwarmUnlockKeyResponse contains the response for Engine API: 363 // GET /swarm/unlockkey 364 type SwarmUnlockKeyResponse struct { 365 // UnlockKey is the unlock key in ASCII-armored format. 366 UnlockKey string 367 } 368 369 // PluginCreateOptions hold all options to plugin create. 370 type PluginCreateOptions struct { 371 RepoName string 372 }