types.go 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. package types
  2. import (
  3. "time"
  4. "github.com/docker/docker/daemon/network"
  5. "github.com/docker/docker/pkg/version"
  6. "github.com/docker/docker/runconfig"
  7. )
  8. // ContainerCreateResponse contains the information returned to a client on the
  9. // creation of a new container.
  10. type ContainerCreateResponse struct {
  11. // ID is the ID of the created container.
  12. ID string `json:"Id"`
  13. // Warnings are any warnings encountered during the creation of the container.
  14. Warnings []string `json:"Warnings"`
  15. }
  16. // POST /containers/{name:.*}/exec
  17. type ContainerExecCreateResponse struct {
  18. // ID is the exec ID.
  19. ID string `json:"Id"`
  20. }
  21. // POST /auth
  22. type AuthResponse struct {
  23. // Status is the authentication status
  24. Status string `json:"Status"`
  25. }
  26. // POST "/containers/"+containerID+"/wait"
  27. type ContainerWaitResponse struct {
  28. // StatusCode is the status code of the wait job
  29. StatusCode int `json:"StatusCode"`
  30. }
  31. // POST "/commit?container="+containerID
  32. type ContainerCommitResponse struct {
  33. ID string `json:"Id"`
  34. }
  35. // GET "/containers/{name:.*}/changes"
  36. type ContainerChange struct {
  37. Kind int
  38. Path string
  39. }
  40. // GET "/images/{name:.*}/history"
  41. type ImageHistory struct {
  42. ID string `json:"Id"`
  43. Created int64
  44. CreatedBy string
  45. Tags []string
  46. Size int64
  47. Comment string
  48. }
  49. // DELETE "/images/{name:.*}"
  50. type ImageDelete struct {
  51. Untagged string `json:",omitempty"`
  52. Deleted string `json:",omitempty"`
  53. }
  54. // GET "/images/json"
  55. type Image struct {
  56. ID string `json:"Id"`
  57. ParentId string
  58. RepoTags []string
  59. RepoDigests []string
  60. Created int
  61. Size int
  62. VirtualSize int
  63. Labels map[string]string
  64. }
  65. type GraphDriverData struct {
  66. Name string
  67. Data map[string]string
  68. }
  69. // GET "/images/{name:.*}/json"
  70. type ImageInspect struct {
  71. Id string
  72. Parent string
  73. Comment string
  74. Created time.Time
  75. Container string
  76. ContainerConfig *runconfig.Config
  77. DockerVersion string
  78. Author string
  79. Config *runconfig.Config
  80. Architecture string
  81. Os string
  82. Size int64
  83. VirtualSize int64
  84. GraphDriver GraphDriverData
  85. }
  86. // GET "/containers/json"
  87. type Port struct {
  88. IP string `json:",omitempty"`
  89. PrivatePort int
  90. PublicPort int `json:",omitempty"`
  91. Type string
  92. }
  93. type Container struct {
  94. ID string `json:"Id"`
  95. Names []string
  96. Image string
  97. Command string
  98. Created int
  99. Ports []Port
  100. SizeRw int `json:",omitempty"`
  101. SizeRootFs int `json:",omitempty"`
  102. Labels map[string]string
  103. Status string
  104. }
  105. // POST "/containers/"+containerID+"/copy"
  106. type CopyConfig struct {
  107. Resource string
  108. }
  109. // GET "/containers/{name:.*}/top"
  110. type ContainerProcessList struct {
  111. Processes [][]string
  112. Titles []string
  113. }
  114. type Version struct {
  115. Version string
  116. ApiVersion version.Version
  117. GitCommit string
  118. GoVersion string
  119. Os string
  120. Arch string
  121. KernelVersion string `json:",omitempty"`
  122. Experimental bool `json:",omitempty"`
  123. }
  124. // GET "/info"
  125. type Info struct {
  126. ID string
  127. Containers int
  128. Images int
  129. Driver string
  130. DriverStatus [][2]string
  131. MemoryLimit bool
  132. SwapLimit bool
  133. CpuCfsPeriod bool
  134. CpuCfsQuota bool
  135. IPv4Forwarding bool
  136. BridgeNfIptables bool
  137. BridgeNfIp6tables bool
  138. Debug bool
  139. NFd int
  140. OomKillDisable bool
  141. NGoroutines int
  142. SystemTime string
  143. ExecutionDriver string
  144. LoggingDriver string
  145. NEventsListener int
  146. KernelVersion string
  147. OperatingSystem string
  148. IndexServerAddress string
  149. RegistryConfig interface{}
  150. InitSha1 string
  151. InitPath string
  152. NCPU int
  153. MemTotal int64
  154. DockerRootDir string
  155. HttpProxy string
  156. HttpsProxy string
  157. NoProxy string
  158. Name string
  159. Labels []string
  160. ExperimentalBuild bool
  161. }
  162. // This struct is a temp struct used by execStart
  163. // Config fields is part of ExecConfig in runconfig package
  164. type ExecStartCheck struct {
  165. // ExecStart will first check if it's detached
  166. Detach bool
  167. // Check if there's a tty
  168. Tty bool
  169. }
  170. type ContainerState struct {
  171. Running bool
  172. Paused bool
  173. Restarting bool
  174. OOMKilled bool
  175. Dead bool
  176. Pid int
  177. ExitCode int
  178. Error string
  179. StartedAt time.Time
  180. FinishedAt time.Time
  181. }
  182. // GET "/containers/{name:.*}/json"
  183. type ContainerJSONBase struct {
  184. Id string
  185. Created time.Time
  186. Path string
  187. Args []string
  188. State *ContainerState
  189. Image string
  190. NetworkSettings *network.Settings
  191. ResolvConfPath string
  192. HostnamePath string
  193. HostsPath string
  194. LogPath string
  195. Name string
  196. RestartCount int
  197. Driver string
  198. ExecDriver string
  199. MountLabel string
  200. ProcessLabel string
  201. Volumes map[string]string
  202. VolumesRW map[string]bool
  203. AppArmorProfile string
  204. ExecIDs []string
  205. HostConfig *runconfig.HostConfig
  206. GraphDriver GraphDriverData
  207. }
  208. type ContainerJSON struct {
  209. *ContainerJSONBase
  210. Config *runconfig.Config
  211. }
  212. // backcompatibility struct along with ContainerConfig
  213. type ContainerJSONRaw struct {
  214. *ContainerJSONBase
  215. Config *ContainerConfig
  216. }
  217. type ContainerConfig struct {
  218. *runconfig.Config
  219. // backward compatibility, they now live in HostConfig
  220. Memory int64
  221. MemorySwap int64
  222. CpuShares int64
  223. Cpuset string
  224. }