docker-engine 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +17 -0
  4. data/README.md +230 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/docker_engine/client.rb +77 -0
  7. data/lib/docker_engine/errors.rb +228 -0
  8. data/lib/docker_engine/file_part.rb +58 -0
  9. data/lib/docker_engine/internal/transport/base_client.rb +567 -0
  10. data/lib/docker_engine/internal/transport/pooled_net_requester.rb +210 -0
  11. data/lib/docker_engine/internal/type/array_of.rb +168 -0
  12. data/lib/docker_engine/internal/type/base_model.rb +529 -0
  13. data/lib/docker_engine/internal/type/base_page.rb +55 -0
  14. data/lib/docker_engine/internal/type/boolean.rb +77 -0
  15. data/lib/docker_engine/internal/type/converter.rb +327 -0
  16. data/lib/docker_engine/internal/type/enum.rb +131 -0
  17. data/lib/docker_engine/internal/type/file_input.rb +111 -0
  18. data/lib/docker_engine/internal/type/hash_of.rb +188 -0
  19. data/lib/docker_engine/internal/type/request_parameters.rb +42 -0
  20. data/lib/docker_engine/internal/type/union.rb +243 -0
  21. data/lib/docker_engine/internal/type/unknown.rb +81 -0
  22. data/lib/docker_engine/internal/util.rb +920 -0
  23. data/lib/docker_engine/internal.rb +20 -0
  24. data/lib/docker_engine/models/auth_login_params.rb +32 -0
  25. data/lib/docker_engine/models/auth_response.rb +27 -0
  26. data/lib/docker_engine/models/config.rb +307 -0
  27. data/lib/docker_engine/models/container.rb +2489 -0
  28. data/lib/docker_engine/models/container_create_params.rb +1716 -0
  29. data/lib/docker_engine/models/container_delete_params.rb +38 -0
  30. data/lib/docker_engine/models/container_inspect_params.rb +22 -0
  31. data/lib/docker_engine/models/container_kill_params.rb +25 -0
  32. data/lib/docker_engine/models/container_list_params.rb +70 -0
  33. data/lib/docker_engine/models/container_list_response.rb +8 -0
  34. data/lib/docker_engine/models/container_logs_params.rb +74 -0
  35. data/lib/docker_engine/models/container_start_params.rb +27 -0
  36. data/lib/docker_engine/models/container_stop_params.rb +33 -0
  37. data/lib/docker_engine/models/create_request.rb +348 -0
  38. data/lib/docker_engine/models/create_response.rb +27 -0
  39. data/lib/docker_engine/models/error.rb +18 -0
  40. data/lib/docker_engine/models/image.rb +1393 -0
  41. data/lib/docker_engine/models/image_delete_params.rb +43 -0
  42. data/lib/docker_engine/models/image_delete_response.rb +28 -0
  43. data/lib/docker_engine/models/image_inspect_params.rb +22 -0
  44. data/lib/docker_engine/models/image_list_params.rb +68 -0
  45. data/lib/docker_engine/models/image_list_response.rb +8 -0
  46. data/lib/docker_engine/models/image_pull_params.rb +115 -0
  47. data/lib/docker_engine/models/network.rb +253 -0
  48. data/lib/docker_engine/models/network_create_params.rb +210 -0
  49. data/lib/docker_engine/models/network_create_response.rb +27 -0
  50. data/lib/docker_engine/models/network_delete_params.rb +14 -0
  51. data/lib/docker_engine/models/network_inspect_params.rb +30 -0
  52. data/lib/docker_engine/models/network_inspect_response.rb +131 -0
  53. data/lib/docker_engine/models/network_list_params.rb +40 -0
  54. data/lib/docker_engine/models/network_list_response.rb +8 -0
  55. data/lib/docker_engine/models/service.rb +520 -0
  56. data/lib/docker_engine/models/service_create_params.rb +34 -0
  57. data/lib/docker_engine/models/service_create_response.rb +32 -0
  58. data/lib/docker_engine/models/service_delete_params.rb +14 -0
  59. data/lib/docker_engine/models/service_inspect_params.rb +22 -0
  60. data/lib/docker_engine/models/service_list_params.rb +41 -0
  61. data/lib/docker_engine/models/service_list_response.rb +8 -0
  62. data/lib/docker_engine/models/spec.rb +2302 -0
  63. data/lib/docker_engine/models/summary.rb +763 -0
  64. data/lib/docker_engine/models/system_info_params.rb +14 -0
  65. data/lib/docker_engine/models/system_info_response.rb +1879 -0
  66. data/lib/docker_engine/models/system_ping_params.rb +14 -0
  67. data/lib/docker_engine/models/system_ping_response.rb +7 -0
  68. data/lib/docker_engine/models/system_version_params.rb +14 -0
  69. data/lib/docker_engine/models/system_version_response.rb +164 -0
  70. data/lib/docker_engine/models/volume.rb +650 -0
  71. data/lib/docker_engine/models/volume_create_params.rb +14 -0
  72. data/lib/docker_engine/models/volume_delete_params.rb +22 -0
  73. data/lib/docker_engine/models/volume_inspect_params.rb +14 -0
  74. data/lib/docker_engine/models/volume_list_params.rb +34 -0
  75. data/lib/docker_engine/models/volume_list_response.rb +34 -0
  76. data/lib/docker_engine/models.rb +121 -0
  77. data/lib/docker_engine/request_options.rb +77 -0
  78. data/lib/docker_engine/resources/auth.rb +38 -0
  79. data/lib/docker_engine/resources/containers.rb +258 -0
  80. data/lib/docker_engine/resources/images.rb +156 -0
  81. data/lib/docker_engine/resources/networks.rb +139 -0
  82. data/lib/docker_engine/resources/services.rb +113 -0
  83. data/lib/docker_engine/resources/system.rb +70 -0
  84. data/lib/docker_engine/resources/volumes.rb +105 -0
  85. data/lib/docker_engine/version.rb +5 -0
  86. data/lib/docker_engine.rb +114 -0
  87. data/manifest.yaml +17 -0
  88. data/rbi/docker_engine/client.rbi +56 -0
  89. data/rbi/docker_engine/errors.rbi +205 -0
  90. data/rbi/docker_engine/file_part.rbi +37 -0
  91. data/rbi/docker_engine/internal/transport/base_client.rbi +300 -0
  92. data/rbi/docker_engine/internal/transport/pooled_net_requester.rbi +84 -0
  93. data/rbi/docker_engine/internal/type/array_of.rbi +104 -0
  94. data/rbi/docker_engine/internal/type/base_model.rbi +314 -0
  95. data/rbi/docker_engine/internal/type/base_page.rbi +43 -0
  96. data/rbi/docker_engine/internal/type/boolean.rbi +58 -0
  97. data/rbi/docker_engine/internal/type/converter.rbi +222 -0
  98. data/rbi/docker_engine/internal/type/enum.rbi +82 -0
  99. data/rbi/docker_engine/internal/type/file_input.rbi +59 -0
  100. data/rbi/docker_engine/internal/type/hash_of.rbi +104 -0
  101. data/rbi/docker_engine/internal/type/request_parameters.rbi +31 -0
  102. data/rbi/docker_engine/internal/type/union.rbi +128 -0
  103. data/rbi/docker_engine/internal/type/unknown.rbi +58 -0
  104. data/rbi/docker_engine/internal/util.rbi +487 -0
  105. data/rbi/docker_engine/internal.rbi +18 -0
  106. data/rbi/docker_engine/models/auth_login_params.rbi +62 -0
  107. data/rbi/docker_engine/models/auth_response.rbi +39 -0
  108. data/rbi/docker_engine/models/config.rbi +442 -0
  109. data/rbi/docker_engine/models/container.rbi +4575 -0
  110. data/rbi/docker_engine/models/container_create_params.rbi +3297 -0
  111. data/rbi/docker_engine/models/container_delete_params.rbi +71 -0
  112. data/rbi/docker_engine/models/container_inspect_params.rbi +46 -0
  113. data/rbi/docker_engine/models/container_kill_params.rbi +46 -0
  114. data/rbi/docker_engine/models/container_list_params.rbi +124 -0
  115. data/rbi/docker_engine/models/container_list_response.rbi +11 -0
  116. data/rbi/docker_engine/models/container_logs_params.rbi +117 -0
  117. data/rbi/docker_engine/models/container_start_params.rbi +50 -0
  118. data/rbi/docker_engine/models/container_stop_params.rbi +60 -0
  119. data/rbi/docker_engine/models/create_request.rbi +702 -0
  120. data/rbi/docker_engine/models/create_response.rbi +36 -0
  121. data/rbi/docker_engine/models/error.rbi +28 -0
  122. data/rbi/docker_engine/models/image.rbi +2323 -0
  123. data/rbi/docker_engine/models/image_delete_params.rbi +75 -0
  124. data/rbi/docker_engine/models/image_delete_response.rbi +52 -0
  125. data/rbi/docker_engine/models/image_inspect_params.rbi +49 -0
  126. data/rbi/docker_engine/models/image_list_params.rbi +112 -0
  127. data/rbi/docker_engine/models/image_list_response.rbi +11 -0
  128. data/rbi/docker_engine/models/image_pull_params.rbi +186 -0
  129. data/rbi/docker_engine/models/network.rbi +419 -0
  130. data/rbi/docker_engine/models/network_create_params.rbi +362 -0
  131. data/rbi/docker_engine/models/network_create_response.rbi +37 -0
  132. data/rbi/docker_engine/models/network_delete_params.rbi +32 -0
  133. data/rbi/docker_engine/models/network_inspect_params.rbi +60 -0
  134. data/rbi/docker_engine/models/network_inspect_response.rbi +329 -0
  135. data/rbi/docker_engine/models/network_list_params.rbi +76 -0
  136. data/rbi/docker_engine/models/network_list_response.rbi +11 -0
  137. data/rbi/docker_engine/models/service.rbi +1076 -0
  138. data/rbi/docker_engine/models/service_create_params.rbi +77 -0
  139. data/rbi/docker_engine/models/service_create_response.rbi +50 -0
  140. data/rbi/docker_engine/models/service_delete_params.rbi +32 -0
  141. data/rbi/docker_engine/models/service_inspect_params.rbi +49 -0
  142. data/rbi/docker_engine/models/service_list_params.rbi +76 -0
  143. data/rbi/docker_engine/models/service_list_response.rbi +11 -0
  144. data/rbi/docker_engine/models/spec.rbi +4587 -0
  145. data/rbi/docker_engine/models/summary.rbi +1298 -0
  146. data/rbi/docker_engine/models/system_info_params.rbi +29 -0
  147. data/rbi/docker_engine/models/system_info_response.rbi +3587 -0
  148. data/rbi/docker_engine/models/system_ping_params.rbi +29 -0
  149. data/rbi/docker_engine/models/system_ping_response.rbi +7 -0
  150. data/rbi/docker_engine/models/system_version_params.rbi +32 -0
  151. data/rbi/docker_engine/models/system_version_response.rbi +282 -0
  152. data/rbi/docker_engine/models/volume.rbi +1218 -0
  153. data/rbi/docker_engine/models/volume_create_params.rbi +32 -0
  154. data/rbi/docker_engine/models/volume_delete_params.rbi +46 -0
  155. data/rbi/docker_engine/models/volume_inspect_params.rbi +32 -0
  156. data/rbi/docker_engine/models/volume_list_params.rbi +61 -0
  157. data/rbi/docker_engine/models/volume_list_response.rbi +55 -0
  158. data/rbi/docker_engine/models.rbi +83 -0
  159. data/rbi/docker_engine/request_options.rbi +59 -0
  160. data/rbi/docker_engine/resources/auth.rbi +30 -0
  161. data/rbi/docker_engine/resources/containers.rbi +231 -0
  162. data/rbi/docker_engine/resources/images.rbi +164 -0
  163. data/rbi/docker_engine/resources/networks.rbi +133 -0
  164. data/rbi/docker_engine/resources/services.rbi +88 -0
  165. data/rbi/docker_engine/resources/system.rbi +40 -0
  166. data/rbi/docker_engine/resources/volumes.rbi +80 -0
  167. data/rbi/docker_engine/version.rbi +5 -0
  168. data/sig/docker_engine/client.rbs +33 -0
  169. data/sig/docker_engine/errors.rbs +117 -0
  170. data/sig/docker_engine/file_part.rbs +21 -0
  171. data/sig/docker_engine/internal/transport/base_client.rbs +131 -0
  172. data/sig/docker_engine/internal/transport/pooled_net_requester.rbs +48 -0
  173. data/sig/docker_engine/internal/type/array_of.rbs +48 -0
  174. data/sig/docker_engine/internal/type/base_model.rbs +104 -0
  175. data/sig/docker_engine/internal/type/base_page.rbs +24 -0
  176. data/sig/docker_engine/internal/type/boolean.rbs +26 -0
  177. data/sig/docker_engine/internal/type/converter.rbs +79 -0
  178. data/sig/docker_engine/internal/type/enum.rbs +32 -0
  179. data/sig/docker_engine/internal/type/file_input.rbs +25 -0
  180. data/sig/docker_engine/internal/type/hash_of.rbs +48 -0
  181. data/sig/docker_engine/internal/type/request_parameters.rbs +19 -0
  182. data/sig/docker_engine/internal/type/union.rbs +52 -0
  183. data/sig/docker_engine/internal/type/unknown.rbs +26 -0
  184. data/sig/docker_engine/internal/util.rbs +185 -0
  185. data/sig/docker_engine/internal.rbs +9 -0
  186. data/sig/docker_engine/models/auth_login_params.rbs +38 -0
  187. data/sig/docker_engine/models/auth_response.rbs +17 -0
  188. data/sig/docker_engine/models/config.rbs +225 -0
  189. data/sig/docker_engine/models/container.rbs +1973 -0
  190. data/sig/docker_engine/models/container_create_params.rbs +1352 -0
  191. data/sig/docker_engine/models/container_delete_params.rbs +38 -0
  192. data/sig/docker_engine/models/container_inspect_params.rbs +25 -0
  193. data/sig/docker_engine/models/container_kill_params.rbs +25 -0
  194. data/sig/docker_engine/models/container_list_params.rbs +44 -0
  195. data/sig/docker_engine/models/container_list_response.rbs +7 -0
  196. data/sig/docker_engine/models/container_logs_params.rbs +70 -0
  197. data/sig/docker_engine/models/container_start_params.rbs +25 -0
  198. data/sig/docker_engine/models/container_stop_params.rbs +32 -0
  199. data/sig/docker_engine/models/create_request.rbs +255 -0
  200. data/sig/docker_engine/models/create_response.rbs +15 -0
  201. data/sig/docker_engine/models/error.rbs +13 -0
  202. data/sig/docker_engine/models/image.rbs +1038 -0
  203. data/sig/docker_engine/models/image_delete_params.rbs +38 -0
  204. data/sig/docker_engine/models/image_delete_response.rbs +24 -0
  205. data/sig/docker_engine/models/image_inspect_params.rbs +25 -0
  206. data/sig/docker_engine/models/image_list_params.rbs +56 -0
  207. data/sig/docker_engine/models/image_list_response.rbs +7 -0
  208. data/sig/docker_engine/models/image_pull_params.rbs +84 -0
  209. data/sig/docker_engine/models/network.rbs +236 -0
  210. data/sig/docker_engine/models/network_create_params.rbs +203 -0
  211. data/sig/docker_engine/models/network_create_response.rbs +15 -0
  212. data/sig/docker_engine/models/network_delete_params.rbs +15 -0
  213. data/sig/docker_engine/models/network_inspect_params.rbs +32 -0
  214. data/sig/docker_engine/models/network_inspect_response.rbs +149 -0
  215. data/sig/docker_engine/models/network_list_params.rbs +25 -0
  216. data/sig/docker_engine/models/network_list_response.rbs +7 -0
  217. data/sig/docker_engine/models/service.rbs +471 -0
  218. data/sig/docker_engine/models/service_create_params.rbs +38 -0
  219. data/sig/docker_engine/models/service_create_response.rbs +17 -0
  220. data/sig/docker_engine/models/service_delete_params.rbs +15 -0
  221. data/sig/docker_engine/models/service_inspect_params.rbs +26 -0
  222. data/sig/docker_engine/models/service_list_params.rbs +32 -0
  223. data/sig/docker_engine/models/service_list_response.rbs +7 -0
  224. data/sig/docker_engine/models/spec.rbs +1984 -0
  225. data/sig/docker_engine/models/summary.rbs +634 -0
  226. data/sig/docker_engine/models/system_info_params.rbs +15 -0
  227. data/sig/docker_engine/models/system_info_response.rbs +1380 -0
  228. data/sig/docker_engine/models/system_ping_params.rbs +15 -0
  229. data/sig/docker_engine/models/system_ping_response.rbs +5 -0
  230. data/sig/docker_engine/models/system_version_params.rbs +15 -0
  231. data/sig/docker_engine/models/system_version_response.rbs +127 -0
  232. data/sig/docker_engine/models/volume.rbs +478 -0
  233. data/sig/docker_engine/models/volume_create_params.rbs +15 -0
  234. data/sig/docker_engine/models/volume_delete_params.rbs +25 -0
  235. data/sig/docker_engine/models/volume_inspect_params.rbs +15 -0
  236. data/sig/docker_engine/models/volume_list_params.rbs +25 -0
  237. data/sig/docker_engine/models/volume_list_response.rbs +28 -0
  238. data/sig/docker_engine/models.rbs +81 -0
  239. data/sig/docker_engine/request_options.rbs +36 -0
  240. data/sig/docker_engine/resources/auth.rbs +14 -0
  241. data/sig/docker_engine/resources/containers.rbs +67 -0
  242. data/sig/docker_engine/resources/images.rbs +43 -0
  243. data/sig/docker_engine/resources/networks.rbs +41 -0
  244. data/sig/docker_engine/resources/services.rbs +30 -0
  245. data/sig/docker_engine/resources/system.rbs +17 -0
  246. data/sig/docker_engine/resources/volumes.rbs +28 -0
  247. data/sig/docker_engine/version.rbs +3 -0
  248. metadata +319 -0
