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,702 @@
1
+ # typed: strong
2
+
3
+ module DockerEngine
4
+ module Models
5
+ class CreateRequest < DockerEngine::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(DockerEngine::CreateRequest, DockerEngine::Internal::AnyHash)
9
+ end
10
+
11
+ # Cluster-specific options used to create the volume.
12
+ sig { returns(T.nilable(DockerEngine::CreateRequest::ClusterVolumeSpec)) }
13
+ attr_reader :cluster_volume_spec
14
+
15
+ sig do
16
+ params(
17
+ cluster_volume_spec:
18
+ DockerEngine::CreateRequest::ClusterVolumeSpec::OrHash
19
+ ).void
20
+ end
21
+ attr_writer :cluster_volume_spec
22
+
23
+ # Name of the volume driver to use.
24
+ sig { returns(T.nilable(String)) }
25
+ attr_reader :driver
26
+
27
+ sig { params(driver: String).void }
28
+ attr_writer :driver
29
+
30
+ # A mapping of driver options and values. These options are passed directly to the
31
+ # driver and are driver specific.
32
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
33
+ attr_reader :driver_opts
34
+
35
+ sig { params(driver_opts: T::Hash[Symbol, String]).void }
36
+ attr_writer :driver_opts
37
+
38
+ # User-defined key/value metadata.
39
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
40
+ attr_reader :labels
41
+
42
+ sig { params(labels: T::Hash[Symbol, String]).void }
43
+ attr_writer :labels
44
+
45
+ # The new volume's name. If not specified, Docker generates a name.
46
+ sig { returns(T.nilable(String)) }
47
+ attr_reader :name
48
+
49
+ sig { params(name: String).void }
50
+ attr_writer :name
51
+
52
+ # Volume configuration
53
+ sig do
54
+ params(
55
+ cluster_volume_spec:
56
+ DockerEngine::CreateRequest::ClusterVolumeSpec::OrHash,
57
+ driver: String,
58
+ driver_opts: T::Hash[Symbol, String],
59
+ labels: T::Hash[Symbol, String],
60
+ name: String
61
+ ).returns(T.attached_class)
62
+ end
63
+ def self.new(
64
+ # Cluster-specific options used to create the volume.
65
+ cluster_volume_spec: nil,
66
+ # Name of the volume driver to use.
67
+ driver: nil,
68
+ # A mapping of driver options and values. These options are passed directly to the
69
+ # driver and are driver specific.
70
+ driver_opts: nil,
71
+ # User-defined key/value metadata.
72
+ labels: nil,
73
+ # The new volume's name. If not specified, Docker generates a name.
74
+ name: nil
75
+ )
76
+ end
77
+
78
+ sig do
79
+ override.returns(
80
+ {
81
+ cluster_volume_spec: DockerEngine::CreateRequest::ClusterVolumeSpec,
82
+ driver: String,
83
+ driver_opts: T::Hash[Symbol, String],
84
+ labels: T::Hash[Symbol, String],
85
+ name: String
86
+ }
87
+ )
88
+ end
89
+ def to_hash
90
+ end
91
+
92
+ class ClusterVolumeSpec < DockerEngine::Internal::Type::BaseModel
93
+ OrHash =
94
+ T.type_alias do
95
+ T.any(
96
+ DockerEngine::CreateRequest::ClusterVolumeSpec,
97
+ DockerEngine::Internal::AnyHash
98
+ )
99
+ end
100
+
101
+ # Defines how the volume is used by tasks.
102
+ sig do
103
+ returns(
104
+ T.nilable(
105
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode
106
+ )
107
+ )
108
+ end
109
+ attr_reader :access_mode
110
+
111
+ sig do
112
+ params(
113
+ access_mode:
114
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::OrHash
115
+ ).void
116
+ end
117
+ attr_writer :access_mode
118
+
119
+ # Group defines the volume group of this volume. Volumes belonging to the same
120
+ # group can be referred to by group name when creating Services. Referring to a
121
+ # volume by group instructs Swarm to treat volumes in that group interchangeably
122
+ # for the purpose of scheduling. Volumes with an empty string for a group
123
+ # technically all belong to the same, emptystring group.
124
+ sig { returns(T.nilable(String)) }
125
+ attr_reader :group
126
+
127
+ sig { params(group: String).void }
128
+ attr_writer :group
129
+
130
+ # Cluster-specific options used to create the volume.
131
+ sig do
132
+ params(
133
+ access_mode:
134
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::OrHash,
135
+ group: String
136
+ ).returns(T.attached_class)
137
+ end
138
+ def self.new(
139
+ # Defines how the volume is used by tasks.
140
+ access_mode: nil,
141
+ # Group defines the volume group of this volume. Volumes belonging to the same
142
+ # group can be referred to by group name when creating Services. Referring to a
143
+ # volume by group instructs Swarm to treat volumes in that group interchangeably
144
+ # for the purpose of scheduling. Volumes with an empty string for a group
145
+ # technically all belong to the same, emptystring group.
146
+ group: nil
147
+ )
148
+ end
149
+
150
+ sig do
151
+ override.returns(
152
+ {
153
+ access_mode:
154
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode,
155
+ group: String
156
+ }
157
+ )
158
+ end
159
+ def to_hash
160
+ end
161
+
162
+ class AccessMode < DockerEngine::Internal::Type::BaseModel
163
+ OrHash =
164
+ T.type_alias do
165
+ T.any(
166
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode,
167
+ DockerEngine::Internal::AnyHash
168
+ )
169
+ end
170
+
171
+ # Requirements for the accessible topology of the volume. These fields are
172
+ # optional. For an in-depth description of what these fields mean, see the CSI
173
+ # specification.
174
+ sig do
175
+ returns(
176
+ T.nilable(
177
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::AccessibilityRequirements
178
+ )
179
+ )
180
+ end
181
+ attr_reader :accessibility_requirements
182
+
183
+ sig do
184
+ params(
185
+ accessibility_requirements:
186
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::AccessibilityRequirements::OrHash
187
+ ).void
188
+ end
189
+ attr_writer :accessibility_requirements
190
+
191
+ # The availability of the volume for use in tasks.
192
+ #
193
+ # - `active` The volume is fully available for scheduling on the cluster
194
+ # - `pause` No new workloads should use the volume, but existing workloads are not
195
+ # stopped.
196
+ # - `drain` All workloads using this volume should be stopped and rescheduled, and
197
+ # no new ones should be started.
198
+ sig do
199
+ returns(
200
+ T.nilable(
201
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Availability::OrSymbol
202
+ )
203
+ )
204
+ end
205
+ attr_reader :availability
206
+
207
+ sig do
208
+ params(
209
+ availability:
210
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Availability::OrSymbol
211
+ ).void
212
+ end
213
+ attr_writer :availability
214
+
215
+ # The desired capacity that the volume should be created with. If empty, the
216
+ # plugin will decide the capacity.
217
+ sig do
218
+ returns(
219
+ T.nilable(
220
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::CapacityRange
221
+ )
222
+ )
223
+ end
224
+ attr_reader :capacity_range
225
+
226
+ sig do
227
+ params(
228
+ capacity_range:
229
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::CapacityRange::OrHash
230
+ ).void
231
+ end
232
+ attr_writer :capacity_range
233
+
234
+ # Options for using this volume as a Mount-type volume.
235
+ #
236
+ # Either MountVolume or BlockVolume, but not both, must be
237
+ # present.
238
+ #
239
+ # properties: FsType: type: "string" description: | Specifies the filesystem type
240
+ # for the mount volume. Optional. MountFlags: type: "array" description: | Flags
241
+ # to pass when mounting the volume. Optional. items: type: "string" BlockVolume:
242
+ # type: "object" description: | Options for using this volume as a Block-type
243
+ # volume. Intentionally empty.
244
+ sig { returns(T.nilable(T.anything)) }
245
+ attr_reader :mount_volume
246
+
247
+ sig { params(mount_volume: T.anything).void }
248
+ attr_writer :mount_volume
249
+
250
+ # The set of nodes this volume can be used on at one time.
251
+ #
252
+ # - `single` The volume may only be scheduled to one node at a time.
253
+ # - `multi` the volume may be scheduled to any supported number of nodes at a
254
+ # time.
255
+ sig do
256
+ returns(
257
+ T.nilable(
258
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Scope::OrSymbol
259
+ )
260
+ )
261
+ end
262
+ attr_reader :scope
263
+
264
+ sig do
265
+ params(
266
+ scope:
267
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Scope::OrSymbol
268
+ ).void
269
+ end
270
+ attr_writer :scope
271
+
272
+ # Swarm Secrets that are passed to the CSI storage plugin when operating on this
273
+ # volume.
274
+ sig do
275
+ returns(
276
+ T.nilable(
277
+ T::Array[
278
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Secret
279
+ ]
280
+ )
281
+ )
282
+ end
283
+ attr_reader :secrets
284
+
285
+ sig do
286
+ params(
287
+ secrets:
288
+ T::Array[
289
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Secret::OrHash
290
+ ]
291
+ ).void
292
+ end
293
+ attr_writer :secrets
294
+
295
+ # The number and way that different tasks can use this volume at one time.
296
+ #
297
+ # - `none` The volume may only be used by one task at a time.
298
+ # - `readonly` The volume may be used by any number of tasks, but they all must
299
+ # mount the volume as readonly
300
+ # - `onewriter` The volume may be used by any number of tasks, but only one may
301
+ # mount it as read/write.
302
+ # - `all` The volume may have any number of readers and writers.
303
+ sig do
304
+ returns(
305
+ T.nilable(
306
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Sharing::OrSymbol
307
+ )
308
+ )
309
+ end
310
+ attr_reader :sharing
311
+
312
+ sig do
313
+ params(
314
+ sharing:
315
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Sharing::OrSymbol
316
+ ).void
317
+ end
318
+ attr_writer :sharing
319
+
320
+ # Defines how the volume is used by tasks.
321
+ sig do
322
+ params(
323
+ accessibility_requirements:
324
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::AccessibilityRequirements::OrHash,
325
+ availability:
326
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Availability::OrSymbol,
327
+ capacity_range:
328
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::CapacityRange::OrHash,
329
+ mount_volume: T.anything,
330
+ scope:
331
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Scope::OrSymbol,
332
+ secrets:
333
+ T::Array[
334
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Secret::OrHash
335
+ ],
336
+ sharing:
337
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Sharing::OrSymbol
338
+ ).returns(T.attached_class)
339
+ end
340
+ def self.new(
341
+ # Requirements for the accessible topology of the volume. These fields are
342
+ # optional. For an in-depth description of what these fields mean, see the CSI
343
+ # specification.
344
+ accessibility_requirements: nil,
345
+ # The availability of the volume for use in tasks.
346
+ #
347
+ # - `active` The volume is fully available for scheduling on the cluster
348
+ # - `pause` No new workloads should use the volume, but existing workloads are not
349
+ # stopped.
350
+ # - `drain` All workloads using this volume should be stopped and rescheduled, and
351
+ # no new ones should be started.
352
+ availability: nil,
353
+ # The desired capacity that the volume should be created with. If empty, the
354
+ # plugin will decide the capacity.
355
+ capacity_range: nil,
356
+ # Options for using this volume as a Mount-type volume.
357
+ #
358
+ # Either MountVolume or BlockVolume, but not both, must be
359
+ # present.
360
+ #
361
+ # properties: FsType: type: "string" description: | Specifies the filesystem type
362
+ # for the mount volume. Optional. MountFlags: type: "array" description: | Flags
363
+ # to pass when mounting the volume. Optional. items: type: "string" BlockVolume:
364
+ # type: "object" description: | Options for using this volume as a Block-type
365
+ # volume. Intentionally empty.
366
+ mount_volume: nil,
367
+ # The set of nodes this volume can be used on at one time.
368
+ #
369
+ # - `single` The volume may only be scheduled to one node at a time.
370
+ # - `multi` the volume may be scheduled to any supported number of nodes at a
371
+ # time.
372
+ scope: nil,
373
+ # Swarm Secrets that are passed to the CSI storage plugin when operating on this
374
+ # volume.
375
+ secrets: nil,
376
+ # The number and way that different tasks can use this volume at one time.
377
+ #
378
+ # - `none` The volume may only be used by one task at a time.
379
+ # - `readonly` The volume may be used by any number of tasks, but they all must
380
+ # mount the volume as readonly
381
+ # - `onewriter` The volume may be used by any number of tasks, but only one may
382
+ # mount it as read/write.
383
+ # - `all` The volume may have any number of readers and writers.
384
+ sharing: nil
385
+ )
386
+ end
387
+
388
+ sig do
389
+ override.returns(
390
+ {
391
+ accessibility_requirements:
392
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::AccessibilityRequirements,
393
+ availability:
394
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Availability::OrSymbol,
395
+ capacity_range:
396
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::CapacityRange,
397
+ mount_volume: T.anything,
398
+ scope:
399
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Scope::OrSymbol,
400
+ secrets:
401
+ T::Array[
402
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Secret
403
+ ],
404
+ sharing:
405
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Sharing::OrSymbol
406
+ }
407
+ )
408
+ end
409
+ def to_hash
410
+ end
411
+
412
+ class AccessibilityRequirements < DockerEngine::Internal::Type::BaseModel
413
+ OrHash =
414
+ T.type_alias do
415
+ T.any(
416
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::AccessibilityRequirements,
417
+ DockerEngine::Internal::AnyHash
418
+ )
419
+ end
420
+
421
+ # A list of topologies that the volume should attempt to be provisioned in.
422
+ sig { returns(T.nilable(T::Array[T::Hash[Symbol, String]])) }
423
+ attr_reader :preferred
424
+
425
+ sig { params(preferred: T::Array[T::Hash[Symbol, String]]).void }
426
+ attr_writer :preferred
427
+
428
+ # A list of required topologies, at least one of which the volume must be
429
+ # accessible from.
430
+ sig { returns(T.nilable(T::Array[T::Hash[Symbol, String]])) }
431
+ attr_reader :requisite
432
+
433
+ sig { params(requisite: T::Array[T::Hash[Symbol, String]]).void }
434
+ attr_writer :requisite
435
+
436
+ # Requirements for the accessible topology of the volume. These fields are
437
+ # optional. For an in-depth description of what these fields mean, see the CSI
438
+ # specification.
439
+ sig do
440
+ params(
441
+ preferred: T::Array[T::Hash[Symbol, String]],
442
+ requisite: T::Array[T::Hash[Symbol, String]]
443
+ ).returns(T.attached_class)
444
+ end
445
+ def self.new(
446
+ # A list of topologies that the volume should attempt to be provisioned in.
447
+ preferred: nil,
448
+ # A list of required topologies, at least one of which the volume must be
449
+ # accessible from.
450
+ requisite: nil
451
+ )
452
+ end
453
+
454
+ sig do
455
+ override.returns(
456
+ {
457
+ preferred: T::Array[T::Hash[Symbol, String]],
458
+ requisite: T::Array[T::Hash[Symbol, String]]
459
+ }
460
+ )
461
+ end
462
+ def to_hash
463
+ end
464
+ end
465
+
466
+ # The availability of the volume for use in tasks.
467
+ #
468
+ # - `active` The volume is fully available for scheduling on the cluster
469
+ # - `pause` No new workloads should use the volume, but existing workloads are not
470
+ # stopped.
471
+ # - `drain` All workloads using this volume should be stopped and rescheduled, and
472
+ # no new ones should be started.
473
+ module Availability
474
+ extend DockerEngine::Internal::Type::Enum
475
+
476
+ TaggedSymbol =
477
+ T.type_alias do
478
+ T.all(
479
+ Symbol,
480
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Availability
481
+ )
482
+ end
483
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
484
+
485
+ ACTIVE =
486
+ T.let(
487
+ :active,
488
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Availability::TaggedSymbol
489
+ )
490
+ PAUSE =
491
+ T.let(
492
+ :pause,
493
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Availability::TaggedSymbol
494
+ )
495
+ DRAIN =
496
+ T.let(
497
+ :drain,
498
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Availability::TaggedSymbol
499
+ )
500
+
501
+ sig do
502
+ override.returns(
503
+ T::Array[
504
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Availability::TaggedSymbol
505
+ ]
506
+ )
507
+ end
508
+ def self.values
509
+ end
510
+ end
511
+
512
+ class CapacityRange < DockerEngine::Internal::Type::BaseModel
513
+ OrHash =
514
+ T.type_alias do
515
+ T.any(
516
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::CapacityRange,
517
+ DockerEngine::Internal::AnyHash
518
+ )
519
+ end
520
+
521
+ # The volume must not be bigger than this. The value of 0 indicates an unspecified
522
+ # maximum.
523
+ sig { returns(T.nilable(Integer)) }
524
+ attr_reader :limit_bytes
525
+
526
+ sig { params(limit_bytes: Integer).void }
527
+ attr_writer :limit_bytes
528
+
529
+ # The volume must be at least this big. The value of 0 indicates an unspecified
530
+ # minimum
531
+ sig { returns(T.nilable(Integer)) }
532
+ attr_reader :required_bytes
533
+
534
+ sig { params(required_bytes: Integer).void }
535
+ attr_writer :required_bytes
536
+
537
+ # The desired capacity that the volume should be created with. If empty, the
538
+ # plugin will decide the capacity.
539
+ sig do
540
+ params(limit_bytes: Integer, required_bytes: Integer).returns(
541
+ T.attached_class
542
+ )
543
+ end
544
+ def self.new(
545
+ # The volume must not be bigger than this. The value of 0 indicates an unspecified
546
+ # maximum.
547
+ limit_bytes: nil,
548
+ # The volume must be at least this big. The value of 0 indicates an unspecified
549
+ # minimum
550
+ required_bytes: nil
551
+ )
552
+ end
553
+
554
+ sig do
555
+ override.returns(
556
+ { limit_bytes: Integer, required_bytes: Integer }
557
+ )
558
+ end
559
+ def to_hash
560
+ end
561
+ end
562
+
563
+ # The set of nodes this volume can be used on at one time.
564
+ #
565
+ # - `single` The volume may only be scheduled to one node at a time.
566
+ # - `multi` the volume may be scheduled to any supported number of nodes at a
567
+ # time.
568
+ module Scope
569
+ extend DockerEngine::Internal::Type::Enum
570
+
571
+ TaggedSymbol =
572
+ T.type_alias do
573
+ T.all(
574
+ Symbol,
575
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Scope
576
+ )
577
+ end
578
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
579
+
580
+ SINGLE =
581
+ T.let(
582
+ :single,
583
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Scope::TaggedSymbol
584
+ )
585
+ MULTI =
586
+ T.let(
587
+ :multi,
588
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Scope::TaggedSymbol
589
+ )
590
+
591
+ sig do
592
+ override.returns(
593
+ T::Array[
594
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Scope::TaggedSymbol
595
+ ]
596
+ )
597
+ end
598
+ def self.values
599
+ end
600
+ end
601
+
602
+ class Secret < DockerEngine::Internal::Type::BaseModel
603
+ OrHash =
604
+ T.type_alias do
605
+ T.any(
606
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Secret,
607
+ DockerEngine::Internal::AnyHash
608
+ )
609
+ end
610
+
611
+ # Key is the name of the key of the key-value pair passed to the plugin.
612
+ sig { returns(T.nilable(String)) }
613
+ attr_reader :key
614
+
615
+ sig { params(key: String).void }
616
+ attr_writer :key
617
+
618
+ # Secret is the swarm Secret object from which to read data. This can be a Secret
619
+ # name or ID. The Secret data is retrieved by swarm and used as the value of the
620
+ # key-value pair passed to the plugin.
621
+ sig { returns(T.nilable(String)) }
622
+ attr_reader :secret
623
+
624
+ sig { params(secret: String).void }
625
+ attr_writer :secret
626
+
627
+ # One cluster volume secret entry. Defines a key-value pair that is passed to the
628
+ # plugin.
629
+ sig do
630
+ params(key: String, secret: String).returns(T.attached_class)
631
+ end
632
+ def self.new(
633
+ # Key is the name of the key of the key-value pair passed to the plugin.
634
+ key: nil,
635
+ # Secret is the swarm Secret object from which to read data. This can be a Secret
636
+ # name or ID. The Secret data is retrieved by swarm and used as the value of the
637
+ # key-value pair passed to the plugin.
638
+ secret: nil
639
+ )
640
+ end
641
+
642
+ sig { override.returns({ key: String, secret: String }) }
643
+ def to_hash
644
+ end
645
+ end
646
+
647
+ # The number and way that different tasks can use this volume at one time.
648
+ #
649
+ # - `none` The volume may only be used by one task at a time.
650
+ # - `readonly` The volume may be used by any number of tasks, but they all must
651
+ # mount the volume as readonly
652
+ # - `onewriter` The volume may be used by any number of tasks, but only one may
653
+ # mount it as read/write.
654
+ # - `all` The volume may have any number of readers and writers.
655
+ module Sharing
656
+ extend DockerEngine::Internal::Type::Enum
657
+
658
+ TaggedSymbol =
659
+ T.type_alias do
660
+ T.all(
661
+ Symbol,
662
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Sharing
663
+ )
664
+ end
665
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
666
+
667
+ NONE =
668
+ T.let(
669
+ :none,
670
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Sharing::TaggedSymbol
671
+ )
672
+ READONLY =
673
+ T.let(
674
+ :readonly,
675
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Sharing::TaggedSymbol
676
+ )
677
+ ONEWRITER =
678
+ T.let(
679
+ :onewriter,
680
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Sharing::TaggedSymbol
681
+ )
682
+ ALL =
683
+ T.let(
684
+ :all,
685
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Sharing::TaggedSymbol
686
+ )
687
+
688
+ sig do
689
+ override.returns(
690
+ T::Array[
691
+ DockerEngine::CreateRequest::ClusterVolumeSpec::AccessMode::Sharing::TaggedSymbol
692
+ ]
693
+ )
694
+ end
695
+ def self.values
696
+ end
697
+ end
698
+ end
699
+ end
700
+ end
701
+ end
702
+ end