types.go 5.3 KB

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