@@ -0,0 +1,1076 @@
1
+ # typed: strong
2
+
3
+ module DockerEngine
4
+ module Models
5
+ class Service < DockerEngine::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(DockerEngine::Service, DockerEngine::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T.nilable(String)) }
12
+ attr_reader :created_at
13
+
14
+ sig { params(created_at: String).void }
15
+ attr_writer :created_at
16
+
17
+ sig { returns(T.nilable(DockerEngine::Service::Endpoint)) }
18
+ attr_reader :endpoint
19
+
20
+ sig { params(endpoint: DockerEngine::Service::Endpoint::OrHash).void }
21
+ attr_writer :endpoint
22
+
23
+ sig { returns(T.nilable(String)) }
24
+ attr_reader :id
25
+
26
+ sig { params(id: String).void }
27
+ attr_writer :id
28
+
29
+ # The status of the service when it is in one of ReplicatedJob or GlobalJob modes.
30
+ # Absent on Replicated and Global mode services. The JobIteration is an
31
+ # ObjectVersion, but unlike the Service's version, does not need to be sent with
32
+ # an update request.
33
+ sig { returns(T.nilable(DockerEngine::Service::JobStatus)) }
34
+ attr_reader :job_status
35
+
36
+ sig { params(job_status: DockerEngine::Service::JobStatus::OrHash).void }
37
+ attr_writer :job_status
38
+
39
+ # The status of the service's tasks. Provided only when requested as part of a
40
+ # ServiceList operation.
41
+ sig { returns(T.nilable(DockerEngine::Service::ServiceStatus)) }
42
+ attr_reader :service_status
43
+
44
+ sig do
45
+ params(
46
+ service_status: DockerEngine::Service::ServiceStatus::OrHash
47
+ ).void
48
+ end
49
+ attr_writer :service_status
50
+
51
+ # User modifiable configuration for a service.
52
+ sig { returns(T.nilable(DockerEngine::Spec)) }
53
+ attr_reader :spec
54
+
55
+ sig { params(spec: DockerEngine::Spec::OrHash).void }
56
+ attr_writer :spec
57
+
58
+ sig { returns(T.nilable(String)) }
59
+ attr_reader :updated_at
60
+
61
+ sig { params(updated_at: String).void }
62
+ attr_writer :updated_at
63
+
64
+ # The status of a service update.
65
+ sig { returns(T.nilable(DockerEngine::Service::UpdateStatus)) }
66
+ attr_reader :update_status
67
+
68
+ sig do
69
+ params(update_status: DockerEngine::Service::UpdateStatus::OrHash).void
70
+ end
71
+ attr_writer :update_status
72
+
73
+ # The version number of the object such as node, service, etc. This is needed to
74
+ # avoid conflicting writes. The client must send the version number along with the
75
+ # modified specification when updating these objects.
76
+ #
77
+ # This approach ensures safe concurrency and determinism in that the change on the
78
+ # object may not be applied if the version number has changed from the last read.
79
+ # In other words, if two update requests specify the same base version, only one
80
+ # of the requests can succeed. As a result, two separate update requests that
81
+ # happen at the same time will not unintentionally overwrite each other.
82
+ sig { returns(T.nilable(DockerEngine::Service::Version)) }
83
+ attr_reader :version
84
+
85
+ sig { params(version: DockerEngine::Service::Version::OrHash).void }
86
+ attr_writer :version
87
+
88
+ sig do
89
+ params(
90
+ created_at: String,
91
+ endpoint: DockerEngine::Service::Endpoint::OrHash,
92
+ id: String,
93
+ job_status: DockerEngine::Service::JobStatus::OrHash,
94
+ service_status: DockerEngine::Service::ServiceStatus::OrHash,
95
+ spec: DockerEngine::Spec::OrHash,
96
+ updated_at: String,
97
+ update_status: DockerEngine::Service::UpdateStatus::OrHash,
98
+ version: DockerEngine::Service::Version::OrHash
99
+ ).returns(T.attached_class)
100
+ end
101
+ def self.new(
102
+ created_at: nil,
103
+ endpoint: nil,
104
+ id: nil,
105
+ # The status of the service when it is in one of ReplicatedJob or GlobalJob modes.
106
+ # Absent on Replicated and Global mode services. The JobIteration is an
107
+ # ObjectVersion, but unlike the Service's version, does not need to be sent with
108
+ # an update request.
109
+ job_status: nil,
110
+ # The status of the service's tasks. Provided only when requested as part of a
111
+ # ServiceList operation.
112
+ service_status: nil,
113
+ # User modifiable configuration for a service.
114
+ spec: nil,
115
+ updated_at: nil,
116
+ # The status of a service update.
117
+ update_status: nil,
118
+ # The version number of the object such as node, service, etc. This is needed to
119
+ # avoid conflicting writes. The client must send the version number along with the
120
+ # modified specification when updating these objects.
121
+ #
122
+ # This approach ensures safe concurrency and determinism in that the change on the
123
+ # object may not be applied if the version number has changed from the last read.
124
+ # In other words, if two update requests specify the same base version, only one
125
+ # of the requests can succeed. As a result, two separate update requests that
126
+ # happen at the same time will not unintentionally overwrite each other.
127
+ version: nil
128
+ )
129
+ end
130
+
131
+ sig do
132
+ override.returns(
133
+ {
134
+ created_at: String,
135
+ endpoint: DockerEngine::Service::Endpoint,
136
+ id: String,
137
+ job_status: DockerEngine::Service::JobStatus,
138
+ service_status: DockerEngine::Service::ServiceStatus,
139
+ spec: DockerEngine::Spec,
140
+ updated_at: String,
141
+ update_status: DockerEngine::Service::UpdateStatus,
142
+ version: DockerEngine::Service::Version
143
+ }
144
+ )
145
+ end
146
+ def to_hash
147
+ end
148
+
149
+ class Endpoint < DockerEngine::Internal::Type::BaseModel
150
+ OrHash =
151
+ T.type_alias do
152
+ T.any(
153
+ DockerEngine::Service::Endpoint,
154
+ DockerEngine::Internal::AnyHash
155
+ )
156
+ end
157
+
158
+ sig do
159
+ returns(T.nilable(T::Array[DockerEngine::Service::Endpoint::Port]))
160
+ end
161
+ attr_reader :ports
162
+
163
+ sig do
164
+ params(
165
+ ports: T::Array[DockerEngine::Service::Endpoint::Port::OrHash]
166
+ ).void
167
+ end
168
+ attr_writer :ports
169
+
170
+ # Properties that can be configured to access and load balance a service.
171
+ sig { returns(T.nilable(DockerEngine::Service::Endpoint::Spec)) }
172
+ attr_reader :spec
173
+
174
+ sig { params(spec: DockerEngine::Service::Endpoint::Spec::OrHash).void }
175
+ attr_writer :spec
176
+
177
+ sig do
178
+ returns(
179
+ T.nilable(T::Array[DockerEngine::Service::Endpoint::VirtualIP])
180
+ )
181
+ end
182
+ attr_reader :virtual_ips
183
+
184
+ sig do
185
+ params(
186
+ virtual_ips:
187
+ T::Array[DockerEngine::Service::Endpoint::VirtualIP::OrHash]
188
+ ).void
189
+ end
190
+ attr_writer :virtual_ips
191
+
192
+ sig do
193
+ params(
194
+ ports: T::Array[DockerEngine::Service::Endpoint::Port::OrHash],
195
+ spec: DockerEngine::Service::Endpoint::Spec::OrHash,
196
+ virtual_ips:
197
+ T::Array[DockerEngine::Service::Endpoint::VirtualIP::OrHash]
198
+ ).returns(T.attached_class)
199
+ end
200
+ def self.new(
201
+ ports: nil,
202
+ # Properties that can be configured to access and load balance a service.
203
+ spec: nil,
204
+ virtual_ips: nil
205
+ )
206
+ end
207
+
208
+ sig do
209
+ override.returns(
210
+ {
211
+ ports: T::Array[DockerEngine::Service::Endpoint::Port],
212
+ spec: DockerEngine::Service::Endpoint::Spec,
213
+ virtual_ips: T::Array[DockerEngine::Service::Endpoint::VirtualIP]
214
+ }
215
+ )
216
+ end
217
+ def to_hash
218
+ end
219
+
220
+ class Port < DockerEngine::Internal::Type::BaseModel
221
+ OrHash =
222
+ T.type_alias do
223
+ T.any(
224
+ DockerEngine::Service::Endpoint::Port,
225
+ DockerEngine::Internal::AnyHash
226
+ )
227
+ end
228
+
229
+ sig { returns(T.nilable(String)) }
230
+ attr_reader :name
231
+
232
+ sig { params(name: String).void }
233
+ attr_writer :name
234
+
235
+ sig do
236
+ returns(
237
+ T.nilable(
238
+ DockerEngine::Service::Endpoint::Port::Protocol::TaggedSymbol
239
+ )
240
+ )
241
+ end
242
+ attr_reader :protocol
243
+
244
+ sig do
245
+ params(
246
+ protocol:
247
+ DockerEngine::Service::Endpoint::Port::Protocol::OrSymbol
248
+ ).void
249
+ end
250
+ attr_writer :protocol
251
+
252
+ # The port on the swarm hosts.
253
+ sig { returns(T.nilable(Integer)) }
254
+ attr_reader :published_port
255
+
256
+ sig { params(published_port: Integer).void }
257
+ attr_writer :published_port
258
+
259
+ # The mode in which port is published.
260
+ #
261
+ # <p><br /></p>
262
+ #
263
+ # - "ingress" makes the target port accessible on every node, regardless of
264
+ # whether there is a task for the service running on that node or not.
265
+ # - "host" bypasses the routing mesh and publish the port directly on the swarm
266
+ # node where that service is running.
267
+ sig do
268
+ returns(
269
+ T.nilable(
270
+ DockerEngine::Service::Endpoint::Port::PublishMode::TaggedSymbol
271
+ )
272
+ )
273
+ end
274
+ attr_reader :publish_mode
275
+
276
+ sig do
277
+ params(
278
+ publish_mode:
279
+ DockerEngine::Service::Endpoint::Port::PublishMode::OrSymbol
280
+ ).void
281
+ end
282
+ attr_writer :publish_mode
283
+
284
+ # The port inside the container.
285
+ sig { returns(T.nilable(Integer)) }
286
+ attr_reader :target_port
287
+
288
+ sig { params(target_port: Integer).void }
289
+ attr_writer :target_port
290
+
291
+ sig do
292
+ params(
293
+ name: String,
294
+ protocol:
295
+ DockerEngine::Service::Endpoint::Port::Protocol::OrSymbol,
296
+ published_port: Integer,
297
+ publish_mode:
298
+ DockerEngine::Service::Endpoint::Port::PublishMode::OrSymbol,
299
+ target_port: Integer
300
+ ).returns(T.attached_class)
301
+ end
302
+ def self.new(
303
+ name: nil,
304
+ protocol: nil,
305
+ # The port on the swarm hosts.
306
+ published_port: nil,
307
+ # The mode in which port is published.
308
+ #
309
+ # <p><br /></p>
310
+ #
311
+ # - "ingress" makes the target port accessible on every node, regardless of
312
+ # whether there is a task for the service running on that node or not.
313
+ # - "host" bypasses the routing mesh and publish the port directly on the swarm
314
+ # node where that service is running.
315
+ publish_mode: nil,
316
+ # The port inside the container.
317
+ target_port: nil
318
+ )
319
+ end
320
+
321
+ sig do
322
+ override.returns(
323
+ {
324
+ name: String,
325
+ protocol:
326
+ DockerEngine::Service::Endpoint::Port::Protocol::TaggedSymbol,
327
+ published_port: Integer,
328
+ publish_mode:
329
+ DockerEngine::Service::Endpoint::Port::PublishMode::TaggedSymbol,
330
+ target_port: Integer
331
+ }
332
+ )
333
+ end
334
+ def to_hash
335
+ end
336
+
337
+ module Protocol
338
+ extend DockerEngine::Internal::Type::Enum
339
+
340
+ TaggedSymbol =
341
+ T.type_alias do
342
+ T.all(Symbol, DockerEngine::Service::Endpoint::Port::Protocol)
343
+ end
344
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
345
+
346
+ TCP =
347
+ T.let(
348
+ :tcp,
349
+ DockerEngine::Service::Endpoint::Port::Protocol::TaggedSymbol
350
+ )
351
+ UDP =
352
+ T.let(
353
+ :udp,
354
+ DockerEngine::Service::Endpoint::Port::Protocol::TaggedSymbol
355
+ )
356
+ SCTP =
357
+ T.let(
358
+ :sctp,
359
+ DockerEngine::Service::Endpoint::Port::Protocol::TaggedSymbol
360
+ )
361
+
362
+ sig do
363
+ override.returns(
364
+ T::Array[
365
+ DockerEngine::Service::Endpoint::Port::Protocol::TaggedSymbol
366
+ ]
367
+ )
368
+ end
369
+ def self.values
370
+ end
371
+ end
372
+
373
+ # The mode in which port is published.
374
+ #
375
+ # <p><br /></p>
376
+ #
377
+ # - "ingress" makes the target port accessible on every node, regardless of
378
+ # whether there is a task for the service running on that node or not.
379
+ # - "host" bypasses the routing mesh and publish the port directly on the swarm
380
+ # node where that service is running.
381
+ module PublishMode
382
+ extend DockerEngine::Internal::Type::Enum
383
+
384
+ TaggedSymbol =
385
+ T.type_alias do
386
+ T.all(
387
+ Symbol,
388
+ DockerEngine::Service::Endpoint::Port::PublishMode
389
+ )
390
+ end
391
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
392
+
393
+ INGRESS =
394
+ T.let(
395
+ :ingress,
396
+ DockerEngine::Service::Endpoint::Port::PublishMode::TaggedSymbol
397
+ )
398
+ HOST =
399
+ T.let(
400
+ :host,
401
+ DockerEngine::Service::Endpoint::Port::PublishMode::TaggedSymbol
402
+ )
403
+
404
+ sig do
405
+ override.returns(
406
+ T::Array[
407
+ DockerEngine::Service::Endpoint::Port::PublishMode::TaggedSymbol
408
+ ]
409
+ )
410
+ end
411
+ def self.values
412
+ end
413
+ end
414
+ end
415
+
416
+ class Spec < DockerEngine::Internal::Type::BaseModel
417
+ OrHash =
418
+ T.type_alias do
419
+ T.any(
420
+ DockerEngine::Service::Endpoint::Spec,
421
+ DockerEngine::Internal::AnyHash
422
+ )
423
+ end
424
+
425
+ # The mode of resolution to use for internal load balancing between tasks.
426
+ sig do
427
+ returns(
428
+ T.nilable(
429
+ DockerEngine::Service::Endpoint::Spec::Mode::TaggedSymbol
430
+ )
431
+ )
432
+ end
433
+ attr_reader :mode
434
+
435
+ sig do
436
+ params(
437
+ mode: DockerEngine::Service::Endpoint::Spec::Mode::OrSymbol
438
+ ).void
439
+ end
440
+ attr_writer :mode
441
+
442
+ # List of exposed ports that this service is accessible on from the outside. Ports
443
+ # can only be provided if `vip` resolution mode is used.
444
+ sig do
445
+ returns(
446
+ T.nilable(T::Array[DockerEngine::Service::Endpoint::Spec::Port])
447
+ )
448
+ end
449
+ attr_reader :ports
450
+
451
+ sig do
452
+ params(
453
+ ports:
454
+ T::Array[DockerEngine::Service::Endpoint::Spec::Port::OrHash]
455
+ ).void
456
+ end
457
+ attr_writer :ports
458
+
459
+ # Properties that can be configured to access and load balance a service.
460
+ sig do
461
+ params(
462
+ mode: DockerEngine::Service::Endpoint::Spec::Mode::OrSymbol,
463
+ ports:
464
+ T::Array[DockerEngine::Service::Endpoint::Spec::Port::OrHash]
465
+ ).returns(T.attached_class)
466
+ end
467
+ def self.new(
468
+ # The mode of resolution to use for internal load balancing between tasks.
469
+ mode: nil,
470
+ # List of exposed ports that this service is accessible on from the outside. Ports
471
+ # can only be provided if `vip` resolution mode is used.
472
+ ports: nil
473
+ )
474
+ end
475
+
476
+ sig do
477
+ override.returns(
478
+ {
479
+ mode: DockerEngine::Service::Endpoint::Spec::Mode::TaggedSymbol,
480
+ ports: T::Array[DockerEngine::Service::Endpoint::Spec::Port]
481
+ }
482
+ )
483
+ end
484
+ def to_hash
485
+ end
486
+
487
+ # The mode of resolution to use for internal load balancing between tasks.
488
+ module Mode
489
+ extend DockerEngine::Internal::Type::Enum
490
+
491
+ TaggedSymbol =
492
+ T.type_alias do
493
+ T.all(Symbol, DockerEngine::Service::Endpoint::Spec::Mode)
494
+ end
495
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
496
+
497
+ VIP =
498
+ T.let(
499
+ :vip,
500
+ DockerEngine::Service::Endpoint::Spec::Mode::TaggedSymbol
501
+ )
502
+ DNSRR =
503
+ T.let(
504
+ :dnsrr,
505
+ DockerEngine::Service::Endpoint::Spec::Mode::TaggedSymbol
506
+ )
507
+
508
+ sig do
509
+ override.returns(
510
+ T::Array[
511
+ DockerEngine::Service::Endpoint::Spec::Mode::TaggedSymbol
512
+ ]
513
+ )
514
+ end
515
+ def self.values
516
+ end
517
+ end
518
+
519
+ class Port < DockerEngine::Internal::Type::BaseModel
520
+ OrHash =
521
+ T.type_alias do
522
+ T.any(
523
+ DockerEngine::Service::Endpoint::Spec::Port,
524
+ DockerEngine::Internal::AnyHash
525
+ )
526
+ end
527
+
528
+ sig { returns(T.nilable(String)) }
529
+ attr_reader :name
530
+
531
+ sig { params(name: String).void }
532
+ attr_writer :name
533
+
534
+ sig do
535
+ returns(
536
+ T.nilable(
537
+ DockerEngine::Service::Endpoint::Spec::Port::Protocol::TaggedSymbol
538
+ )
539
+ )
540
+ end
541
+ attr_reader :protocol
542
+
543
+ sig do
544
+ params(
545
+ protocol:
546
+ DockerEngine::Service::Endpoint::Spec::Port::Protocol::OrSymbol
547
+ ).void
548
+ end
549
+ attr_writer :protocol
550
+
551
+ # The port on the swarm hosts.
552
+ sig { returns(T.nilable(Integer)) }
553
+ attr_reader :published_port
554
+
555
+ sig { params(published_port: Integer).void }
556
+ attr_writer :published_port
557
+
558
+ # The mode in which port is published.
559
+ #
560
+ # <p><br /></p>
561
+ #
562
+ # - "ingress" makes the target port accessible on every node, regardless of
563
+ # whether there is a task for the service running on that node or not.
564
+ # - "host" bypasses the routing mesh and publish the port directly on the swarm
565
+ # node where that service is running.
566
+ sig do
567
+ returns(
568
+ T.nilable(
569
+ DockerEngine::Service::Endpoint::Spec::Port::PublishMode::TaggedSymbol
570
+ )
571
+ )
572
+ end
573
+ attr_reader :publish_mode
574
+
575
+ sig do
576
+ params(
577
+ publish_mode:
578
+ DockerEngine::Service::Endpoint::Spec::Port::PublishMode::OrSymbol
579
+ ).void
580
+ end
581
+ attr_writer :publish_mode
582
+
583
+ # The port inside the container.
584
+ sig { returns(T.nilable(Integer)) }
585
+ attr_reader :target_port
586
+
587
+ sig { params(target_port: Integer).void }
588
+ attr_writer :target_port
589
+
590
+ sig do
591
+ params(
592
+ name: String,
593
+ protocol:
594
+ DockerEngine::Service::Endpoint::Spec::Port::Protocol::OrSymbol,
595
+ published_port: Integer,
596
+ publish_mode:
597
+ DockerEngine::Service::Endpoint::Spec::Port::PublishMode::OrSymbol,
598
+ target_port: Integer
599
+ ).returns(T.attached_class)
600
+ end
601
+ def self.new(
602
+ name: nil,
603
+ protocol: nil,
604
+ # The port on the swarm hosts.
605
+ published_port: nil,
606
+ # The mode in which port is published.
607
+ #
608
+ # <p><br /></p>
609
+ #
610
+ # - "ingress" makes the target port accessible on every node, regardless of
611
+ # whether there is a task for the service running on that node or not.
612
+ # - "host" bypasses the routing mesh and publish the port directly on the swarm
613
+ # node where that service is running.
614
+ publish_mode: nil,
615
+ # The port inside the container.
616
+ target_port: nil
617
+ )
618
+ end
619
+
620
+ sig do
621
+ override.returns(
622
+ {
623
+ name: String,
624
+ protocol:
625
+ DockerEngine::Service::Endpoint::Spec::Port::Protocol::TaggedSymbol,
626
+ published_port: Integer,
627
+ publish_mode:
628
+ DockerEngine::Service::Endpoint::Spec::Port::PublishMode::TaggedSymbol,
629
+ target_port: Integer
630
+ }
631
+ )
632
+ end
633
+ def to_hash
634
+ end
635
+
636
+ module Protocol
637
+ extend DockerEngine::Internal::Type::Enum
638
+
639
+ TaggedSymbol =
640
+ T.type_alias do
641
+ T.all(
642
+ Symbol,
643
+ DockerEngine::Service::Endpoint::Spec::Port::Protocol
644
+ )
645
+ end
646
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
647
+
648
+ TCP =
649
+ T.let(
650
+ :tcp,
651
+ DockerEngine::Service::Endpoint::Spec::Port::Protocol::TaggedSymbol
652
+ )
653
+ UDP =
654
+ T.let(
655
+ :udp,
656
+ DockerEngine::Service::Endpoint::Spec::Port::Protocol::TaggedSymbol
657
+ )
658
+ SCTP =
659
+ T.let(
660
+ :sctp,
661
+ DockerEngine::Service::Endpoint::Spec::Port::Protocol::TaggedSymbol
662
+ )
663
+
664
+ sig do
665
+ override.returns(
666
+ T::Array[
667
+ DockerEngine::Service::Endpoint::Spec::Port::Protocol::TaggedSymbol
668
+ ]
669
+ )
670
+ end
671
+ def self.values
672
+ end
673
+ end
674
+
675
+ # The mode in which port is published.
676
+ #
677
+ # <p><br /></p>
678
+ #
679
+ # - "ingress" makes the target port accessible on every node, regardless of
680
+ # whether there is a task for the service running on that node or not.
681
+ # - "host" bypasses the routing mesh and publish the port directly on the swarm
682
+ # node where that service is running.
683
+ module PublishMode
684
+ extend DockerEngine::Internal::Type::Enum
685
+
686
+ TaggedSymbol =
687
+ T.type_alias do
688
+ T.all(
689
+ Symbol,
690
+ DockerEngine::Service::Endpoint::Spec::Port::PublishMode
691
+ )
692
+ end
693
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
694
+
695
+ INGRESS =
696
+ T.let(
697
+ :ingress,
698
+ DockerEngine::Service::Endpoint::Spec::Port::PublishMode::TaggedSymbol
699
+ )
700
+ HOST =
701
+ T.let(
702
+ :host,
703
+ DockerEngine::Service::Endpoint::Spec::Port::PublishMode::TaggedSymbol
704
+ )
705
+
706
+ sig do
707
+ override.returns(
708
+ T::Array[
709
+ DockerEngine::Service::Endpoint::Spec::Port::PublishMode::TaggedSymbol
710
+ ]
711
+ )
712
+ end
713
+ def self.values
714
+ end
715
+ end
716
+ end
717
+ end
718
+
719
+ class VirtualIP < DockerEngine::Internal::Type::BaseModel
720
+ OrHash =
721
+ T.type_alias do
722
+ T.any(
723
+ DockerEngine::Service::Endpoint::VirtualIP,
724
+ DockerEngine::Internal::AnyHash
725
+ )
726
+ end
727
+
728
+ sig { returns(T.nilable(String)) }
729
+ attr_reader :addr
730
+
731
+ sig { params(addr: String).void }
732
+ attr_writer :addr
733
+
734
+ sig { returns(T.nilable(String)) }
735
+ attr_reader :network_id
736
+
737
+ sig { params(network_id: String).void }
738
+ attr_writer :network_id
739
+
740
+ sig do
741
+ params(addr: String, network_id: String).returns(T.attached_class)
742
+ end
743
+ def self.new(addr: nil, network_id: nil)
744
+ end
745
+
746
+ sig { override.returns({ addr: String, network_id: String }) }
747
+ def to_hash
748
+ end
749
+ end
750
+ end
751
+
752
+ class JobStatus < DockerEngine::Internal::Type::BaseModel
753
+ OrHash =
754
+ T.type_alias do
755
+ T.any(
756
+ DockerEngine::Service::JobStatus,
757
+ DockerEngine::Internal::AnyHash
758
+ )
759
+ end
760
+
761
+ # The version number of the object such as node, service, etc. This is needed to
762
+ # avoid conflicting writes. The client must send the version number along with the
763
+ # modified specification when updating these objects.
764
+ #
765
+ # This approach ensures safe concurrency and determinism in that the change on the
766
+ # object may not be applied if the version number has changed from the last read.
767
+ # In other words, if two update requests specify the same base version, only one
768
+ # of the requests can succeed. As a result, two separate update requests that
769
+ # happen at the same time will not unintentionally overwrite each other.
770
+ sig do
771
+ returns(T.nilable(DockerEngine::Service::JobStatus::JobIteration))
772
+ end
773
+ attr_reader :job_iteration
774
+
775
+ sig do
776
+ params(
777
+ job_iteration:
778
+ DockerEngine::Service::JobStatus::JobIteration::OrHash
779
+ ).void
780
+ end
781
+ attr_writer :job_iteration
782
+
783
+ # The last time, as observed by the server, that this job was started.
784
+ sig { returns(T.nilable(String)) }
785
+ attr_reader :last_execution
786
+
787
+ sig { params(last_execution: String).void }
788
+ attr_writer :last_execution
789
+
790
+ # The status of the service when it is in one of ReplicatedJob or GlobalJob modes.
791
+ # Absent on Replicated and Global mode services. The JobIteration is an
792
+ # ObjectVersion, but unlike the Service's version, does not need to be sent with
793
+ # an update request.
794
+ sig do
795
+ params(
796
+ job_iteration:
797
+ DockerEngine::Service::JobStatus::JobIteration::OrHash,
798
+ last_execution: String
799
+ ).returns(T.attached_class)
800
+ end
801
+ def self.new(
802
+ # The version number of the object such as node, service, etc. This is needed to
803
+ # avoid conflicting writes. The client must send the version number along with the
804
+ # modified specification when updating these objects.
805
+ #
806
+ # This approach ensures safe concurrency and determinism in that the change on the
807
+ # object may not be applied if the version number has changed from the last read.
808
+ # In other words, if two update requests specify the same base version, only one
809
+ # of the requests can succeed. As a result, two separate update requests that
810
+ # happen at the same time will not unintentionally overwrite each other.
811
+ job_iteration: nil,
812
+ # The last time, as observed by the server, that this job was started.
813
+ last_execution: nil
814
+ )
815
+ end
816
+
817
+ sig do
818
+ override.returns(
819
+ {
820
+ job_iteration: DockerEngine::Service::JobStatus::JobIteration,
821
+ last_execution: String
822
+ }
823
+ )
824
+ end
825
+ def to_hash
826
+ end
827
+
828
+ class JobIteration < DockerEngine::Internal::Type::BaseModel
829
+ OrHash =
830
+ T.type_alias do
831
+ T.any(
832
+ DockerEngine::Service::JobStatus::JobIteration,
833
+ DockerEngine::Internal::AnyHash
834
+ )
835
+ end
836
+
837
+ sig { returns(T.nilable(Integer)) }
838
+ attr_reader :index
839
+
840
+ sig { params(index: Integer).void }
841
+ attr_writer :index
842
+
843
+ # The version number of the object such as node, service, etc. This is needed to
844
+ # avoid conflicting writes. The client must send the version number along with the
845
+ # modified specification when updating these objects.
846
+ #
847
+ # This approach ensures safe concurrency and determinism in that the change on the
848
+ # object may not be applied if the version number has changed from the last read.
849
+ # In other words, if two update requests specify the same base version, only one
850
+ # of the requests can succeed. As a result, two separate update requests that
851
+ # happen at the same time will not unintentionally overwrite each other.
852
+ sig { params(index: Integer).returns(T.attached_class) }
853
+ def self.new(index: nil)
854
+ end
855
+
856
+ sig { override.returns({ index: Integer }) }
857
+ def to_hash
858
+ end
859
+ end
860
+ end
861
+
862
+ class ServiceStatus < DockerEngine::Internal::Type::BaseModel
863
+ OrHash =
864
+ T.type_alias do
865
+ T.any(
866
+ DockerEngine::Service::ServiceStatus,
867
+ DockerEngine::Internal::AnyHash
868
+ )
869
+ end
870
+
871
+ # The number of tasks for a job that are in the Completed state. This field must
872
+ # be cross-referenced with the service type, as the value of 0 may mean the
873
+ # service is not in a job mode, or it may mean the job-mode service has no tasks
874
+ # yet Completed.
875
+ sig { returns(T.nilable(Integer)) }
876
+ attr_reader :completed_tasks
877
+
878
+ sig { params(completed_tasks: Integer).void }
879
+ attr_writer :completed_tasks
880
+
881
+ # The number of tasks for the service desired to be running. For replicated
882
+ # services, this is the replica count from the service spec. For global services,
883
+ # this is computed by taking count of all tasks for the service with a Desired
884
+ # State other than Shutdown.
885
+ sig { returns(T.nilable(Integer)) }
886
+ attr_reader :desired_tasks
887
+
888
+ sig { params(desired_tasks: Integer).void }
889
+ attr_writer :desired_tasks
890
+
891
+ # The number of tasks for the service currently in the Running state.
892
+ sig { returns(T.nilable(Integer)) }
893
+ attr_reader :running_tasks
894
+
895
+ sig { params(running_tasks: Integer).void }
896
+ attr_writer :running_tasks
897
+
898
+ # The status of the service's tasks. Provided only when requested as part of a
899
+ # ServiceList operation.
900
+ sig do
901
+ params(
902
+ completed_tasks: Integer,
903
+ desired_tasks: Integer,
904
+ running_tasks: Integer
905
+ ).returns(T.attached_class)
906
+ end
907
+ def self.new(
908
+ # The number of tasks for a job that are in the Completed state. This field must
909
+ # be cross-referenced with the service type, as the value of 0 may mean the
910
+ # service is not in a job mode, or it may mean the job-mode service has no tasks
911
+ # yet Completed.
912
+ completed_tasks: nil,
913
+ # The number of tasks for the service desired to be running. For replicated
914
+ # services, this is the replica count from the service spec. For global services,
915
+ # this is computed by taking count of all tasks for the service with a Desired
916
+ # State other than Shutdown.
917
+ desired_tasks: nil,
918
+ # The number of tasks for the service currently in the Running state.
919
+ running_tasks: nil
920
+ )
921
+ end
922
+
923
+ sig do
924
+ override.returns(
925
+ {
926
+ completed_tasks: Integer,
927
+ desired_tasks: Integer,
928
+ running_tasks: Integer
929
+ }
930
+ )
931
+ end
932
+ def to_hash
933
+ end
934
+ end
935
+
936
+ class UpdateStatus < DockerEngine::Internal::Type::BaseModel
937
+ OrHash =
938
+ T.type_alias do
939
+ T.any(
940
+ DockerEngine::Service::UpdateStatus,
941
+ DockerEngine::Internal::AnyHash
942
+ )
943
+ end
944
+
945
+ sig { returns(T.nilable(String)) }
946
+ attr_reader :completed_at
947
+
948
+ sig { params(completed_at: String).void }
949
+ attr_writer :completed_at
950
+
951
+ sig { returns(T.nilable(String)) }
952
+ attr_reader :message
953
+
954
+ sig { params(message: String).void }
955
+ attr_writer :message
956
+
957
+ sig { returns(T.nilable(String)) }
958
+ attr_reader :started_at
959
+
960
+ sig { params(started_at: String).void }
961
+ attr_writer :started_at
962
+
963
+ sig do
964
+ returns(
965
+ T.nilable(DockerEngine::Service::UpdateStatus::State::TaggedSymbol)
966
+ )
967
+ end
968
+ attr_reader :state
969
+
970
+ sig do
971
+ params(
972
+ state: DockerEngine::Service::UpdateStatus::State::OrSymbol
973
+ ).void
974
+ end
975
+ attr_writer :state
976
+
977
+ # The status of a service update.
978
+ sig do
979
+ params(
980
+ completed_at: String,
981
+ message: String,
982
+ started_at: String,
983
+ state: DockerEngine::Service::UpdateStatus::State::OrSymbol
984
+ ).returns(T.attached_class)
985
+ end
986
+ def self.new(
987
+ completed_at: nil,
988
+ message: nil,
989
+ started_at: nil,
990
+ state: nil
991
+ )
992
+ end
993
+
994
+ sig do
995
+ override.returns(
996
+ {
997
+ completed_at: String,
998
+ message: String,
999
+ started_at: String,
1000
+ state: DockerEngine::Service::UpdateStatus::State::TaggedSymbol
1001
+ }
1002
+ )
1003
+ end
1004
+ def to_hash
1005
+ end
1006
+
1007
+ module State
1008
+ extend DockerEngine::Internal::Type::Enum
1009
+
1010
+ TaggedSymbol =
1011
+ T.type_alias do
1012
+ T.all(Symbol, DockerEngine::Service::UpdateStatus::State)
1013
+ end
1014
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1015
+
1016
+ UPDATING =
1017
+ T.let(
1018
+ :updating,
1019
+ DockerEngine::Service::UpdateStatus::State::TaggedSymbol
1020
+ )
1021
+ PAUSED =
1022
+ T.let(
1023
+ :paused,
1024
+ DockerEngine::Service::UpdateStatus::State::TaggedSymbol
1025
+ )
1026
+ COMPLETED =
1027
+ T.let(
1028
+ :completed,
1029
+ DockerEngine::Service::UpdateStatus::State::TaggedSymbol
1030
+ )
1031
+
1032
+ sig do
1033
+ override.returns(
1034
+ T::Array[DockerEngine::Service::UpdateStatus::State::TaggedSymbol]
1035
+ )
1036
+ end
1037
+ def self.values
1038
+ end
1039
+ end
1040
+ end
1041
+
1042
+ class Version < DockerEngine::Internal::Type::BaseModel
1043
+ OrHash =
1044
+ T.type_alias do
1045
+ T.any(
1046
+ DockerEngine::Service::Version,
1047
+ DockerEngine::Internal::AnyHash
1048
+ )
1049
+ end
1050
+
1051
+ sig { returns(T.nilable(Integer)) }
1052
+ attr_reader :index
1053
+
1054
+ sig { params(index: Integer).void }
1055
+ attr_writer :index
1056
+
1057
+ # The version number of the object such as node, service, etc. This is needed to
1058
+ # avoid conflicting writes. The client must send the version number along with the
1059
+ # modified specification when updating these objects.
1060
+ #
1061
+ # This approach ensures safe concurrency and determinism in that the change on the
1062
+ # object may not be applied if the version number has changed from the last read.
1063
+ # In other words, if two update requests specify the same base version, only one
1064
+ # of the requests can succeed. As a result, two separate update requests that
1065
+ # happen at the same time will not unintentionally overwrite each other.
1066
+ sig { params(index: Integer).returns(T.attached_class) }
1067
+ def self.new(index: nil)
1068
+ end
1069
+
1070
+ sig { override.returns({ index: Integer }) }
1071
+ def to_hash
1072
+ end
1073
+ end
1074
+ end
1075
+ end
1076
+ end