types.go 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  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. BuildTime string `json:",omitempty"`
  124. }
  125. // GET "/info"
  126. type Info struct {
  127. ID string
  128. Containers int
  129. Images int
  130. Driver string
  131. DriverStatus [][2]string
  132. MemoryLimit bool
  133. SwapLimit bool
  134. CpuCfsPeriod bool
  135. CpuCfsQuota bool
  136. IPv4Forwarding bool
  137. BridgeNfIptables bool
  138. BridgeNfIp6tables bool
  139. Debug bool
  140. NFd int
  141. OomKillDisable bool
  142. NGoroutines int
  143. SystemTime string
  144. ExecutionDriver string
  145. LoggingDriver string
  146. NEventsListener int
  147. KernelVersion string
  148. OperatingSystem string
  149. IndexServerAddress string
  150. RegistryConfig interface{}
  151. InitSha1 string
  152. InitPath string
  153. NCPU int
  154. MemTotal int64
  155. DockerRootDir string
  156. HttpProxy string
  157. HttpsProxy string
  158. NoProxy string
  159. Name string
  160. Labels []string
  161. ExperimentalBuild bool
  162. }
  163. // This struct is a temp struct used by execStart
  164. // Config fields is part of ExecConfig in runconfig package
  165. type ExecStartCheck struct {
  166. // ExecStart will first check if it's detached
  167. Detach bool
  168. // Check if there's a tty
  169. Tty bool
  170. }
  171. type ContainerState struct {
  172. Running bool
  173. Paused bool
  174. Restarting bool
  175. OOMKilled bool
  176. Dead bool
  177. Pid int
  178. ExitCode int
  179. Error string
  180. StartedAt time.Time
  181. FinishedAt time.Time
  182. }
  183. // GET "/containers/{name:.*}/json"
  184. type ContainerJSONBase struct {
  185. Id string
  186. Created time.Time
  187. Path string
  188. Args []string
  189. State *ContainerState
  190. Image string
  191. NetworkSettings *network.Settings
  192. ResolvConfPath string
  193. HostnamePath string
  194. HostsPath string
  195. LogPath string
  196. Name string
  197. RestartCount int
  198. Driver string
  199. ExecDriver string
  200. MountLabel string
  201. ProcessLabel string
  202. Volumes map[string]string
  203. VolumesRW map[string]bool
  204. AppArmorProfile string
  205. ExecIDs []string
  206. HostConfig *runconfig.HostConfig
  207. GraphDriver GraphDriverData
  208. }
  209. type ContainerJSON struct {
  210. *ContainerJSONBase
  211. Config *runconfig.Config
  212. }
  213. // backcompatibility struct along with ContainerConfig
  214. type ContainerJSONRaw struct {
  215. *ContainerJSONBase
  216. Config *ContainerConfig
  217. }
  218. type ContainerConfig struct {
  219. *runconfig.Config
  220. // backward compatibility, they now live in HostConfig
  221. Memory int64
  222. MemorySwap int64
  223. CpuShares int64
  224. Cpuset string
  225. }