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,2323 @@
1
+ # typed: strong
2
+
3
+ module DockerEngine
4
+ module Models
5
+ class Image < DockerEngine::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(DockerEngine::Image, DockerEngine::Internal::AnyHash)
9
+ end
10
+
11
+ # Hardware CPU architecture that the image runs on.
12
+ sig { returns(T.nilable(String)) }
13
+ attr_reader :architecture
14
+
15
+ sig { params(architecture: String).void }
16
+ attr_writer :architecture
17
+
18
+ # Name of the author that was specified when committing the image, or as specified
19
+ # through MAINTAINER (deprecated) in the Dockerfile.
20
+ sig { returns(T.nilable(String)) }
21
+ attr_accessor :author
22
+
23
+ # Optional message that was set when committing or importing the image.
24
+ sig { returns(T.nilable(String)) }
25
+ attr_accessor :comment
26
+
27
+ # Configuration of the image. These fields are used as defaults when starting a
28
+ # container from the image.
29
+ sig { returns(T.nilable(DockerEngine::Image::Config)) }
30
+ attr_reader :config
31
+
32
+ sig { params(config: DockerEngine::Image::Config::OrHash).void }
33
+ attr_writer :config
34
+
35
+ # Date and time at which the image was created, formatted in
36
+ # [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
37
+ #
38
+ # This information is only available if present in the image, and omitted
39
+ # otherwise.
40
+ sig { returns(T.nilable(String)) }
41
+ attr_accessor :created
42
+
43
+ # A descriptor struct containing digest, media type, and size, as defined in the
44
+ # [OCI Content Descriptors Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/descriptor.md).
45
+ sig { returns(T.nilable(DockerEngine::Image::Descriptor)) }
46
+ attr_reader :descriptor
47
+
48
+ sig { params(descriptor: DockerEngine::Image::Descriptor::OrHash).void }
49
+ attr_writer :descriptor
50
+
51
+ # Information about the storage driver used to store the container's and image's
52
+ # filesystem.
53
+ sig { returns(T.nilable(DockerEngine::Image::GraphDriver)) }
54
+ attr_reader :graph_driver
55
+
56
+ sig do
57
+ params(graph_driver: DockerEngine::Image::GraphDriver::OrHash).void
58
+ end
59
+ attr_writer :graph_driver
60
+
61
+ # ID is the content-addressable ID of an image.
62
+ #
63
+ # This identifier is a content-addressable digest calculated from the image's
64
+ # configuration (which includes the digests of layers used by the image).
65
+ #
66
+ # Note that this digest differs from the `RepoDigests` below, which holds digests
67
+ # of image manifests that reference the image.
68
+ sig { returns(T.nilable(String)) }
69
+ attr_reader :id
70
+
71
+ sig { params(id: String).void }
72
+ attr_writer :id
73
+
74
+ # Identity holds information about the identity and origin of the image. This is
75
+ # trusted information verified by the daemon and cannot be modified by tagging an
76
+ # image to a different name.
77
+ sig { returns(T.nilable(DockerEngine::Image::Identity)) }
78
+ attr_reader :identity
79
+
80
+ sig { params(identity: DockerEngine::Image::Identity::OrHash).void }
81
+ attr_writer :identity
82
+
83
+ # Manifests is a list of image manifests available in this image. It provides a
84
+ # more detailed view of the platform-specific image manifests or other
85
+ # image-attached data like build attestations.
86
+ #
87
+ # Only available if the daemon provides a multi-platform image store and the
88
+ # `manifests` option is set in the inspect request.
89
+ #
90
+ # WARNING: This is experimental and may change at any time without any backward
91
+ # compatibility.
92
+ sig { returns(T.nilable(T::Array[DockerEngine::Image::Manifest])) }
93
+ attr_accessor :manifests
94
+
95
+ # Additional metadata of the image in the local cache. This information is local
96
+ # to the daemon, and not part of the image itself.
97
+ sig { returns(T.nilable(DockerEngine::Image::Metadata)) }
98
+ attr_reader :metadata
99
+
100
+ sig { params(metadata: DockerEngine::Image::Metadata::OrHash).void }
101
+ attr_writer :metadata
102
+
103
+ # Operating System the image is built to run on.
104
+ sig { returns(T.nilable(String)) }
105
+ attr_reader :os
106
+
107
+ sig { params(os: String).void }
108
+ attr_writer :os
109
+
110
+ # Operating System version the image is built to run on (especially for Windows).
111
+ sig { returns(T.nilable(String)) }
112
+ attr_accessor :os_version
113
+
114
+ # List of content-addressable digests of locally available image manifests that
115
+ # the image is referenced from. Multiple manifests can refer to the same image.
116
+ #
117
+ # These digests are usually only available if the image was either pulled from a
118
+ # registry, or if the image was pushed to a registry, which is when the manifest
119
+ # is generated and its digest calculated.
120
+ sig { returns(T.nilable(T::Array[String])) }
121
+ attr_reader :repo_digests
122
+
123
+ sig { params(repo_digests: T::Array[String]).void }
124
+ attr_writer :repo_digests
125
+
126
+ # List of image names/tags in the local image cache that reference this image.
127
+ #
128
+ # Multiple image tags can refer to the same image, and this list may be empty if
129
+ # no tags reference the image, in which case the image is "untagged", in which
130
+ # case it can still be referenced by its ID.
131
+ sig { returns(T.nilable(T::Array[String])) }
132
+ attr_reader :repo_tags
133
+
134
+ sig { params(repo_tags: T::Array[String]).void }
135
+ attr_writer :repo_tags
136
+
137
+ # Information about the image's RootFS, including the layer IDs.
138
+ sig { returns(T.nilable(DockerEngine::Image::RootFs)) }
139
+ attr_reader :root_fs
140
+
141
+ sig { params(root_fs: DockerEngine::Image::RootFs::OrHash).void }
142
+ attr_writer :root_fs
143
+
144
+ # Total size of the image including all layers it is composed of.
145
+ sig { returns(T.nilable(Integer)) }
146
+ attr_reader :size
147
+
148
+ sig { params(size: Integer).void }
149
+ attr_writer :size
150
+
151
+ # CPU architecture variant (presently ARM-only).
152
+ sig { returns(T.nilable(String)) }
153
+ attr_accessor :variant
154
+
155
+ # Information about an image in the local image cache.
156
+ sig do
157
+ params(
158
+ architecture: String,
159
+ author: T.nilable(String),
160
+ comment: T.nilable(String),
161
+ config: DockerEngine::Image::Config::OrHash,
162
+ created: T.nilable(String),
163
+ descriptor: DockerEngine::Image::Descriptor::OrHash,
164
+ graph_driver: DockerEngine::Image::GraphDriver::OrHash,
165
+ id: String,
166
+ identity: DockerEngine::Image::Identity::OrHash,
167
+ manifests: T.nilable(T::Array[DockerEngine::Image::Manifest::OrHash]),
168
+ metadata: DockerEngine::Image::Metadata::OrHash,
169
+ os: String,
170
+ os_version: T.nilable(String),
171
+ repo_digests: T::Array[String],
172
+ repo_tags: T::Array[String],
173
+ root_fs: DockerEngine::Image::RootFs::OrHash,
174
+ size: Integer,
175
+ variant: T.nilable(String)
176
+ ).returns(T.attached_class)
177
+ end
178
+ def self.new(
179
+ # Hardware CPU architecture that the image runs on.
180
+ architecture: nil,
181
+ # Name of the author that was specified when committing the image, or as specified
182
+ # through MAINTAINER (deprecated) in the Dockerfile.
183
+ author: nil,
184
+ # Optional message that was set when committing or importing the image.
185
+ comment: nil,
186
+ # Configuration of the image. These fields are used as defaults when starting a
187
+ # container from the image.
188
+ config: nil,
189
+ # Date and time at which the image was created, formatted in
190
+ # [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
191
+ #
192
+ # This information is only available if present in the image, and omitted
193
+ # otherwise.
194
+ created: nil,
195
+ # A descriptor struct containing digest, media type, and size, as defined in the
196
+ # [OCI Content Descriptors Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/descriptor.md).
197
+ descriptor: nil,
198
+ # Information about the storage driver used to store the container's and image's
199
+ # filesystem.
200
+ graph_driver: nil,
201
+ # ID is the content-addressable ID of an image.
202
+ #
203
+ # This identifier is a content-addressable digest calculated from the image's
204
+ # configuration (which includes the digests of layers used by the image).
205
+ #
206
+ # Note that this digest differs from the `RepoDigests` below, which holds digests
207
+ # of image manifests that reference the image.
208
+ id: nil,
209
+ # Identity holds information about the identity and origin of the image. This is
210
+ # trusted information verified by the daemon and cannot be modified by tagging an
211
+ # image to a different name.
212
+ identity: nil,
213
+ # Manifests is a list of image manifests available in this image. It provides a
214
+ # more detailed view of the platform-specific image manifests or other
215
+ # image-attached data like build attestations.
216
+ #
217
+ # Only available if the daemon provides a multi-platform image store and the
218
+ # `manifests` option is set in the inspect request.
219
+ #
220
+ # WARNING: This is experimental and may change at any time without any backward
221
+ # compatibility.
222
+ manifests: nil,
223
+ # Additional metadata of the image in the local cache. This information is local
224
+ # to the daemon, and not part of the image itself.
225
+ metadata: nil,
226
+ # Operating System the image is built to run on.
227
+ os: nil,
228
+ # Operating System version the image is built to run on (especially for Windows).
229
+ os_version: nil,
230
+ # List of content-addressable digests of locally available image manifests that
231
+ # the image is referenced from. Multiple manifests can refer to the same image.
232
+ #
233
+ # These digests are usually only available if the image was either pulled from a
234
+ # registry, or if the image was pushed to a registry, which is when the manifest
235
+ # is generated and its digest calculated.
236
+ repo_digests: nil,
237
+ # List of image names/tags in the local image cache that reference this image.
238
+ #
239
+ # Multiple image tags can refer to the same image, and this list may be empty if
240
+ # no tags reference the image, in which case the image is "untagged", in which
241
+ # case it can still be referenced by its ID.
242
+ repo_tags: nil,
243
+ # Information about the image's RootFS, including the layer IDs.
244
+ root_fs: nil,
245
+ # Total size of the image including all layers it is composed of.
246
+ size: nil,
247
+ # CPU architecture variant (presently ARM-only).
248
+ variant: nil
249
+ )
250
+ end
251
+
252
+ sig do
253
+ override.returns(
254
+ {
255
+ architecture: String,
256
+ author: T.nilable(String),
257
+ comment: T.nilable(String),
258
+ config: DockerEngine::Image::Config,
259
+ created: T.nilable(String),
260
+ descriptor: DockerEngine::Image::Descriptor,
261
+ graph_driver: DockerEngine::Image::GraphDriver,
262
+ id: String,
263
+ identity: DockerEngine::Image::Identity,
264
+ manifests: T.nilable(T::Array[DockerEngine::Image::Manifest]),
265
+ metadata: DockerEngine::Image::Metadata,
266
+ os: String,
267
+ os_version: T.nilable(String),
268
+ repo_digests: T::Array[String],
269
+ repo_tags: T::Array[String],
270
+ root_fs: DockerEngine::Image::RootFs,
271
+ size: Integer,
272
+ variant: T.nilable(String)
273
+ }
274
+ )
275
+ end
276
+ def to_hash
277
+ end
278
+
279
+ class Config < DockerEngine::Internal::Type::BaseModel
280
+ OrHash =
281
+ T.type_alias do
282
+ T.any(DockerEngine::Image::Config, DockerEngine::Internal::AnyHash)
283
+ end
284
+
285
+ # Command is already escaped (Windows only)
286
+ sig { returns(T.nilable(T::Boolean)) }
287
+ attr_accessor :args_escaped
288
+
289
+ # Command to run specified as a string or an array of strings.
290
+ sig { returns(T.nilable(T::Array[String])) }
291
+ attr_reader :cmd
292
+
293
+ sig { params(cmd: T::Array[String]).void }
294
+ attr_writer :cmd
295
+
296
+ # The entry point for the container as a string or an array of strings.
297
+ #
298
+ # If the array consists of exactly one empty string (`[""]`) then the entry point
299
+ # is reset to system default (i.e., the entry point used by docker when there is
300
+ # no `ENTRYPOINT` instruction in the `Dockerfile`).
301
+ sig { returns(T.nilable(T::Array[String])) }
302
+ attr_reader :entrypoint
303
+
304
+ sig { params(entrypoint: T::Array[String]).void }
305
+ attr_writer :entrypoint
306
+
307
+ # A list of environment variables to set inside the container in the form
308
+ # `["VAR=value", ...]`. A variable without `=` is removed from the environment,
309
+ # rather than to have an empty value.
310
+ sig { returns(T.nilable(T::Array[String])) }
311
+ attr_reader :env
312
+
313
+ sig { params(env: T::Array[String]).void }
314
+ attr_writer :env
315
+
316
+ # An object mapping ports to an empty object in the form:
317
+ #
318
+ # `{"<port>/<tcp|udp|sctp>": {}}`
319
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
320
+ attr_accessor :exposed_ports
321
+
322
+ # A test to perform to check that the container is healthy. Healthcheck commands
323
+ # should be side-effect free.
324
+ sig { returns(T.nilable(DockerEngine::Image::Config::Healthcheck)) }
325
+ attr_reader :healthcheck
326
+
327
+ sig do
328
+ params(
329
+ healthcheck: DockerEngine::Image::Config::Healthcheck::OrHash
330
+ ).void
331
+ end
332
+ attr_writer :healthcheck
333
+
334
+ # User-defined key/value metadata.
335
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
336
+ attr_reader :labels
337
+
338
+ sig { params(labels: T::Hash[Symbol, String]).void }
339
+ attr_writer :labels
340
+
341
+ # `ONBUILD` metadata that were defined in the image's `Dockerfile`.
342
+ sig { returns(T.nilable(T::Array[String])) }
343
+ attr_accessor :on_build
344
+
345
+ # Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell.
346
+ sig { returns(T.nilable(T::Array[String])) }
347
+ attr_accessor :shell
348
+
349
+ # Signal to stop a container as a string or unsigned integer.
350
+ sig { returns(T.nilable(String)) }
351
+ attr_accessor :stop_signal
352
+
353
+ # The user that commands are run as inside the container.
354
+ sig { returns(T.nilable(String)) }
355
+ attr_reader :user
356
+
357
+ sig { params(user: String).void }
358
+ attr_writer :user
359
+
360
+ # An object mapping mount point paths inside the container to empty objects.
361
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
362
+ attr_reader :volumes
363
+
364
+ sig { params(volumes: T::Hash[Symbol, T.anything]).void }
365
+ attr_writer :volumes
366
+
367
+ # The working directory for commands to run in.
368
+ sig { returns(T.nilable(String)) }
369
+ attr_reader :working_dir
370
+
371
+ sig { params(working_dir: String).void }
372
+ attr_writer :working_dir
373
+
374
+ # Configuration of the image. These fields are used as defaults when starting a
375
+ # container from the image.
376
+ sig do
377
+ params(
378
+ args_escaped: T.nilable(T::Boolean),
379
+ cmd: T::Array[String],
380
+ entrypoint: T::Array[String],
381
+ env: T::Array[String],
382
+ exposed_ports: T.nilable(T::Hash[Symbol, T.anything]),
383
+ healthcheck: DockerEngine::Image::Config::Healthcheck::OrHash,
384
+ labels: T::Hash[Symbol, String],
385
+ on_build: T.nilable(T::Array[String]),
386
+ shell: T.nilable(T::Array[String]),
387
+ stop_signal: T.nilable(String),
388
+ user: String,
389
+ volumes: T::Hash[Symbol, T.anything],
390
+ working_dir: String
391
+ ).returns(T.attached_class)
392
+ end
393
+ def self.new(
394
+ # Command is already escaped (Windows only)
395
+ args_escaped: nil,
396
+ # Command to run specified as a string or an array of strings.
397
+ cmd: nil,
398
+ # The entry point for the container as a string or an array of strings.
399
+ #
400
+ # If the array consists of exactly one empty string (`[""]`) then the entry point
401
+ # is reset to system default (i.e., the entry point used by docker when there is
402
+ # no `ENTRYPOINT` instruction in the `Dockerfile`).
403
+ entrypoint: nil,
404
+ # A list of environment variables to set inside the container in the form
405
+ # `["VAR=value", ...]`. A variable without `=` is removed from the environment,
406
+ # rather than to have an empty value.
407
+ env: nil,
408
+ # An object mapping ports to an empty object in the form:
409
+ #
410
+ # `{"<port>/<tcp|udp|sctp>": {}}`
411
+ exposed_ports: nil,
412
+ # A test to perform to check that the container is healthy. Healthcheck commands
413
+ # should be side-effect free.
414
+ healthcheck: nil,
415
+ # User-defined key/value metadata.
416
+ labels: nil,
417
+ # `ONBUILD` metadata that were defined in the image's `Dockerfile`.
418
+ on_build: nil,
419
+ # Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell.
420
+ shell: nil,
421
+ # Signal to stop a container as a string or unsigned integer.
422
+ stop_signal: nil,
423
+ # The user that commands are run as inside the container.
424
+ user: nil,
425
+ # An object mapping mount point paths inside the container to empty objects.
426
+ volumes: nil,
427
+ # The working directory for commands to run in.
428
+ working_dir: nil
429
+ )
430
+ end
431
+
432
+ sig do
433
+ override.returns(
434
+ {
435
+ args_escaped: T.nilable(T::Boolean),
436
+ cmd: T::Array[String],
437
+ entrypoint: T::Array[String],
438
+ env: T::Array[String],
439
+ exposed_ports: T.nilable(T::Hash[Symbol, T.anything]),
440
+ healthcheck: DockerEngine::Image::Config::Healthcheck,
441
+ labels: T::Hash[Symbol, String],
442
+ on_build: T.nilable(T::Array[String]),
443
+ shell: T.nilable(T::Array[String]),
444
+ stop_signal: T.nilable(String),
445
+ user: String,
446
+ volumes: T::Hash[Symbol, T.anything],
447
+ working_dir: String
448
+ }
449
+ )
450
+ end
451
+ def to_hash
452
+ end
453
+
454
+ class Healthcheck < DockerEngine::Internal::Type::BaseModel
455
+ OrHash =
456
+ T.type_alias do
457
+ T.any(
458
+ DockerEngine::Image::Config::Healthcheck,
459
+ DockerEngine::Internal::AnyHash
460
+ )
461
+ end
462
+
463
+ # The time to wait between checks in nanoseconds. It should be 0 or at least
464
+ # 1000000 (1 ms). 0 means inherit.
465
+ sig { returns(T.nilable(Integer)) }
466
+ attr_reader :interval
467
+
468
+ sig { params(interval: Integer).void }
469
+ attr_writer :interval
470
+
471
+ # The number of consecutive failures needed to consider a container as unhealthy.
472
+ # 0 means inherit.
473
+ sig { returns(T.nilable(Integer)) }
474
+ attr_reader :retries
475
+
476
+ sig { params(retries: Integer).void }
477
+ attr_writer :retries
478
+
479
+ # The time to wait between checks in nanoseconds during the start period. It
480
+ # should be 0 or at least 1000000 (1 ms). 0 means inherit.
481
+ sig { returns(T.nilable(Integer)) }
482
+ attr_reader :start_interval
483
+
484
+ sig { params(start_interval: Integer).void }
485
+ attr_writer :start_interval
486
+
487
+ # Start period for the container to initialize before starting health-retries
488
+ # countdown in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means
489
+ # inherit.
490
+ sig { returns(T.nilable(Integer)) }
491
+ attr_reader :start_period
492
+
493
+ sig { params(start_period: Integer).void }
494
+ attr_writer :start_period
495
+
496
+ # The test to perform. Possible values are:
497
+ #
498
+ # - `[]` inherit healthcheck from image or parent image
499
+ # - `["NONE"]` disable healthcheck
500
+ # - `["CMD", args...]` exec arguments directly
501
+ # - `["CMD-SHELL", command]` run command with system's default shell
502
+ #
503
+ # A non-zero exit code indicates a failed healthcheck:
504
+ #
505
+ # - `0` healthy
506
+ # - `1` unhealthy
507
+ # - `2` reserved (treated as unhealthy)
508
+ # - other values: error running probe
509
+ sig { returns(T.nilable(T::Array[String])) }
510
+ attr_reader :test_
511
+
512
+ sig { params(test_: T::Array[String]).void }
513
+ attr_writer :test_
514
+
515
+ # The time to wait before considering the check to have hung. It should be 0 or at
516
+ # least 1000000 (1 ms). 0 means inherit.
517
+ #
518
+ # If the health check command does not complete within this timeout, the check is
519
+ # considered failed and the health check process is forcibly terminated without a
520
+ # graceful shutdown.
521
+ sig { returns(T.nilable(Integer)) }
522
+ attr_reader :timeout
523
+
524
+ sig { params(timeout: Integer).void }
525
+ attr_writer :timeout
526
+
527
+ # A test to perform to check that the container is healthy. Healthcheck commands
528
+ # should be side-effect free.
529
+ sig do
530
+ params(
531
+ interval: Integer,
532
+ retries: Integer,
533
+ start_interval: Integer,
534
+ start_period: Integer,
535
+ test_: T::Array[String],
536
+ timeout: Integer
537
+ ).returns(T.attached_class)
538
+ end
539
+ def self.new(
540
+ # The time to wait between checks in nanoseconds. It should be 0 or at least
541
+ # 1000000 (1 ms). 0 means inherit.
542
+ interval: nil,
543
+ # The number of consecutive failures needed to consider a container as unhealthy.
544
+ # 0 means inherit.
545
+ retries: nil,
546
+ # The time to wait between checks in nanoseconds during the start period. It
547
+ # should be 0 or at least 1000000 (1 ms). 0 means inherit.
548
+ start_interval: nil,
549
+ # Start period for the container to initialize before starting health-retries
550
+ # countdown in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means
551
+ # inherit.
552
+ start_period: nil,
553
+ # The test to perform. Possible values are:
554
+ #
555
+ # - `[]` inherit healthcheck from image or parent image
556
+ # - `["NONE"]` disable healthcheck
557
+ # - `["CMD", args...]` exec arguments directly
558
+ # - `["CMD-SHELL", command]` run command with system's default shell
559
+ #
560
+ # A non-zero exit code indicates a failed healthcheck:
561
+ #
562
+ # - `0` healthy
563
+ # - `1` unhealthy
564
+ # - `2` reserved (treated as unhealthy)
565
+ # - other values: error running probe
566
+ test_: nil,
567
+ # The time to wait before considering the check to have hung. It should be 0 or at
568
+ # least 1000000 (1 ms). 0 means inherit.
569
+ #
570
+ # If the health check command does not complete within this timeout, the check is
571
+ # considered failed and the health check process is forcibly terminated without a
572
+ # graceful shutdown.
573
+ timeout: nil
574
+ )
575
+ end
576
+
577
+ sig do
578
+ override.returns(
579
+ {
580
+ interval: Integer,
581
+ retries: Integer,
582
+ start_interval: Integer,
583
+ start_period: Integer,
584
+ test_: T::Array[String],
585
+ timeout: Integer
586
+ }
587
+ )
588
+ end
589
+ def to_hash
590
+ end
591
+ end
592
+ end
593
+
594
+ class Descriptor < DockerEngine::Internal::Type::BaseModel
595
+ OrHash =
596
+ T.type_alias do
597
+ T.any(
598
+ DockerEngine::Image::Descriptor,
599
+ DockerEngine::Internal::AnyHash
600
+ )
601
+ end
602
+
603
+ # Arbitrary metadata relating to the targeted content.
604
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
605
+ attr_accessor :annotations
606
+
607
+ # ArtifactType is the IANA media type of this artifact.
608
+ sig { returns(T.nilable(String)) }
609
+ attr_accessor :artifact_type
610
+
611
+ # Data is an embedding of the targeted content. This is encoded as a base64 string
612
+ # when marshalled to JSON (automatically, by encoding/json). If present, Data can
613
+ # be used directly to avoid fetching the targeted content.
614
+ sig { returns(T.nilable(String)) }
615
+ attr_accessor :data
616
+
617
+ # The digest of the targeted content.
618
+ sig { returns(T.nilable(String)) }
619
+ attr_reader :digest
620
+
621
+ sig { params(digest: String).void }
622
+ attr_writer :digest
623
+
624
+ # The media type of the object this schema refers to.
625
+ sig { returns(T.nilable(String)) }
626
+ attr_reader :media_type
627
+
628
+ sig { params(media_type: String).void }
629
+ attr_writer :media_type
630
+
631
+ # Describes the platform which the image in the manifest runs on, as defined in
632
+ # the
633
+ # [OCI Image Index Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-index.md).
634
+ sig { returns(T.nilable(DockerEngine::Image::Descriptor::Platform)) }
635
+ attr_reader :platform
636
+
637
+ sig do
638
+ params(
639
+ platform:
640
+ T.nilable(DockerEngine::Image::Descriptor::Platform::OrHash)
641
+ ).void
642
+ end
643
+ attr_writer :platform
644
+
645
+ # The size in bytes of the blob.
646
+ sig { returns(T.nilable(Integer)) }
647
+ attr_reader :size
648
+
649
+ sig { params(size: Integer).void }
650
+ attr_writer :size
651
+
652
+ # List of URLs from which this object MAY be downloaded.
653
+ sig { returns(T.nilable(T::Array[String])) }
654
+ attr_accessor :urls
655
+
656
+ # A descriptor struct containing digest, media type, and size, as defined in the
657
+ # [OCI Content Descriptors Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/descriptor.md).
658
+ sig do
659
+ params(
660
+ annotations: T.nilable(T::Hash[Symbol, String]),
661
+ artifact_type: T.nilable(String),
662
+ data: T.nilable(String),
663
+ digest: String,
664
+ media_type: String,
665
+ platform:
666
+ T.nilable(DockerEngine::Image::Descriptor::Platform::OrHash),
667
+ size: Integer,
668
+ urls: T.nilable(T::Array[String])
669
+ ).returns(T.attached_class)
670
+ end
671
+ def self.new(
672
+ # Arbitrary metadata relating to the targeted content.
673
+ annotations: nil,
674
+ # ArtifactType is the IANA media type of this artifact.
675
+ artifact_type: nil,
676
+ # Data is an embedding of the targeted content. This is encoded as a base64 string
677
+ # when marshalled to JSON (automatically, by encoding/json). If present, Data can
678
+ # be used directly to avoid fetching the targeted content.
679
+ data: nil,
680
+ # The digest of the targeted content.
681
+ digest: nil,
682
+ # The media type of the object this schema refers to.
683
+ media_type: nil,
684
+ # Describes the platform which the image in the manifest runs on, as defined in
685
+ # the
686
+ # [OCI Image Index Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-index.md).
687
+ platform: nil,
688
+ # The size in bytes of the blob.
689
+ size: nil,
690
+ # List of URLs from which this object MAY be downloaded.
691
+ urls: nil
692
+ )
693
+ end
694
+
695
+ sig do
696
+ override.returns(
697
+ {
698
+ annotations: T.nilable(T::Hash[Symbol, String]),
699
+ artifact_type: T.nilable(String),
700
+ data: T.nilable(String),
701
+ digest: String,
702
+ media_type: String,
703
+ platform: T.nilable(DockerEngine::Image::Descriptor::Platform),
704
+ size: Integer,
705
+ urls: T.nilable(T::Array[String])
706
+ }
707
+ )
708
+ end
709
+ def to_hash
710
+ end
711
+
712
+ class Platform < DockerEngine::Internal::Type::BaseModel
713
+ OrHash =
714
+ T.type_alias do
715
+ T.any(
716
+ DockerEngine::Image::Descriptor::Platform,
717
+ DockerEngine::Internal::AnyHash
718
+ )
719
+ end
720
+
721
+ # The CPU architecture, for example `amd64` or `ppc64`.
722
+ sig { returns(T.nilable(String)) }
723
+ attr_reader :architecture
724
+
725
+ sig { params(architecture: String).void }
726
+ attr_writer :architecture
727
+
728
+ # The operating system, for example `linux` or `windows`.
729
+ sig { returns(T.nilable(String)) }
730
+ attr_reader :os
731
+
732
+ sig { params(os: String).void }
733
+ attr_writer :os
734
+
735
+ # Optional field specifying an array of strings, each listing a required OS
736
+ # feature (for example on Windows `win32k`).
737
+ sig { returns(T.nilable(T::Array[String])) }
738
+ attr_reader :os_features
739
+
740
+ sig { params(os_features: T::Array[String]).void }
741
+ attr_writer :os_features
742
+
743
+ # Optional field specifying the operating system version, for example on Windows
744
+ # `10.0.19041.1165`.
745
+ sig { returns(T.nilable(String)) }
746
+ attr_reader :os_version
747
+
748
+ sig { params(os_version: String).void }
749
+ attr_writer :os_version
750
+
751
+ # Optional field specifying a variant of the CPU, for example `v7` to specify
752
+ # ARMv7 when architecture is `arm`.
753
+ sig { returns(T.nilable(String)) }
754
+ attr_reader :variant
755
+
756
+ sig { params(variant: String).void }
757
+ attr_writer :variant
758
+
759
+ # Describes the platform which the image in the manifest runs on, as defined in
760
+ # the
761
+ # [OCI Image Index Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-index.md).
762
+ sig do
763
+ params(
764
+ architecture: String,
765
+ os: String,
766
+ os_features: T::Array[String],
767
+ os_version: String,
768
+ variant: String
769
+ ).returns(T.attached_class)
770
+ end
771
+ def self.new(
772
+ # The CPU architecture, for example `amd64` or `ppc64`.
773
+ architecture: nil,
774
+ # The operating system, for example `linux` or `windows`.
775
+ os: nil,
776
+ # Optional field specifying an array of strings, each listing a required OS
777
+ # feature (for example on Windows `win32k`).
778
+ os_features: nil,
779
+ # Optional field specifying the operating system version, for example on Windows
780
+ # `10.0.19041.1165`.
781
+ os_version: nil,
782
+ # Optional field specifying a variant of the CPU, for example `v7` to specify
783
+ # ARMv7 when architecture is `arm`.
784
+ variant: nil
785
+ )
786
+ end
787
+
788
+ sig do
789
+ override.returns(
790
+ {
791
+ architecture: String,
792
+ os: String,
793
+ os_features: T::Array[String],
794
+ os_version: String,
795
+ variant: String
796
+ }
797
+ )
798
+ end
799
+ def to_hash
800
+ end
801
+ end
802
+ end
803
+
804
+ class GraphDriver < DockerEngine::Internal::Type::BaseModel
805
+ OrHash =
806
+ T.type_alias do
807
+ T.any(
808
+ DockerEngine::Image::GraphDriver,
809
+ DockerEngine::Internal::AnyHash
810
+ )
811
+ end
812
+
813
+ # Low-level storage metadata, provided as key/value pairs.
814
+ #
815
+ # This information is driver-specific, and depends on the storage-driver in use,
816
+ # and should be used for informational purposes only.
817
+ sig { returns(T::Hash[Symbol, String]) }
818
+ attr_accessor :data
819
+
820
+ # Name of the storage driver.
821
+ sig { returns(String) }
822
+ attr_accessor :name
823
+
824
+ # Information about the storage driver used to store the container's and image's
825
+ # filesystem.
826
+ sig do
827
+ params(data: T::Hash[Symbol, String], name: String).returns(
828
+ T.attached_class
829
+ )
830
+ end
831
+ def self.new(
832
+ # Low-level storage metadata, provided as key/value pairs.
833
+ #
834
+ # This information is driver-specific, and depends on the storage-driver in use,
835
+ # and should be used for informational purposes only.
836
+ data:,
837
+ # Name of the storage driver.
838
+ name:
839
+ )
840
+ end
841
+
842
+ sig do
843
+ override.returns({ data: T::Hash[Symbol, String], name: String })
844
+ end
845
+ def to_hash
846
+ end
847
+ end
848
+
849
+ class Identity < DockerEngine::Internal::Type::BaseModel
850
+ OrHash =
851
+ T.type_alias do
852
+ T.any(
853
+ DockerEngine::Image::Identity,
854
+ DockerEngine::Internal::AnyHash
855
+ )
856
+ end
857
+
858
+ # Build contains build reference information if image was created via build.
859
+ sig do
860
+ returns(T.nilable(T::Array[DockerEngine::Image::Identity::Build]))
861
+ end
862
+ attr_reader :build
863
+
864
+ sig do
865
+ params(
866
+ build: T::Array[DockerEngine::Image::Identity::Build::OrHash]
867
+ ).void
868
+ end
869
+ attr_writer :build
870
+
871
+ # Pull contains remote location information if image was created via pull. If
872
+ # image was pulled via mirror, this contains the original repository location.
873
+ # After successful push this images also contains the pushed repository location.
874
+ sig do
875
+ returns(T.nilable(T::Array[DockerEngine::Image::Identity::Pull]))
876
+ end
877
+ attr_reader :pull
878
+
879
+ sig do
880
+ params(
881
+ pull: T::Array[DockerEngine::Image::Identity::Pull::OrHash]
882
+ ).void
883
+ end
884
+ attr_writer :pull
885
+
886
+ # Signature contains the properties of verified signatures for the image.
887
+ sig do
888
+ returns(T.nilable(T::Array[DockerEngine::Image::Identity::Signature]))
889
+ end
890
+ attr_reader :signature
891
+
892
+ sig do
893
+ params(
894
+ signature:
895
+ T::Array[DockerEngine::Image::Identity::Signature::OrHash]
896
+ ).void
897
+ end
898
+ attr_writer :signature
899
+
900
+ # Identity holds information about the identity and origin of the image. This is
901
+ # trusted information verified by the daemon and cannot be modified by tagging an
902
+ # image to a different name.
903
+ sig do
904
+ params(
905
+ build: T::Array[DockerEngine::Image::Identity::Build::OrHash],
906
+ pull: T::Array[DockerEngine::Image::Identity::Pull::OrHash],
907
+ signature:
908
+ T::Array[DockerEngine::Image::Identity::Signature::OrHash]
909
+ ).returns(T.attached_class)
910
+ end
911
+ def self.new(
912
+ # Build contains build reference information if image was created via build.
913
+ build: nil,
914
+ # Pull contains remote location information if image was created via pull. If
915
+ # image was pulled via mirror, this contains the original repository location.
916
+ # After successful push this images also contains the pushed repository location.
917
+ pull: nil,
918
+ # Signature contains the properties of verified signatures for the image.
919
+ signature: nil
920
+ )
921
+ end
922
+
923
+ sig do
924
+ override.returns(
925
+ {
926
+ build: T::Array[DockerEngine::Image::Identity::Build],
927
+ pull: T::Array[DockerEngine::Image::Identity::Pull],
928
+ signature: T::Array[DockerEngine::Image::Identity::Signature]
929
+ }
930
+ )
931
+ end
932
+ def to_hash
933
+ end
934
+
935
+ class Build < DockerEngine::Internal::Type::BaseModel
936
+ OrHash =
937
+ T.type_alias do
938
+ T.any(
939
+ DockerEngine::Image::Identity::Build,
940
+ DockerEngine::Internal::AnyHash
941
+ )
942
+ end
943
+
944
+ # CreatedAt is the time when the build ran.
945
+ sig { returns(T.nilable(Time)) }
946
+ attr_reader :created_at
947
+
948
+ sig { params(created_at: Time).void }
949
+ attr_writer :created_at
950
+
951
+ # Ref is the identifier for the build request. This reference can be used to look
952
+ # up the build details in BuildKit history API.
953
+ sig { returns(T.nilable(String)) }
954
+ attr_reader :ref
955
+
956
+ sig { params(ref: String).void }
957
+ attr_writer :ref
958
+
959
+ # BuildIdentity contains build reference information if image was created via
960
+ # build.
961
+ sig do
962
+ params(created_at: Time, ref: String).returns(T.attached_class)
963
+ end
964
+ def self.new(
965
+ # CreatedAt is the time when the build ran.
966
+ created_at: nil,
967
+ # Ref is the identifier for the build request. This reference can be used to look
968
+ # up the build details in BuildKit history API.
969
+ ref: nil
970
+ )
971
+ end
972
+
973
+ sig { override.returns({ created_at: Time, ref: String }) }
974
+ def to_hash
975
+ end
976
+ end
977
+
978
+ class Pull < DockerEngine::Internal::Type::BaseModel
979
+ OrHash =
980
+ T.type_alias do
981
+ T.any(
982
+ DockerEngine::Image::Identity::Pull,
983
+ DockerEngine::Internal::AnyHash
984
+ )
985
+ end
986
+
987
+ # Repository is the remote repository location the image was pulled from.
988
+ sig { returns(T.nilable(String)) }
989
+ attr_reader :repository
990
+
991
+ sig { params(repository: String).void }
992
+ attr_writer :repository
993
+
994
+ # PullIdentity contains remote location information if image was created via pull.
995
+ # If image was pulled via mirror, this contains the original repository location.
996
+ sig { params(repository: String).returns(T.attached_class) }
997
+ def self.new(
998
+ # Repository is the remote repository location the image was pulled from.
999
+ repository: nil
1000
+ )
1001
+ end
1002
+
1003
+ sig { override.returns({ repository: String }) }
1004
+ def to_hash
1005
+ end
1006
+ end
1007
+
1008
+ class Signature < DockerEngine::Internal::Type::BaseModel
1009
+ OrHash =
1010
+ T.type_alias do
1011
+ T.any(
1012
+ DockerEngine::Image::Identity::Signature,
1013
+ DockerEngine::Internal::AnyHash
1014
+ )
1015
+ end
1016
+
1017
+ # DockerReference is the Docker image reference associated with the signature.
1018
+ # This is an optional field only present in older hashedrecord signatures.
1019
+ sig { returns(T.nilable(String)) }
1020
+ attr_reader :docker_reference
1021
+
1022
+ sig { params(docker_reference: String).void }
1023
+ attr_writer :docker_reference
1024
+
1025
+ # Error contains error information if signature verification failed. Other fields
1026
+ # will be empty in this case.
1027
+ sig { returns(T.nilable(String)) }
1028
+ attr_reader :error
1029
+
1030
+ sig { params(error: String).void }
1031
+ attr_writer :error
1032
+
1033
+ # KnownSignerIdentity is an identifier for a special signer identity that is known
1034
+ # to the implementation.
1035
+ sig do
1036
+ returns(
1037
+ T.nilable(
1038
+ DockerEngine::Image::Identity::Signature::KnownSigner::TaggedSymbol
1039
+ )
1040
+ )
1041
+ end
1042
+ attr_reader :known_signer
1043
+
1044
+ sig do
1045
+ params(
1046
+ known_signer:
1047
+ DockerEngine::Image::Identity::Signature::KnownSigner::OrSymbol
1048
+ ).void
1049
+ end
1050
+ attr_writer :known_signer
1051
+
1052
+ # Name is a textual description summarizing the type of signature.
1053
+ sig { returns(T.nilable(String)) }
1054
+ attr_reader :name
1055
+
1056
+ sig { params(name: String).void }
1057
+ attr_writer :name
1058
+
1059
+ # SignatureType is the type of signature format.
1060
+ sig do
1061
+ returns(
1062
+ T.nilable(
1063
+ DockerEngine::Image::Identity::Signature::SignatureType::TaggedSymbol
1064
+ )
1065
+ )
1066
+ end
1067
+ attr_reader :signature_type
1068
+
1069
+ sig do
1070
+ params(
1071
+ signature_type:
1072
+ DockerEngine::Image::Identity::Signature::SignatureType::OrSymbol
1073
+ ).void
1074
+ end
1075
+ attr_writer :signature_type
1076
+
1077
+ # SignerIdentity contains information about the signer certificate used to sign
1078
+ # the image.
1079
+ sig do
1080
+ returns(T.nilable(DockerEngine::Image::Identity::Signature::Signer))
1081
+ end
1082
+ attr_reader :signer
1083
+
1084
+ sig do
1085
+ params(
1086
+ signer: DockerEngine::Image::Identity::Signature::Signer::OrHash
1087
+ ).void
1088
+ end
1089
+ attr_writer :signer
1090
+
1091
+ # Timestamps contains a list of verified signed timestamps for the signature.
1092
+ sig do
1093
+ returns(
1094
+ T.nilable(
1095
+ T::Array[DockerEngine::Image::Identity::Signature::Timestamp]
1096
+ )
1097
+ )
1098
+ end
1099
+ attr_reader :timestamps
1100
+
1101
+ sig do
1102
+ params(
1103
+ timestamps:
1104
+ T::Array[
1105
+ DockerEngine::Image::Identity::Signature::Timestamp::OrHash
1106
+ ]
1107
+ ).void
1108
+ end
1109
+ attr_writer :timestamps
1110
+
1111
+ # Warnings contains any warnings that occurred during signature verification. For
1112
+ # example, if there was no internet connectivity and cached trust roots were used.
1113
+ # Warning does not indicate a failed verification but may point to configuration
1114
+ # issues.
1115
+ sig { returns(T.nilable(T::Array[String])) }
1116
+ attr_reader :warnings
1117
+
1118
+ sig { params(warnings: T::Array[String]).void }
1119
+ attr_writer :warnings
1120
+
1121
+ # SignatureIdentity contains the properties of verified signatures for the image.
1122
+ sig do
1123
+ params(
1124
+ docker_reference: String,
1125
+ error: String,
1126
+ known_signer:
1127
+ DockerEngine::Image::Identity::Signature::KnownSigner::OrSymbol,
1128
+ name: String,
1129
+ signature_type:
1130
+ DockerEngine::Image::Identity::Signature::SignatureType::OrSymbol,
1131
+ signer: DockerEngine::Image::Identity::Signature::Signer::OrHash,
1132
+ timestamps:
1133
+ T::Array[
1134
+ DockerEngine::Image::Identity::Signature::Timestamp::OrHash
1135
+ ],
1136
+ warnings: T::Array[String]
1137
+ ).returns(T.attached_class)
1138
+ end
1139
+ def self.new(
1140
+ # DockerReference is the Docker image reference associated with the signature.
1141
+ # This is an optional field only present in older hashedrecord signatures.
1142
+ docker_reference: nil,
1143
+ # Error contains error information if signature verification failed. Other fields
1144
+ # will be empty in this case.
1145
+ error: nil,
1146
+ # KnownSignerIdentity is an identifier for a special signer identity that is known
1147
+ # to the implementation.
1148
+ known_signer: nil,
1149
+ # Name is a textual description summarizing the type of signature.
1150
+ name: nil,
1151
+ # SignatureType is the type of signature format.
1152
+ signature_type: nil,
1153
+ # SignerIdentity contains information about the signer certificate used to sign
1154
+ # the image.
1155
+ signer: nil,
1156
+ # Timestamps contains a list of verified signed timestamps for the signature.
1157
+ timestamps: nil,
1158
+ # Warnings contains any warnings that occurred during signature verification. For
1159
+ # example, if there was no internet connectivity and cached trust roots were used.
1160
+ # Warning does not indicate a failed verification but may point to configuration
1161
+ # issues.
1162
+ warnings: nil
1163
+ )
1164
+ end
1165
+
1166
+ sig do
1167
+ override.returns(
1168
+ {
1169
+ docker_reference: String,
1170
+ error: String,
1171
+ known_signer:
1172
+ DockerEngine::Image::Identity::Signature::KnownSigner::TaggedSymbol,
1173
+ name: String,
1174
+ signature_type:
1175
+ DockerEngine::Image::Identity::Signature::SignatureType::TaggedSymbol,
1176
+ signer: DockerEngine::Image::Identity::Signature::Signer,
1177
+ timestamps:
1178
+ T::Array[DockerEngine::Image::Identity::Signature::Timestamp],
1179
+ warnings: T::Array[String]
1180
+ }
1181
+ )
1182
+ end
1183
+ def to_hash
1184
+ end
1185
+
1186
+ # KnownSignerIdentity is an identifier for a special signer identity that is known
1187
+ # to the implementation.
1188
+ module KnownSigner
1189
+ extend DockerEngine::Internal::Type::Enum
1190
+
1191
+ TaggedSymbol =
1192
+ T.type_alias do
1193
+ T.all(
1194
+ Symbol,
1195
+ DockerEngine::Image::Identity::Signature::KnownSigner
1196
+ )
1197
+ end
1198
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1199
+
1200
+ DHI =
1201
+ T.let(
1202
+ :DHI,
1203
+ DockerEngine::Image::Identity::Signature::KnownSigner::TaggedSymbol
1204
+ )
1205
+
1206
+ sig do
1207
+ override.returns(
1208
+ T::Array[
1209
+ DockerEngine::Image::Identity::Signature::KnownSigner::TaggedSymbol
1210
+ ]
1211
+ )
1212
+ end
1213
+ def self.values
1214
+ end
1215
+ end
1216
+
1217
+ # SignatureType is the type of signature format.
1218
+ module SignatureType
1219
+ extend DockerEngine::Internal::Type::Enum
1220
+
1221
+ TaggedSymbol =
1222
+ T.type_alias do
1223
+ T.all(
1224
+ Symbol,
1225
+ DockerEngine::Image::Identity::Signature::SignatureType
1226
+ )
1227
+ end
1228
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1229
+
1230
+ BUNDLE_V0_3 =
1231
+ T.let(
1232
+ :"bundle-v0.3",
1233
+ DockerEngine::Image::Identity::Signature::SignatureType::TaggedSymbol
1234
+ )
1235
+ SIMPLESIGNING_V1 =
1236
+ T.let(
1237
+ :"simplesigning-v1",
1238
+ DockerEngine::Image::Identity::Signature::SignatureType::TaggedSymbol
1239
+ )
1240
+
1241
+ sig do
1242
+ override.returns(
1243
+ T::Array[
1244
+ DockerEngine::Image::Identity::Signature::SignatureType::TaggedSymbol
1245
+ ]
1246
+ )
1247
+ end
1248
+ def self.values
1249
+ end
1250
+ end
1251
+
1252
+ class Signer < DockerEngine::Internal::Type::BaseModel
1253
+ OrHash =
1254
+ T.type_alias do
1255
+ T.any(
1256
+ DockerEngine::Image::Identity::Signature::Signer,
1257
+ DockerEngine::Internal::AnyHash
1258
+ )
1259
+ end
1260
+
1261
+ # Immutable reference to the specific version of the top-level/initiating build
1262
+ # instructions.
1263
+ sig { returns(T.nilable(String)) }
1264
+ attr_reader :build_config_digest
1265
+
1266
+ sig { params(build_config_digest: String).void }
1267
+ attr_writer :build_config_digest
1268
+
1269
+ # Build Config URL to the top-level/initiating build instructions.
1270
+ sig { returns(T.nilable(String)) }
1271
+ attr_reader :build_config_uri
1272
+
1273
+ sig { params(build_config_uri: String).void }
1274
+ attr_writer :build_config_uri
1275
+
1276
+ # Immutable reference to the specific version of the build instructions that is
1277
+ # responsible for signing.
1278
+ sig { returns(T.nilable(String)) }
1279
+ attr_reader :build_signer_digest
1280
+
1281
+ sig { params(build_signer_digest: String).void }
1282
+ attr_writer :build_signer_digest
1283
+
1284
+ # Reference to specific build instructions that are responsible for signing.
1285
+ sig { returns(T.nilable(String)) }
1286
+ attr_reader :build_signer_uri
1287
+
1288
+ sig { params(build_signer_uri: String).void }
1289
+ attr_writer :build_signer_uri
1290
+
1291
+ # Event or action that initiated the build.
1292
+ sig { returns(T.nilable(String)) }
1293
+ attr_reader :build_trigger
1294
+
1295
+ sig { params(build_trigger: String).void }
1296
+ attr_writer :build_trigger
1297
+
1298
+ # CertificateIssuer is the certificate issuer.
1299
+ sig { returns(T.nilable(String)) }
1300
+ attr_reader :certificate_issuer
1301
+
1302
+ sig { params(certificate_issuer: String).void }
1303
+ attr_writer :certificate_issuer
1304
+
1305
+ # The OIDC issuer. Should match `iss` claim of ID token or, in the case of a
1306
+ # federated login like Dex it should match the issuer URL of the upstream issuer.
1307
+ # The issuer is not set the extensions are invalid and will fail to render.
1308
+ sig { returns(T.nilable(String)) }
1309
+ attr_reader :issuer
1310
+
1311
+ sig { params(issuer: String).void }
1312
+ attr_writer :issuer
1313
+
1314
+ # Run Invocation URL to uniquely identify the build execution.
1315
+ sig { returns(T.nilable(String)) }
1316
+ attr_reader :run_invocation_uri
1317
+
1318
+ sig { params(run_invocation_uri: String).void }
1319
+ attr_writer :run_invocation_uri
1320
+
1321
+ # Specifies whether the build took place in platform-hosted cloud infrastructure
1322
+ # or customer/self-hosted infrastructure.
1323
+ sig { returns(T.nilable(String)) }
1324
+ attr_reader :runner_environment
1325
+
1326
+ sig { params(runner_environment: String).void }
1327
+ attr_writer :runner_environment
1328
+
1329
+ # Immutable reference to a specific version of the source code that the build was
1330
+ # based upon.
1331
+ sig { returns(T.nilable(String)) }
1332
+ attr_reader :source_repository_digest
1333
+
1334
+ sig { params(source_repository_digest: String).void }
1335
+ attr_writer :source_repository_digest
1336
+
1337
+ # Immutable identifier for the source repository the workflow was based upon.
1338
+ sig { returns(T.nilable(String)) }
1339
+ attr_reader :source_repository_identifier
1340
+
1341
+ sig { params(source_repository_identifier: String).void }
1342
+ attr_writer :source_repository_identifier
1343
+
1344
+ # Immutable identifier for the owner of the source repository that the workflow
1345
+ # was based upon.
1346
+ sig { returns(T.nilable(String)) }
1347
+ attr_reader :source_repository_owner_identifier
1348
+
1349
+ sig { params(source_repository_owner_identifier: String).void }
1350
+ attr_writer :source_repository_owner_identifier
1351
+
1352
+ # Source repository owner URL of the owner of the source repository that the build
1353
+ # was based on.
1354
+ sig { returns(T.nilable(String)) }
1355
+ attr_reader :source_repository_owner_uri
1356
+
1357
+ sig { params(source_repository_owner_uri: String).void }
1358
+ attr_writer :source_repository_owner_uri
1359
+
1360
+ # Source Repository Ref that the build run was based upon.
1361
+ sig { returns(T.nilable(String)) }
1362
+ attr_reader :source_repository_ref
1363
+
1364
+ sig { params(source_repository_ref: String).void }
1365
+ attr_writer :source_repository_ref
1366
+
1367
+ # Source repository URL that the build was based on.
1368
+ sig { returns(T.nilable(String)) }
1369
+ attr_reader :source_repository_uri
1370
+
1371
+ sig { params(source_repository_uri: String).void }
1372
+ attr_writer :source_repository_uri
1373
+
1374
+ # Source repository visibility at the time of signing the certificate.
1375
+ sig { returns(T.nilable(String)) }
1376
+ attr_reader :source_repository_visibility_at_signing
1377
+
1378
+ sig { params(source_repository_visibility_at_signing: String).void }
1379
+ attr_writer :source_repository_visibility_at_signing
1380
+
1381
+ # SubjectAlternativeName is the certificate subject alternative name.
1382
+ sig { returns(T.nilable(String)) }
1383
+ attr_reader :subject_alternative_name
1384
+
1385
+ sig { params(subject_alternative_name: String).void }
1386
+ attr_writer :subject_alternative_name
1387
+
1388
+ # SignerIdentity contains information about the signer certificate used to sign
1389
+ # the image.
1390
+ sig do
1391
+ params(
1392
+ build_config_digest: String,
1393
+ build_config_uri: String,
1394
+ build_signer_digest: String,
1395
+ build_signer_uri: String,
1396
+ build_trigger: String,
1397
+ certificate_issuer: String,
1398
+ issuer: String,
1399
+ run_invocation_uri: String,
1400
+ runner_environment: String,
1401
+ source_repository_digest: String,
1402
+ source_repository_identifier: String,
1403
+ source_repository_owner_identifier: String,
1404
+ source_repository_owner_uri: String,
1405
+ source_repository_ref: String,
1406
+ source_repository_uri: String,
1407
+ source_repository_visibility_at_signing: String,
1408
+ subject_alternative_name: String
1409
+ ).returns(T.attached_class)
1410
+ end
1411
+ def self.new(
1412
+ # Immutable reference to the specific version of the top-level/initiating build
1413
+ # instructions.
1414
+ build_config_digest: nil,
1415
+ # Build Config URL to the top-level/initiating build instructions.
1416
+ build_config_uri: nil,
1417
+ # Immutable reference to the specific version of the build instructions that is
1418
+ # responsible for signing.
1419
+ build_signer_digest: nil,
1420
+ # Reference to specific build instructions that are responsible for signing.
1421
+ build_signer_uri: nil,
1422
+ # Event or action that initiated the build.
1423
+ build_trigger: nil,
1424
+ # CertificateIssuer is the certificate issuer.
1425
+ certificate_issuer: nil,
1426
+ # The OIDC issuer. Should match `iss` claim of ID token or, in the case of a
1427
+ # federated login like Dex it should match the issuer URL of the upstream issuer.
1428
+ # The issuer is not set the extensions are invalid and will fail to render.
1429
+ issuer: nil,
1430
+ # Run Invocation URL to uniquely identify the build execution.
1431
+ run_invocation_uri: nil,
1432
+ # Specifies whether the build took place in platform-hosted cloud infrastructure
1433
+ # or customer/self-hosted infrastructure.
1434
+ runner_environment: nil,
1435
+ # Immutable reference to a specific version of the source code that the build was
1436
+ # based upon.
1437
+ source_repository_digest: nil,
1438
+ # Immutable identifier for the source repository the workflow was based upon.
1439
+ source_repository_identifier: nil,
1440
+ # Immutable identifier for the owner of the source repository that the workflow
1441
+ # was based upon.
1442
+ source_repository_owner_identifier: nil,
1443
+ # Source repository owner URL of the owner of the source repository that the build
1444
+ # was based on.
1445
+ source_repository_owner_uri: nil,
1446
+ # Source Repository Ref that the build run was based upon.
1447
+ source_repository_ref: nil,
1448
+ # Source repository URL that the build was based on.
1449
+ source_repository_uri: nil,
1450
+ # Source repository visibility at the time of signing the certificate.
1451
+ source_repository_visibility_at_signing: nil,
1452
+ # SubjectAlternativeName is the certificate subject alternative name.
1453
+ subject_alternative_name: nil
1454
+ )
1455
+ end
1456
+
1457
+ sig do
1458
+ override.returns(
1459
+ {
1460
+ build_config_digest: String,
1461
+ build_config_uri: String,
1462
+ build_signer_digest: String,
1463
+ build_signer_uri: String,
1464
+ build_trigger: String,
1465
+ certificate_issuer: String,
1466
+ issuer: String,
1467
+ run_invocation_uri: String,
1468
+ runner_environment: String,
1469
+ source_repository_digest: String,
1470
+ source_repository_identifier: String,
1471
+ source_repository_owner_identifier: String,
1472
+ source_repository_owner_uri: String,
1473
+ source_repository_ref: String,
1474
+ source_repository_uri: String,
1475
+ source_repository_visibility_at_signing: String,
1476
+ subject_alternative_name: String
1477
+ }
1478
+ )
1479
+ end
1480
+ def to_hash
1481
+ end
1482
+ end
1483
+
1484
+ class Timestamp < DockerEngine::Internal::Type::BaseModel
1485
+ OrHash =
1486
+ T.type_alias do
1487
+ T.any(
1488
+ DockerEngine::Image::Identity::Signature::Timestamp,
1489
+ DockerEngine::Internal::AnyHash
1490
+ )
1491
+ end
1492
+
1493
+ sig { returns(T.nilable(Time)) }
1494
+ attr_reader :timestamp
1495
+
1496
+ sig { params(timestamp: Time).void }
1497
+ attr_writer :timestamp
1498
+
1499
+ # SignatureTimestampType is the type of timestamp used in the signature.
1500
+ sig do
1501
+ returns(
1502
+ T.nilable(
1503
+ DockerEngine::Image::Identity::Signature::Timestamp::Type::TaggedSymbol
1504
+ )
1505
+ )
1506
+ end
1507
+ attr_reader :type
1508
+
1509
+ sig do
1510
+ params(
1511
+ type:
1512
+ DockerEngine::Image::Identity::Signature::Timestamp::Type::OrSymbol
1513
+ ).void
1514
+ end
1515
+ attr_writer :type
1516
+
1517
+ sig { returns(T.nilable(String)) }
1518
+ attr_reader :uri
1519
+
1520
+ sig { params(uri: String).void }
1521
+ attr_writer :uri
1522
+
1523
+ # SignatureTimestamp contains information about a verified signed timestamp for an
1524
+ # image signature.
1525
+ sig do
1526
+ params(
1527
+ timestamp: Time,
1528
+ type:
1529
+ DockerEngine::Image::Identity::Signature::Timestamp::Type::OrSymbol,
1530
+ uri: String
1531
+ ).returns(T.attached_class)
1532
+ end
1533
+ def self.new(
1534
+ timestamp: nil,
1535
+ # SignatureTimestampType is the type of timestamp used in the signature.
1536
+ type: nil,
1537
+ uri: nil
1538
+ )
1539
+ end
1540
+
1541
+ sig do
1542
+ override.returns(
1543
+ {
1544
+ timestamp: Time,
1545
+ type:
1546
+ DockerEngine::Image::Identity::Signature::Timestamp::Type::TaggedSymbol,
1547
+ uri: String
1548
+ }
1549
+ )
1550
+ end
1551
+ def to_hash
1552
+ end
1553
+
1554
+ # SignatureTimestampType is the type of timestamp used in the signature.
1555
+ module Type
1556
+ extend DockerEngine::Internal::Type::Enum
1557
+
1558
+ TaggedSymbol =
1559
+ T.type_alias do
1560
+ T.all(
1561
+ Symbol,
1562
+ DockerEngine::Image::Identity::Signature::Timestamp::Type
1563
+ )
1564
+ end
1565
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1566
+
1567
+ TLOG =
1568
+ T.let(
1569
+ :Tlog,
1570
+ DockerEngine::Image::Identity::Signature::Timestamp::Type::TaggedSymbol
1571
+ )
1572
+ TIMESTAMP_AUTHORITY =
1573
+ T.let(
1574
+ :TimestampAuthority,
1575
+ DockerEngine::Image::Identity::Signature::Timestamp::Type::TaggedSymbol
1576
+ )
1577
+
1578
+ sig do
1579
+ override.returns(
1580
+ T::Array[
1581
+ DockerEngine::Image::Identity::Signature::Timestamp::Type::TaggedSymbol
1582
+ ]
1583
+ )
1584
+ end
1585
+ def self.values
1586
+ end
1587
+ end
1588
+ end
1589
+ end
1590
+ end
1591
+
1592
+ class Manifest < DockerEngine::Internal::Type::BaseModel
1593
+ OrHash =
1594
+ T.type_alias do
1595
+ T.any(
1596
+ DockerEngine::Image::Manifest,
1597
+ DockerEngine::Internal::AnyHash
1598
+ )
1599
+ end
1600
+
1601
+ # Indicates whether all the child content (image config, layers) is fully
1602
+ # available locally.
1603
+ sig { returns(T::Boolean) }
1604
+ attr_accessor :available
1605
+
1606
+ # A descriptor struct containing digest, media type, and size, as defined in the
1607
+ # [OCI Content Descriptors Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/descriptor.md).
1608
+ sig { returns(DockerEngine::Image::Manifest::Descriptor) }
1609
+ attr_reader :descriptor
1610
+
1611
+ sig do
1612
+ params(
1613
+ descriptor: DockerEngine::Image::Manifest::Descriptor::OrHash
1614
+ ).void
1615
+ end
1616
+ attr_writer :descriptor
1617
+
1618
+ # ID is the content-addressable ID of an image and is the same as the digest of
1619
+ # the image manifest.
1620
+ sig { returns(String) }
1621
+ attr_accessor :id
1622
+
1623
+ # The kind of the manifest.
1624
+ #
1625
+ # | kind | description |
1626
+ # | ----------- | ------------------------------------------------------------------------------------ |
1627
+ # | image | Image manifest that can be used to start a container. |
1628
+ # | attestation | Attestation manifest produced by the Buildkit builder for a specific image manifest. |
1629
+ sig { returns(DockerEngine::Image::Manifest::Kind::TaggedSymbol) }
1630
+ attr_accessor :kind
1631
+
1632
+ sig { returns(DockerEngine::Image::Manifest::Size) }
1633
+ attr_reader :size
1634
+
1635
+ sig { params(size: DockerEngine::Image::Manifest::Size::OrHash).void }
1636
+ attr_writer :size
1637
+
1638
+ # The image data for the attestation manifest. This field is only populated when
1639
+ # Kind is "attestation".
1640
+ sig do
1641
+ returns(T.nilable(DockerEngine::Image::Manifest::AttestationData))
1642
+ end
1643
+ attr_reader :attestation_data
1644
+
1645
+ sig do
1646
+ params(
1647
+ attestation_data:
1648
+ T.nilable(DockerEngine::Image::Manifest::AttestationData::OrHash)
1649
+ ).void
1650
+ end
1651
+ attr_writer :attestation_data
1652
+
1653
+ # The image data for the image manifest. This field is only populated when Kind is
1654
+ # "image".
1655
+ sig { returns(T.nilable(DockerEngine::Image::Manifest::ImageData)) }
1656
+ attr_reader :image_data
1657
+
1658
+ sig do
1659
+ params(
1660
+ image_data:
1661
+ T.nilable(DockerEngine::Image::Manifest::ImageData::OrHash)
1662
+ ).void
1663
+ end
1664
+ attr_writer :image_data
1665
+
1666
+ # ImageManifestSummary represents a summary of an image manifest.
1667
+ sig do
1668
+ params(
1669
+ available: T::Boolean,
1670
+ descriptor: DockerEngine::Image::Manifest::Descriptor::OrHash,
1671
+ id: String,
1672
+ kind: DockerEngine::Image::Manifest::Kind::OrSymbol,
1673
+ size: DockerEngine::Image::Manifest::Size::OrHash,
1674
+ attestation_data:
1675
+ T.nilable(DockerEngine::Image::Manifest::AttestationData::OrHash),
1676
+ image_data:
1677
+ T.nilable(DockerEngine::Image::Manifest::ImageData::OrHash)
1678
+ ).returns(T.attached_class)
1679
+ end
1680
+ def self.new(
1681
+ # Indicates whether all the child content (image config, layers) is fully
1682
+ # available locally.
1683
+ available:,
1684
+ # A descriptor struct containing digest, media type, and size, as defined in the
1685
+ # [OCI Content Descriptors Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/descriptor.md).
1686
+ descriptor:,
1687
+ # ID is the content-addressable ID of an image and is the same as the digest of
1688
+ # the image manifest.
1689
+ id:,
1690
+ # The kind of the manifest.
1691
+ #
1692
+ # | kind | description |
1693
+ # | ----------- | ------------------------------------------------------------------------------------ |
1694
+ # | image | Image manifest that can be used to start a container. |
1695
+ # | attestation | Attestation manifest produced by the Buildkit builder for a specific image manifest. |
1696
+ kind:,
1697
+ size:,
1698
+ # The image data for the attestation manifest. This field is only populated when
1699
+ # Kind is "attestation".
1700
+ attestation_data: nil,
1701
+ # The image data for the image manifest. This field is only populated when Kind is
1702
+ # "image".
1703
+ image_data: nil
1704
+ )
1705
+ end
1706
+
1707
+ sig do
1708
+ override.returns(
1709
+ {
1710
+ available: T::Boolean,
1711
+ descriptor: DockerEngine::Image::Manifest::Descriptor,
1712
+ id: String,
1713
+ kind: DockerEngine::Image::Manifest::Kind::TaggedSymbol,
1714
+ size: DockerEngine::Image::Manifest::Size,
1715
+ attestation_data:
1716
+ T.nilable(DockerEngine::Image::Manifest::AttestationData),
1717
+ image_data: T.nilable(DockerEngine::Image::Manifest::ImageData)
1718
+ }
1719
+ )
1720
+ end
1721
+ def to_hash
1722
+ end
1723
+
1724
+ class Descriptor < DockerEngine::Internal::Type::BaseModel
1725
+ OrHash =
1726
+ T.type_alias do
1727
+ T.any(
1728
+ DockerEngine::Image::Manifest::Descriptor,
1729
+ DockerEngine::Internal::AnyHash
1730
+ )
1731
+ end
1732
+
1733
+ # Arbitrary metadata relating to the targeted content.
1734
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
1735
+ attr_accessor :annotations
1736
+
1737
+ # ArtifactType is the IANA media type of this artifact.
1738
+ sig { returns(T.nilable(String)) }
1739
+ attr_accessor :artifact_type
1740
+
1741
+ # Data is an embedding of the targeted content. This is encoded as a base64 string
1742
+ # when marshalled to JSON (automatically, by encoding/json). If present, Data can
1743
+ # be used directly to avoid fetching the targeted content.
1744
+ sig { returns(T.nilable(String)) }
1745
+ attr_accessor :data
1746
+
1747
+ # The digest of the targeted content.
1748
+ sig { returns(T.nilable(String)) }
1749
+ attr_reader :digest
1750
+
1751
+ sig { params(digest: String).void }
1752
+ attr_writer :digest
1753
+
1754
+ # The media type of the object this schema refers to.
1755
+ sig { returns(T.nilable(String)) }
1756
+ attr_reader :media_type
1757
+
1758
+ sig { params(media_type: String).void }
1759
+ attr_writer :media_type
1760
+
1761
+ # Describes the platform which the image in the manifest runs on, as defined in
1762
+ # the
1763
+ # [OCI Image Index Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-index.md).
1764
+ sig do
1765
+ returns(
1766
+ T.nilable(DockerEngine::Image::Manifest::Descriptor::Platform)
1767
+ )
1768
+ end
1769
+ attr_reader :platform
1770
+
1771
+ sig do
1772
+ params(
1773
+ platform:
1774
+ T.nilable(
1775
+ DockerEngine::Image::Manifest::Descriptor::Platform::OrHash
1776
+ )
1777
+ ).void
1778
+ end
1779
+ attr_writer :platform
1780
+
1781
+ # The size in bytes of the blob.
1782
+ sig { returns(T.nilable(Integer)) }
1783
+ attr_reader :size
1784
+
1785
+ sig { params(size: Integer).void }
1786
+ attr_writer :size
1787
+
1788
+ # List of URLs from which this object MAY be downloaded.
1789
+ sig { returns(T.nilable(T::Array[String])) }
1790
+ attr_accessor :urls
1791
+
1792
+ # A descriptor struct containing digest, media type, and size, as defined in the
1793
+ # [OCI Content Descriptors Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/descriptor.md).
1794
+ sig do
1795
+ params(
1796
+ annotations: T.nilable(T::Hash[Symbol, String]),
1797
+ artifact_type: T.nilable(String),
1798
+ data: T.nilable(String),
1799
+ digest: String,
1800
+ media_type: String,
1801
+ platform:
1802
+ T.nilable(
1803
+ DockerEngine::Image::Manifest::Descriptor::Platform::OrHash
1804
+ ),
1805
+ size: Integer,
1806
+ urls: T.nilable(T::Array[String])
1807
+ ).returns(T.attached_class)
1808
+ end
1809
+ def self.new(
1810
+ # Arbitrary metadata relating to the targeted content.
1811
+ annotations: nil,
1812
+ # ArtifactType is the IANA media type of this artifact.
1813
+ artifact_type: nil,
1814
+ # Data is an embedding of the targeted content. This is encoded as a base64 string
1815
+ # when marshalled to JSON (automatically, by encoding/json). If present, Data can
1816
+ # be used directly to avoid fetching the targeted content.
1817
+ data: nil,
1818
+ # The digest of the targeted content.
1819
+ digest: nil,
1820
+ # The media type of the object this schema refers to.
1821
+ media_type: nil,
1822
+ # Describes the platform which the image in the manifest runs on, as defined in
1823
+ # the
1824
+ # [OCI Image Index Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-index.md).
1825
+ platform: nil,
1826
+ # The size in bytes of the blob.
1827
+ size: nil,
1828
+ # List of URLs from which this object MAY be downloaded.
1829
+ urls: nil
1830
+ )
1831
+ end
1832
+
1833
+ sig do
1834
+ override.returns(
1835
+ {
1836
+ annotations: T.nilable(T::Hash[Symbol, String]),
1837
+ artifact_type: T.nilable(String),
1838
+ data: T.nilable(String),
1839
+ digest: String,
1840
+ media_type: String,
1841
+ platform:
1842
+ T.nilable(
1843
+ DockerEngine::Image::Manifest::Descriptor::Platform
1844
+ ),
1845
+ size: Integer,
1846
+ urls: T.nilable(T::Array[String])
1847
+ }
1848
+ )
1849
+ end
1850
+ def to_hash
1851
+ end
1852
+
1853
+ class Platform < DockerEngine::Internal::Type::BaseModel
1854
+ OrHash =
1855
+ T.type_alias do
1856
+ T.any(
1857
+ DockerEngine::Image::Manifest::Descriptor::Platform,
1858
+ DockerEngine::Internal::AnyHash
1859
+ )
1860
+ end
1861
+
1862
+ # The CPU architecture, for example `amd64` or `ppc64`.
1863
+ sig { returns(T.nilable(String)) }
1864
+ attr_reader :architecture
1865
+
1866
+ sig { params(architecture: String).void }
1867
+ attr_writer :architecture
1868
+
1869
+ # The operating system, for example `linux` or `windows`.
1870
+ sig { returns(T.nilable(String)) }
1871
+ attr_reader :os
1872
+
1873
+ sig { params(os: String).void }
1874
+ attr_writer :os
1875
+
1876
+ # Optional field specifying an array of strings, each listing a required OS
1877
+ # feature (for example on Windows `win32k`).
1878
+ sig { returns(T.nilable(T::Array[String])) }
1879
+ attr_reader :os_features
1880
+
1881
+ sig { params(os_features: T::Array[String]).void }
1882
+ attr_writer :os_features
1883
+
1884
+ # Optional field specifying the operating system version, for example on Windows
1885
+ # `10.0.19041.1165`.
1886
+ sig { returns(T.nilable(String)) }
1887
+ attr_reader :os_version
1888
+
1889
+ sig { params(os_version: String).void }
1890
+ attr_writer :os_version
1891
+
1892
+ # Optional field specifying a variant of the CPU, for example `v7` to specify
1893
+ # ARMv7 when architecture is `arm`.
1894
+ sig { returns(T.nilable(String)) }
1895
+ attr_reader :variant
1896
+
1897
+ sig { params(variant: String).void }
1898
+ attr_writer :variant
1899
+
1900
+ # Describes the platform which the image in the manifest runs on, as defined in
1901
+ # the
1902
+ # [OCI Image Index Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-index.md).
1903
+ sig do
1904
+ params(
1905
+ architecture: String,
1906
+ os: String,
1907
+ os_features: T::Array[String],
1908
+ os_version: String,
1909
+ variant: String
1910
+ ).returns(T.attached_class)
1911
+ end
1912
+ def self.new(
1913
+ # The CPU architecture, for example `amd64` or `ppc64`.
1914
+ architecture: nil,
1915
+ # The operating system, for example `linux` or `windows`.
1916
+ os: nil,
1917
+ # Optional field specifying an array of strings, each listing a required OS
1918
+ # feature (for example on Windows `win32k`).
1919
+ os_features: nil,
1920
+ # Optional field specifying the operating system version, for example on Windows
1921
+ # `10.0.19041.1165`.
1922
+ os_version: nil,
1923
+ # Optional field specifying a variant of the CPU, for example `v7` to specify
1924
+ # ARMv7 when architecture is `arm`.
1925
+ variant: nil
1926
+ )
1927
+ end
1928
+
1929
+ sig do
1930
+ override.returns(
1931
+ {
1932
+ architecture: String,
1933
+ os: String,
1934
+ os_features: T::Array[String],
1935
+ os_version: String,
1936
+ variant: String
1937
+ }
1938
+ )
1939
+ end
1940
+ def to_hash
1941
+ end
1942
+ end
1943
+ end
1944
+
1945
+ # The kind of the manifest.
1946
+ #
1947
+ # | kind | description |
1948
+ # | ----------- | ------------------------------------------------------------------------------------ |
1949
+ # | image | Image manifest that can be used to start a container. |
1950
+ # | attestation | Attestation manifest produced by the Buildkit builder for a specific image manifest. |
1951
+ module Kind
1952
+ extend DockerEngine::Internal::Type::Enum
1953
+
1954
+ TaggedSymbol =
1955
+ T.type_alias { T.all(Symbol, DockerEngine::Image::Manifest::Kind) }
1956
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1957
+
1958
+ IMAGE =
1959
+ T.let(:image, DockerEngine::Image::Manifest::Kind::TaggedSymbol)
1960
+ ATTESTATION =
1961
+ T.let(
1962
+ :attestation,
1963
+ DockerEngine::Image::Manifest::Kind::TaggedSymbol
1964
+ )
1965
+ UNKNOWN =
1966
+ T.let(:unknown, DockerEngine::Image::Manifest::Kind::TaggedSymbol)
1967
+
1968
+ sig do
1969
+ override.returns(
1970
+ T::Array[DockerEngine::Image::Manifest::Kind::TaggedSymbol]
1971
+ )
1972
+ end
1973
+ def self.values
1974
+ end
1975
+ end
1976
+
1977
+ class Size < DockerEngine::Internal::Type::BaseModel
1978
+ OrHash =
1979
+ T.type_alias do
1980
+ T.any(
1981
+ DockerEngine::Image::Manifest::Size,
1982
+ DockerEngine::Internal::AnyHash
1983
+ )
1984
+ end
1985
+
1986
+ # Content is the size (in bytes) of all the locally present content in the content
1987
+ # store (e.g. image config, layers) referenced by this manifest and its children.
1988
+ # This only includes blobs in the content store.
1989
+ sig { returns(Integer) }
1990
+ attr_accessor :content
1991
+
1992
+ # Total is the total size (in bytes) of all the locally present data (both
1993
+ # distributable and non-distributable) that's related to this manifest and its
1994
+ # children. This equal to the sum of [Content] size AND all the sizes in the
1995
+ # [Size] struct present in the Kind-specific data struct. For example, for an
1996
+ # image kind (Kind == "image") this would include the size of the image content
1997
+ # and unpacked image snapshots ([Size.Content] + [ImageData.Size.Unpacked]).
1998
+ sig { returns(Integer) }
1999
+ attr_accessor :total
2000
+
2001
+ sig do
2002
+ params(content: Integer, total: Integer).returns(T.attached_class)
2003
+ end
2004
+ def self.new(
2005
+ # Content is the size (in bytes) of all the locally present content in the content
2006
+ # store (e.g. image config, layers) referenced by this manifest and its children.
2007
+ # This only includes blobs in the content store.
2008
+ content:,
2009
+ # Total is the total size (in bytes) of all the locally present data (both
2010
+ # distributable and non-distributable) that's related to this manifest and its
2011
+ # children. This equal to the sum of [Content] size AND all the sizes in the
2012
+ # [Size] struct present in the Kind-specific data struct. For example, for an
2013
+ # image kind (Kind == "image") this would include the size of the image content
2014
+ # and unpacked image snapshots ([Size.Content] + [ImageData.Size.Unpacked]).
2015
+ total:
2016
+ )
2017
+ end
2018
+
2019
+ sig { override.returns({ content: Integer, total: Integer }) }
2020
+ def to_hash
2021
+ end
2022
+ end
2023
+
2024
+ class AttestationData < DockerEngine::Internal::Type::BaseModel
2025
+ OrHash =
2026
+ T.type_alias do
2027
+ T.any(
2028
+ DockerEngine::Image::Manifest::AttestationData,
2029
+ DockerEngine::Internal::AnyHash
2030
+ )
2031
+ end
2032
+
2033
+ # The digest of the image manifest that this attestation is for.
2034
+ sig { returns(String) }
2035
+ attr_accessor :for_
2036
+
2037
+ # The image data for the attestation manifest. This field is only populated when
2038
+ # Kind is "attestation".
2039
+ sig { params(for_: String).returns(T.attached_class) }
2040
+ def self.new(
2041
+ # The digest of the image manifest that this attestation is for.
2042
+ for_:
2043
+ )
2044
+ end
2045
+
2046
+ sig { override.returns({ for_: String }) }
2047
+ def to_hash
2048
+ end
2049
+ end
2050
+
2051
+ class ImageData < DockerEngine::Internal::Type::BaseModel
2052
+ OrHash =
2053
+ T.type_alias do
2054
+ T.any(
2055
+ DockerEngine::Image::Manifest::ImageData,
2056
+ DockerEngine::Internal::AnyHash
2057
+ )
2058
+ end
2059
+
2060
+ # The IDs of the containers that are using this image.
2061
+ sig { returns(T::Array[String]) }
2062
+ attr_accessor :containers
2063
+
2064
+ # Describes the platform which the image in the manifest runs on, as defined in
2065
+ # the
2066
+ # [OCI Image Index Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-index.md).
2067
+ sig do
2068
+ returns(
2069
+ T.nilable(DockerEngine::Image::Manifest::ImageData::Platform)
2070
+ )
2071
+ end
2072
+ attr_reader :platform
2073
+
2074
+ sig do
2075
+ params(
2076
+ platform:
2077
+ T.nilable(
2078
+ DockerEngine::Image::Manifest::ImageData::Platform::OrHash
2079
+ )
2080
+ ).void
2081
+ end
2082
+ attr_writer :platform
2083
+
2084
+ sig { returns(DockerEngine::Image::Manifest::ImageData::Size) }
2085
+ attr_reader :size
2086
+
2087
+ sig do
2088
+ params(
2089
+ size: DockerEngine::Image::Manifest::ImageData::Size::OrHash
2090
+ ).void
2091
+ end
2092
+ attr_writer :size
2093
+
2094
+ # The image data for the image manifest. This field is only populated when Kind is
2095
+ # "image".
2096
+ sig do
2097
+ params(
2098
+ containers: T::Array[String],
2099
+ platform:
2100
+ T.nilable(
2101
+ DockerEngine::Image::Manifest::ImageData::Platform::OrHash
2102
+ ),
2103
+ size: DockerEngine::Image::Manifest::ImageData::Size::OrHash
2104
+ ).returns(T.attached_class)
2105
+ end
2106
+ def self.new(
2107
+ # The IDs of the containers that are using this image.
2108
+ containers:,
2109
+ # Describes the platform which the image in the manifest runs on, as defined in
2110
+ # the
2111
+ # [OCI Image Index Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-index.md).
2112
+ platform:,
2113
+ size:
2114
+ )
2115
+ end
2116
+
2117
+ sig do
2118
+ override.returns(
2119
+ {
2120
+ containers: T::Array[String],
2121
+ platform:
2122
+ T.nilable(DockerEngine::Image::Manifest::ImageData::Platform),
2123
+ size: DockerEngine::Image::Manifest::ImageData::Size
2124
+ }
2125
+ )
2126
+ end
2127
+ def to_hash
2128
+ end
2129
+
2130
+ class Platform < DockerEngine::Internal::Type::BaseModel
2131
+ OrHash =
2132
+ T.type_alias do
2133
+ T.any(
2134
+ DockerEngine::Image::Manifest::ImageData::Platform,
2135
+ DockerEngine::Internal::AnyHash
2136
+ )
2137
+ end
2138
+
2139
+ # The CPU architecture, for example `amd64` or `ppc64`.
2140
+ sig { returns(T.nilable(String)) }
2141
+ attr_reader :architecture
2142
+
2143
+ sig { params(architecture: String).void }
2144
+ attr_writer :architecture
2145
+
2146
+ # The operating system, for example `linux` or `windows`.
2147
+ sig { returns(T.nilable(String)) }
2148
+ attr_reader :os
2149
+
2150
+ sig { params(os: String).void }
2151
+ attr_writer :os
2152
+
2153
+ # Optional field specifying an array of strings, each listing a required OS
2154
+ # feature (for example on Windows `win32k`).
2155
+ sig { returns(T.nilable(T::Array[String])) }
2156
+ attr_reader :os_features
2157
+
2158
+ sig { params(os_features: T::Array[String]).void }
2159
+ attr_writer :os_features
2160
+
2161
+ # Optional field specifying the operating system version, for example on Windows
2162
+ # `10.0.19041.1165`.
2163
+ sig { returns(T.nilable(String)) }
2164
+ attr_reader :os_version
2165
+
2166
+ sig { params(os_version: String).void }
2167
+ attr_writer :os_version
2168
+
2169
+ # Optional field specifying a variant of the CPU, for example `v7` to specify
2170
+ # ARMv7 when architecture is `arm`.
2171
+ sig { returns(T.nilable(String)) }
2172
+ attr_reader :variant
2173
+
2174
+ sig { params(variant: String).void }
2175
+ attr_writer :variant
2176
+
2177
+ # Describes the platform which the image in the manifest runs on, as defined in
2178
+ # the
2179
+ # [OCI Image Index Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-index.md).
2180
+ sig do
2181
+ params(
2182
+ architecture: String,
2183
+ os: String,
2184
+ os_features: T::Array[String],
2185
+ os_version: String,
2186
+ variant: String
2187
+ ).returns(T.attached_class)
2188
+ end
2189
+ def self.new(
2190
+ # The CPU architecture, for example `amd64` or `ppc64`.
2191
+ architecture: nil,
2192
+ # The operating system, for example `linux` or `windows`.
2193
+ os: nil,
2194
+ # Optional field specifying an array of strings, each listing a required OS
2195
+ # feature (for example on Windows `win32k`).
2196
+ os_features: nil,
2197
+ # Optional field specifying the operating system version, for example on Windows
2198
+ # `10.0.19041.1165`.
2199
+ os_version: nil,
2200
+ # Optional field specifying a variant of the CPU, for example `v7` to specify
2201
+ # ARMv7 when architecture is `arm`.
2202
+ variant: nil
2203
+ )
2204
+ end
2205
+
2206
+ sig do
2207
+ override.returns(
2208
+ {
2209
+ architecture: String,
2210
+ os: String,
2211
+ os_features: T::Array[String],
2212
+ os_version: String,
2213
+ variant: String
2214
+ }
2215
+ )
2216
+ end
2217
+ def to_hash
2218
+ end
2219
+ end
2220
+
2221
+ class Size < DockerEngine::Internal::Type::BaseModel
2222
+ OrHash =
2223
+ T.type_alias do
2224
+ T.any(
2225
+ DockerEngine::Image::Manifest::ImageData::Size,
2226
+ DockerEngine::Internal::AnyHash
2227
+ )
2228
+ end
2229
+
2230
+ # Unpacked is the size (in bytes) of the locally unpacked (uncompressed) image
2231
+ # content that's directly usable by the containers running this image. It's
2232
+ # independent of the distributable content - e.g. the image might still have an
2233
+ # unpacked data that's still used by some container even when the
2234
+ # distributable/compressed content is already gone.
2235
+ sig { returns(Integer) }
2236
+ attr_accessor :unpacked
2237
+
2238
+ sig { params(unpacked: Integer).returns(T.attached_class) }
2239
+ def self.new(
2240
+ # Unpacked is the size (in bytes) of the locally unpacked (uncompressed) image
2241
+ # content that's directly usable by the containers running this image. It's
2242
+ # independent of the distributable content - e.g. the image might still have an
2243
+ # unpacked data that's still used by some container even when the
2244
+ # distributable/compressed content is already gone.
2245
+ unpacked:
2246
+ )
2247
+ end
2248
+
2249
+ sig { override.returns({ unpacked: Integer }) }
2250
+ def to_hash
2251
+ end
2252
+ end
2253
+ end
2254
+ end
2255
+
2256
+ class Metadata < DockerEngine::Internal::Type::BaseModel
2257
+ OrHash =
2258
+ T.type_alias do
2259
+ T.any(
2260
+ DockerEngine::Image::Metadata,
2261
+ DockerEngine::Internal::AnyHash
2262
+ )
2263
+ end
2264
+
2265
+ # Date and time at which the image was last tagged in
2266
+ # [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
2267
+ #
2268
+ # This information is only available if the image was tagged locally, and omitted
2269
+ # otherwise.
2270
+ sig { returns(T.nilable(String)) }
2271
+ attr_accessor :last_tag_time
2272
+
2273
+ # Additional metadata of the image in the local cache. This information is local
2274
+ # to the daemon, and not part of the image itself.
2275
+ sig do
2276
+ params(last_tag_time: T.nilable(String)).returns(T.attached_class)
2277
+ end
2278
+ def self.new(
2279
+ # Date and time at which the image was last tagged in
2280
+ # [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
2281
+ #
2282
+ # This information is only available if the image was tagged locally, and omitted
2283
+ # otherwise.
2284
+ last_tag_time: nil
2285
+ )
2286
+ end
2287
+
2288
+ sig { override.returns({ last_tag_time: T.nilable(String) }) }
2289
+ def to_hash
2290
+ end
2291
+ end
2292
+
2293
+ class RootFs < DockerEngine::Internal::Type::BaseModel
2294
+ OrHash =
2295
+ T.type_alias do
2296
+ T.any(DockerEngine::Image::RootFs, DockerEngine::Internal::AnyHash)
2297
+ end
2298
+
2299
+ sig { returns(String) }
2300
+ attr_accessor :type
2301
+
2302
+ sig { returns(T.nilable(T::Array[String])) }
2303
+ attr_reader :layers
2304
+
2305
+ sig { params(layers: T::Array[String]).void }
2306
+ attr_writer :layers
2307
+
2308
+ # Information about the image's RootFS, including the layer IDs.
2309
+ sig do
2310
+ params(type: String, layers: T::Array[String]).returns(
2311
+ T.attached_class
2312
+ )
2313
+ end
2314
+ def self.new(type:, layers: nil)
2315
+ end
2316
+
2317
+ sig { override.returns({ type: String, layers: T::Array[String] }) }
2318
+ def to_hash
2319
+ end
2320
+ end
2321
+ end
2322
+ end
2323
+ end