github.com/tompao/docker@v1.9.1/api/types/types.go (about) 1 package types 2 3 import ( 4 "os" 5 "time" 6 7 "github.com/docker/docker/daemon/network" 8 "github.com/docker/docker/pkg/nat" 9 "github.com/docker/docker/pkg/version" 10 "github.com/docker/docker/registry" 11 "github.com/docker/docker/runconfig" 12 ) 13 14 // ContainerCreateResponse contains the information returned to a client on the 15 // creation of a new container. 16 type ContainerCreateResponse struct { 17 // ID is the ID of the created container. 18 ID string `json:"Id"` 19 20 // Warnings are any warnings encountered during the creation of the container. 21 Warnings []string `json:"Warnings"` 22 } 23 24 // ContainerExecCreateResponse contains response of Remote API: 25 // POST "/containers/{name:.*}/exec" 26 type ContainerExecCreateResponse struct { 27 // ID is the exec ID. 28 ID string `json:"Id"` 29 } 30 31 // AuthResponse contains response of Remote API: 32 // POST "/auth" 33 type AuthResponse struct { 34 // Status is the authentication status 35 Status string `json:"Status"` 36 } 37 38 // ContainerWaitResponse contains response of Remote API: 39 // POST "/containers/"+containerID+"/wait" 40 type ContainerWaitResponse struct { 41 // StatusCode is the status code of the wait job 42 StatusCode int `json:"StatusCode"` 43 } 44 45 // ContainerCommitResponse contains response of Remote API: 46 // POST "/commit?container="+containerID 47 type ContainerCommitResponse struct { 48 ID string `json:"Id"` 49 } 50 51 // ContainerChange contains response of Remote API: 52 // GET "/containers/{name:.*}/changes" 53 type ContainerChange struct { 54 Kind int 55 Path string 56 } 57 58 // ImageHistory contains response of Remote API: 59 // GET "/images/{name:.*}/history" 60 type ImageHistory struct { 61 ID string `json:"Id"` 62 Created int64 63 CreatedBy string 64 Tags []string 65 Size int64 66 Comment string 67 } 68 69 // ImageDelete contains response of Remote API: 70 // DELETE "/images/{name:.*}" 71 type ImageDelete struct { 72 Untagged string `json:",omitempty"` 73 Deleted string `json:",omitempty"` 74 } 75 76 // Image contains response of Remote API: 77 // GET "/images/json" 78 type Image struct { 79 ID string `json:"Id"` 80 ParentID string `json:"ParentId"` 81 RepoTags []string 82 RepoDigests []string 83 Created int64 84 Size int64 85 VirtualSize int64 86 Labels map[string]string 87 } 88 89 // GraphDriverData returns Image's graph driver config info 90 // when calling inspect command 91 type GraphDriverData struct { 92 Name string 93 Data map[string]string 94 } 95 96 // ImageInspect contains response of Remote API: 97 // GET "/images/{name:.*}/json" 98 type ImageInspect struct { 99 ID string `json:"Id"` 100 RepoTags []string 101 RepoDigests []string 102 Parent string 103 Comment string 104 Created string 105 Container string 106 ContainerConfig *runconfig.Config 107 DockerVersion string 108 Author string 109 Config *runconfig.Config 110 Architecture string 111 Os string 112 Size int64 113 VirtualSize int64 114 GraphDriver GraphDriverData 115 } 116 117 // Port stores open ports info of container 118 // e.g. {"PrivatePort": 8080, "PublicPort": 80, "Type": "tcp"} 119 type Port struct { 120 IP string `json:",omitempty"` 121 PrivatePort int 122 PublicPort int `json:",omitempty"` 123 Type string 124 } 125 126 // Container contains response of Remote API: 127 // GET "/containers/json" 128 type Container struct { 129 ID string `json:"Id"` 130 Names []string 131 Image string 132 ImageID string 133 Command string 134 Created int64 135 Ports []Port 136 SizeRw int64 `json:",omitempty"` 137 SizeRootFs int64 `json:",omitempty"` 138 Labels map[string]string 139 Status string 140 HostConfig struct { 141 NetworkMode string `json:",omitempty"` 142 } 143 } 144 145 // CopyConfig contains request body of Remote API: 146 // POST "/containers/"+containerID+"/copy" 147 type CopyConfig struct { 148 Resource string 149 } 150 151 // ContainerPathStat is used to encode the header from 152 // GET "/containers/{name:.*}/archive" 153 // "Name" is the file or directory name. 154 type ContainerPathStat struct { 155 Name string `json:"name"` 156 Size int64 `json:"size"` 157 Mode os.FileMode `json:"mode"` 158 Mtime time.Time `json:"mtime"` 159 LinkTarget string `json:"linkTarget"` 160 } 161 162 // ContainerProcessList contains response of Remote API: 163 // GET "/containers/{name:.*}/top" 164 type ContainerProcessList struct { 165 Processes [][]string 166 Titles []string 167 } 168 169 // Version contains response of Remote API: 170 // GET "/version" 171 type Version struct { 172 Version string 173 APIVersion version.Version `json:"ApiVersion"` 174 GitCommit string 175 GoVersion string 176 Os string 177 Arch string 178 KernelVersion string `json:",omitempty"` 179 Experimental bool `json:",omitempty"` 180 BuildTime string `json:",omitempty"` 181 } 182 183 // Info contains response of Remote API: 184 // GET "/info" 185 type Info struct { 186 ID string 187 Containers int 188 Images int 189 Driver string 190 DriverStatus [][2]string 191 MemoryLimit bool 192 SwapLimit bool 193 CPUCfsPeriod bool `json:"CpuCfsPeriod"` 194 CPUCfsQuota bool `json:"CpuCfsQuota"` 195 IPv4Forwarding bool 196 BridgeNfIptables bool 197 BridgeNfIP6tables bool `json:"BridgeNfIp6tables"` 198 Debug bool 199 NFd int 200 OomKillDisable bool 201 NGoroutines int 202 SystemTime string 203 ExecutionDriver string 204 LoggingDriver string 205 NEventsListener int 206 KernelVersion string 207 OperatingSystem string 208 IndexServerAddress string 209 RegistryConfig *registry.ServiceConfig 210 InitSha1 string 211 InitPath string 212 NCPU int 213 MemTotal int64 214 DockerRootDir string 215 HTTPProxy string `json:"HttpProxy"` 216 HTTPSProxy string `json:"HttpsProxy"` 217 NoProxy string 218 Name string 219 Labels []string 220 ExperimentalBuild bool 221 ServerVersion string 222 ClusterStore string 223 ClusterAdvertise string 224 } 225 226 // ExecStartCheck is a temp struct used by execStart 227 // Config fields is part of ExecConfig in runconfig package 228 type ExecStartCheck struct { 229 // ExecStart will first check if it's detached 230 Detach bool 231 // Check if there's a tty 232 Tty bool 233 } 234 235 // ContainerState stores container's running state 236 // it's part of ContainerJSONBase and will return by "inspect" command 237 type ContainerState struct { 238 Status string 239 Running bool 240 Paused bool 241 Restarting bool 242 OOMKilled bool 243 Dead bool 244 Pid int 245 ExitCode int 246 Error string 247 StartedAt string 248 FinishedAt string 249 } 250 251 // ContainerJSONBase contains response of Remote API: 252 // GET "/containers/{name:.*}/json" 253 type ContainerJSONBase struct { 254 ID string `json:"Id"` 255 Created string 256 Path string 257 Args []string 258 State *ContainerState 259 Image string 260 ResolvConfPath string 261 HostnamePath string 262 HostsPath string 263 LogPath string 264 Name string 265 RestartCount int 266 Driver string 267 ExecDriver string 268 MountLabel string 269 ProcessLabel string 270 AppArmorProfile string 271 ExecIDs []string 272 HostConfig *runconfig.HostConfig 273 GraphDriver GraphDriverData 274 SizeRw *int64 `json:",omitempty"` 275 SizeRootFs *int64 `json:",omitempty"` 276 } 277 278 // ContainerJSON is newly used struct along with MountPoint 279 type ContainerJSON struct { 280 *ContainerJSONBase 281 Mounts []MountPoint 282 Config *runconfig.Config 283 NetworkSettings *NetworkSettings 284 } 285 286 // NetworkSettings exposes the network settings in the api 287 type NetworkSettings struct { 288 NetworkSettingsBase 289 DefaultNetworkSettings 290 Networks map[string]*network.EndpointSettings 291 } 292 293 // NetworkSettingsBase holds basic information about networks 294 type NetworkSettingsBase struct { 295 Bridge string 296 SandboxID string 297 HairpinMode bool 298 LinkLocalIPv6Address string 299 LinkLocalIPv6PrefixLen int 300 Ports nat.PortMap 301 SandboxKey string 302 SecondaryIPAddresses []network.Address 303 SecondaryIPv6Addresses []network.Address 304 } 305 306 // DefaultNetworkSettings holds network information 307 // during the 2 release deprecation period. 308 // It will be removed in Docker 1.11. 309 type DefaultNetworkSettings struct { 310 EndpointID string 311 Gateway string 312 GlobalIPv6Address string 313 GlobalIPv6PrefixLen int 314 IPAddress string 315 IPPrefixLen int 316 IPv6Gateway string 317 MacAddress string 318 } 319 320 // MountPoint represents a mount point configuration inside the container. 321 type MountPoint struct { 322 Name string `json:",omitempty"` 323 Source string 324 Destination string 325 Driver string `json:",omitempty"` 326 Mode string 327 RW bool 328 } 329 330 // Volume represents the configuration of a volume for the remote API 331 type Volume struct { 332 Name string // Name is the name of the volume 333 Driver string // Driver is the Driver name used to create the volume 334 Mountpoint string // Mountpoint is the location on disk of the volume 335 } 336 337 // VolumesListResponse contains the response for the remote API: 338 // GET "/volumes" 339 type VolumesListResponse struct { 340 Volumes []*Volume // Volumes is the list of volumes being returned 341 } 342 343 // VolumeCreateRequest contains the response for the remote API: 344 // POST "/volumes/create" 345 type VolumeCreateRequest struct { 346 Name string // Name is the requested name of the volume 347 Driver string // Driver is the name of the driver that should be used to create the volume 348 DriverOpts map[string]string // DriverOpts holds the driver specific options to use for when creating the volume. 349 } 350 351 // NetworkResource is the body of the "get network" http response message 352 type NetworkResource struct { 353 Name string 354 ID string `json:"Id"` 355 Scope string 356 Driver string 357 IPAM network.IPAM 358 Containers map[string]EndpointResource 359 Options map[string]string 360 } 361 362 //EndpointResource contains network resources allocated and usd for a container in a network 363 type EndpointResource struct { 364 EndpointID string 365 MacAddress string 366 IPv4Address string 367 IPv6Address string 368 } 369 370 // NetworkCreate is the expected body of the "create network" http request message 371 type NetworkCreate struct { 372 Name string 373 CheckDuplicate bool 374 Driver string 375 IPAM network.IPAM 376 Options map[string]string 377 } 378 379 // NetworkCreateResponse is the response message sent by the server for network create call 380 type NetworkCreateResponse struct { 381 ID string `json:"Id"` 382 Warning string 383 } 384 385 // NetworkConnect represents the data to be used to connect a container to the network 386 type NetworkConnect struct { 387 Container string 388 } 389 390 // NetworkDisconnect represents the data to be used to disconnect a container from the network 391 type NetworkDisconnect struct { 392 Container string 393 }